Move wsf_js_widget library under draft/library/server/wsf_js_widget

This commit is contained in:
2014-07-07 10:26:10 +02:00
parent 3c8dc0a9e1
commit fe4c283336
106 changed files with 16 additions and 16 deletions

View File

@@ -0,0 +1,156 @@
note
description: "[
WSF_NAVBAR_CONTROL encapsulates the navbar provided by
bootstrap. Simple menu items as well as dropdown lists and
panels can be added to this control.
See http://getbootstrap.com/components/#navbar
]"
EIS: "name=Bootstrap navbar", "protocol=URI", "src=http://getbootstrap.com/components/#navbar"
date: "$Date$"
revision: "$Revision$"
class
WSF_NAVBAR_CONTROL
inherit
WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
rename
make as make_multi_control
redefine
render
end
create
make, make_with_brand
feature {NONE} -- Initialization
make
-- Initialize
do
make_multi_control
active_set := False
add_class ("navbar navbar-inverse navbar-fixed-top")
create nav.make_with_tag_name ("ul")
create nav_right.make_with_tag_name ("ul")
add_control (nav)
add_control (nav_right)
nav.add_class ("nav navbar-nav")
nav_right.add_class ("nav navbar-nav navbar-right")
end
make_with_brand (a_brand: READABLE_STRING_32)
-- Initialize with specified `a_brand' string.
do
make
brand := a_brand
ensure
brand_set: brand = a_brand
end
feature -- Rendering
render: STRING_32
local
temp: STRING_32
nav_string: STRING_32
do
temp := render_tag_with_tagname ("span", "", "", "icon-bar")
temp.multiply (3)
temp := render_tag_with_tagname ("button", temp, "data-target=%".navbar-collapse%" data-toggle=%"collapse%" type=%"button%"", "navbar-toggle")
if attached brand as l_brand then
temp.append (render_tag_with_tagname ("a", l_brand, "href=%"#%"", "navbar-brand"))
end
temp := render_tag_with_tagname ("div", temp, "", "navbar-header")
nav_string := nav.render
if nav_right.controls.count > 0 then
nav_string.append (nav_right.render)
end
temp.append (render_tag_with_tagname ("div", nav_string, "", "navbar-collapse collapse"))
Result := render_tag_with_tagname ("div", temp, "", "container")
Result := render_tag (Result, "")
end
feature -- Change
set_active (tab: INTEGER)
-- Sets the given tab as current active tab. This procedure must not be called more than once.
require
tab >= 1 and tab <= tab_count and not active_set
do
if tab <= nav.controls.count then
nav.controls.i_th (tab).add_class ("active")
else
nav_right.controls.i_th (tab - nav.controls.count).add_class ("active")
end
active_set := true
ensure
active_set_set: active_set
end
add_list_element_right (a_control: WSF_STATELESS_CONTROL)
-- Add element in li tag to right aligned part of navbar
local
li: WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
do
create li.make_with_tag_name ("li")
li.add_control (a_control)
add_element_right (li)
end
add_list_element (a_control: WSF_STATELESS_CONTROL)
-- Add element in li tag to main nav
local
li: WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
do
create li.make_with_tag_name ("li")
li.add_control (a_control)
add_element (li)
end
add_element_right (a_control: WSF_STATELESS_CONTROL)
-- Add element to right aligned part of navbar
do
nav_right.add_control (a_control)
end
add_element (a_control: WSF_STATELESS_CONTROL)
-- Add element to main nav
do
nav.add_control (a_control)
end
feature -- Access
tab_count: INTEGER
-- Current sum of the number of items in left and right navbar
do
Result := nav.controls.count + nav_right.controls.count
end
feature -- Properties
active_set: BOOLEAN
-- This flag is set once a tab has been set as active tab
brand: detachable READABLE_STRING_32
-- Optional brand of the navbar
nav: WSF_STATELESS_MULTI_CONTROL [WSF_STATELESS_CONTROL]
-- Middle nav
nav_right: WSF_STATELESS_MULTI_CONTROL [WSF_STATELESS_CONTROL]
-- Right nav
;note
copyright: "2011-2014, Yassin Hassan, Severin Munger, Jocelyn Fiat, Eiffel Software and others"
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
source: "[
Eiffel Software
5949 Hollister Ave., Goleta, CA 93117 USA
Telephone 805-685-1006, Fax 805-685-6869
Website http://www.eiffel.com
Customer support http://support.eiffel.com
]"
end