This includes WSF_PAGER, and feature in WSF_THEME .. including WSF_API_OPTIONS used to compute url and link.
110 lines
2.1 KiB
Plaintext
110 lines
2.1 KiB
Plaintext
note
|
|
description: "Summary description for {WSF_WITH_CSS_CLASS}."
|
|
date: "$Date$"
|
|
revision: "$Revision$"
|
|
|
|
deferred class
|
|
WSF_WITH_CSS_CLASS
|
|
|
|
feature -- Status report
|
|
|
|
css_classes: detachable LIST [READABLE_STRING_8]
|
|
|
|
feature -- Change
|
|
|
|
reset_css_classes
|
|
do
|
|
css_classes := Void
|
|
end
|
|
|
|
add_css_classes (a_classes: detachable ITERABLE [READABLE_STRING_8])
|
|
do
|
|
if a_classes /= Void then
|
|
across
|
|
a_classes as c
|
|
loop
|
|
add_css_class (c.item)
|
|
end
|
|
end
|
|
end
|
|
|
|
add_css_class (a_class: READABLE_STRING_8)
|
|
require
|
|
is_valid_css_class: is_valid_css_class (a_class)
|
|
local
|
|
lst: like css_classes
|
|
do
|
|
lst := css_classes
|
|
if lst = Void then
|
|
create {ARRAYED_LIST [READABLE_STRING_8]} lst.make (1)
|
|
lst.compare_objects
|
|
css_classes := lst
|
|
end
|
|
lst.force (a_class)
|
|
end
|
|
|
|
remove_css_class (a_class: READABLE_STRING_8)
|
|
require
|
|
is_valid_css_class: is_valid_css_class (a_class)
|
|
local
|
|
lst: like css_classes
|
|
do
|
|
lst := css_classes
|
|
if lst /= Void then
|
|
lst.prune_all (a_class)
|
|
end
|
|
end
|
|
|
|
feature -- Query
|
|
|
|
is_valid_css_class (s: detachable READABLE_STRING_8): BOOLEAN
|
|
do
|
|
Result := s /= Void implies (not s.is_empty)
|
|
-- To complete
|
|
end
|
|
|
|
feature -- Conversion
|
|
|
|
append_css_class_to (a_target: STRING; a_additional_classes: detachable ITERABLE [READABLE_STRING_8])
|
|
local
|
|
f: BOOLEAN
|
|
cl: READABLE_STRING_8
|
|
do
|
|
if css_classes /= Void or a_additional_classes /= Void then
|
|
a_target.append (" class=%"")
|
|
f := True -- is first
|
|
|
|
if attached css_classes as l_classes then
|
|
across
|
|
l_classes as c
|
|
loop
|
|
cl := c.item
|
|
if not cl.is_empty then
|
|
if f then
|
|
f := False
|
|
else
|
|
a_target.append_character (' ')
|
|
end
|
|
a_target.append (cl)
|
|
end
|
|
end
|
|
end
|
|
if attached a_additional_classes as l_classes then
|
|
across
|
|
l_classes as c
|
|
loop
|
|
cl := c.item
|
|
if not cl.is_empty then
|
|
if not f then
|
|
a_target.append_character (' ')
|
|
end
|
|
a_target.append (cl)
|
|
end
|
|
end
|
|
end
|
|
a_target.append_character ('%"')
|
|
end
|
|
end
|
|
|
|
end
|