diff --git a/contrib/library/text/parser/json/test/getest/ec_compile.sh b/contrib/library/text/parser/json/test/getest/ec_compile.sh
old mode 100755
new mode 100644
diff --git a/draft/library/wsf_js_widget/kernel/grid/wsf_repeater_control.e b/draft/library/wsf_js_widget/kernel/grid/wsf_repeater_control.e
index 79473e6f..77e6fb94 100644
--- a/draft/library/wsf_js_widget/kernel/grid/wsf_repeater_control.e
+++ b/draft/library/wsf_js_widget/kernel/grid/wsf_repeater_control.e
@@ -19,13 +19,16 @@ inherit
feature {NONE} -- Initialization
make_repeater (n: STRING; a_datasource: WSF_DATASOURCE [G])
+ local
+ p: WSF_PAGINATION_CONTROL [G]
do
make_multi_control (n)
datasource := a_datasource
datasource.set_on_update_agent (agent update)
if attached {WSF_PAGABLE_DATASOURCE [G]} a_datasource as ds then
- create pagination_control.make_paging (n + "_paging", ds)
- add_control (pagination_control)
+ create p.make_paging (n + "_paging", ds)
+ add_control (p)
+ pagination_control := p
end
end
@@ -53,7 +56,6 @@ feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- State management
Result.put (datasource.state, "datasource")
end
-
feature -- Rendering
render_item (item: G): STRING
diff --git a/draft/library/wsf_js_widget/kernel/navbar/wsf_navbar_control.e b/draft/library/wsf_js_widget/kernel/navbar/wsf_navbar_control.e
index d3fbf2c6..e8f35f75 100644
--- a/draft/library/wsf_js_widget/kernel/navbar/wsf_navbar_control.e
+++ b/draft/library/wsf_js_widget/kernel/navbar/wsf_navbar_control.e
@@ -23,9 +23,12 @@ feature {NONE} -- Initialization
--Initialize
do
make_multi_control (n)
+ active_set := false
add_class ("navbar navbar-inverse navbar-fixed-top")
create nav.make_with_tag_name (control_name + "_nav", "ul")
+ create nav_right.make_with_tag_name (control_name + "_nav_right", "ul")
nav.add_class ("nav navbar-nav")
+ nav_right.add_class ("nav navbar-nav navbar-right")
end
make_navbar_with_brand (n, b: STRING)
@@ -43,16 +46,15 @@ feature -- Rendering
nav_string: STRING
do
temp := render_tag_with_tagname ("span", "", "", "icon-bar")
- temp.append (render_tag_with_tagname ("span", "", "", "icon-bar"))
- temp.append (render_tag_with_tagname ("span", "", "", "icon-bar"))
+ temp.multiply (3)
temp := render_tag_with_tagname ("button", temp, "", "navbar-toggle")
if attached brand as b then
temp.append (render_tag_with_tagname ("a", b, "href=%"#%"", "navbar-brand"))
end
temp := render_tag_with_tagname ("div", temp, "", "navbar-header")
nav_string := nav.render
- if attached nav_right as n then
- nav_string.append (n.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"))
Result := render_tag_with_tagname ("div", temp, "", "container")
@@ -61,46 +63,70 @@ feature -- Rendering
feature -- Change
- add_list_element_right (c: WSF_STATELESS_CONTROL)
+ set_active (tab: INTEGER)
+ -- Sets the given tab as current active tab
+ 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
+ end
+
+ add_dropdown (l: WSF_STATELESS_CONTROL; d: WSF_STATELESS_CONTROL)
+ -- Add dropdown menu (in li tag with class dropdown) to navbar
+ local
+ li: WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
+ do
+ create li.make_with_tag_name (control_name + "_link" + nav.controls.count.out, "li")
+ li.add_class ("dropdown")
+ li.add_control (l)
+ li.add_control (d)
+ add_element (li)
+ end
+
+ add_dropdown_right (l: WSF_STATELESS_CONTROL; d: WSF_STATELESS_CONTROL)
+ -- Add dropdown menu (in li tag with class dropdown) to right aligned part of navbar
+ local
+ li: WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
+ do
+ create li.make_with_tag_name (control_name + "_link" + nav.controls.count.out, "li")
+ li.add_class ("dropdown")
+ li.add_control (l)
+ li.add_control (d)
+ add_element_right (li)
+ end
+
+ add_list_element_right (l: WSF_STATELESS_CONTROL)
-- Add element in li tag to right aligned part of navbar
local
name: STRING
li: WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
do
name := control_name + "_rightlink";
- if attached nav_right as right then
- name := name + right.controls.count.out
- else
- name := name + "0"
- end
+ name := name + nav_right.controls.count.out
create li.make_with_tag_name (name, "li")
- li.add_control (c)
+ li.add_control (l)
add_element_right (li)
end
- add_list_element (c: WSF_STATELESS_CONTROL)
+ add_list_element (l: 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 (control_name + "_link" + nav.controls.count.out, "li")
- li.add_control (c)
+ li.add_control (l)
add_element (li)
end
add_element_right (c: WSF_STATELESS_CONTROL)
-- Add element to right aligned part of navbar
- local
- right: WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
do
- if attached nav_right as r then
- right := r
- else
- create right.make_with_tag_name (control_name + "_rightnav", "ul")
- right.add_class ("nav navbar-nav navbar-right")
- nav_right := right
- end
- right.add_control (c)
+ nav_right.add_control (c)
end
add_element (c: WSF_STATELESS_CONTROL)
@@ -109,15 +135,26 @@ feature -- Change
nav.add_control (c)
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 STRING
-- Optional brand of the navbar
nav: WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
-- Middle nav
- nav_right: detachable WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
+ nav_right: WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
-- Right nav
end
diff --git a/draft/library/wsf_js_widget/kernel/slider/wsf_image_slider_control.e b/draft/library/wsf_js_widget/kernel/slider/wsf_image_slider_control.e
index 3f2e6724..a5266f24 100644
--- a/draft/library/wsf_js_widget/kernel/slider/wsf_image_slider_control.e
+++ b/draft/library/wsf_js_widget/kernel/slider/wsf_image_slider_control.e
@@ -21,9 +21,9 @@ feature {NONE} -- Initialization
do
make_control (n, "div")
add_class ("carousel slide")
- create list.make_with_tag_name (control_name+"_links", "ol")
+ create list.make_with_tag_name (control_name + "_links", "ol")
list.add_class ("carousel-indicators")
- create slide_wrapper.make_multi_control (control_name+"_wrapper")
+ create slide_wrapper.make_multi_control (control_name + "_wrapper")
slide_wrapper.add_class ("carousel-inner")
end
@@ -53,45 +53,62 @@ feature -- Rendering
do
temp := list.render
temp.append (slide_wrapper.render)
- temp.append (render_tag_with_tagname ("a", "", "href=%"#" + control_name + "%" data-slide=%"next%"", "left carousel-control"))
- temp.append (render_tag_with_tagname ("a", "", "href=%"#" + control_name + "%" data-slide=%"prev%"", "right carousel-control"))
+ temp.append (render_tag_with_tagname ("a", "", "href=%"#" + control_name + "%" data-slide=%"prev%"", "left carousel-control"))
+ temp.append (render_tag_with_tagname ("a", "", "href=%"#" + control_name + "%" data-slide=%"next%"", "right carousel-control"))
Result := render_tag (temp, "")
end
feature -- Change
- add_image_with_caption (src, alt: STRING; caption: detachable WSF_STATELESS_CONTROL)
- -- Add a new image to the slider, with specified url, alternative text and caption element
+ add_image_with_caption (src, alt, caption: STRING)
local
- item: WSF_MULTI_CONTROL[WSF_STATELESS_CONTROL]
+ caption_control: detachable WSF_STATELESS_CONTROL
do
- list.add_control (create {WSF_BASIC_CONTROL}.make_with_body ("li", "data-target=%"#" + control_name + "%" data-slide-to=%"" + list.controls.count.out + "%"", ""));
- create item.make_multi_control (control_name+"_item"+slide_wrapper.controls.count.out)
- item.add_class ("item")
- item.add_control (create {WSF_BASIC_CONTROL}.make_with_body ("img", "src=%"" + src + "%" alt=%"" + alt + "%"", ""))
- if attached caption as c then
- item.add_control (c)
+ if attached caption as c and then not c.is_empty then
+ caption_control := create {WSF_BASIC_CONTROL}.make_with_body ("p", "", c)
end
- slide_wrapper.add_control (item)
+ add_image_with_caption_control (src, alt, caption_control)
+ end
+
+ add_image_with_caption_control (src, alt: STRING; caption: detachable WSF_STATELESS_CONTROL)
+ -- Add a new image to the slider, with specified url, alternative text and caption element
+ do
+ add_control (create {WSF_BASIC_CONTROL}.make_with_body_class ("img", "src=%"" + src + "%" alt=%"" + alt + "%"", "", ""), Void)
end
add_image (src, alt: STRING)
-- Add a new image to the slider, with specified url and alternative text
do
- add_image_with_caption (src, alt, Void)
+ add_image_with_caption (src, alt, "")
end
- add_control(c:WSF_STATELESS_CONTROL)
- do
-
- end
+ add_control (c: WSF_STATELESS_CONTROL; caption: detachable WSF_STATELESS_CONTROL)
+ -- Add a new control to the slider
+ local
+ cl: STRING
+ item: WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
+ do
+ create item.make_multi_control (control_name + "_item" + slide_wrapper.controls.count.out)
+ item.add_class ("item")
+ item.add_control (c)
+ if attached caption as capt then
+ item.add_control (capt)
+ end
+ cl := ""
+ if slide_wrapper.controls.count = 0 then
+ cl := "active"
+ item.add_class (cl)
+ end
+ slide_wrapper.add_control (item)
+ list.add_control (create {WSF_BASIC_CONTROL}.make_with_body_class ("li", "data-target=%"#" + control_name + "%" data-slide-to=%"" + list.controls.count.out + "%"", cl, ""));
+ end
feature -- Properties
- list: WSF_MULTI_CONTROL[WSF_STATELESS_CONTROL]
+ list: WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
-- List of slider links
- slide_wrapper: WSF_MULTI_CONTROL[WSF_STATELESS_CONTROL]
+ slide_wrapper: WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
-- List of the single slides
end
diff --git a/draft/library/wsf_js_widget/kernel/webcontrol/wsf_basic_control.e b/draft/library/wsf_js_widget/kernel/webcontrol/wsf_basic_control.e
index 8bcf360e..e168f145 100644
--- a/draft/library/wsf_js_widget/kernel/webcontrol/wsf_basic_control.e
+++ b/draft/library/wsf_js_widget/kernel/webcontrol/wsf_basic_control.e
@@ -15,14 +15,14 @@ inherit
end
create
- make_control, make_with_body
+ make_control, make_with_body, make_with_body_class
feature {NONE} -- Initialization
make_control (t: STRING)
-- Initialize
do
- make_with_body (t, "", "")
+ make_with_body_class (t, "", "", "")
end
make_with_body (t, attr, b: STRING)
@@ -33,6 +33,15 @@ feature {NONE} -- Initialization
body := b
end
+ make_with_body_class (t, attr, c, b: STRING)
+ -- Initialize with specific attributes and body
+ do
+ make_with_body (t, attr, b)
+ if not c.is_empty then
+ css_classes.extend (c)
+ end
+ end
+
feature -- Rendering
render: STRING
diff --git a/draft/library/wsf_js_widget/kernel/webcontrol/wsf_control.e b/draft/library/wsf_js_widget/kernel/webcontrol/wsf_control.e
index d19b180b..83b319c9 100644
--- a/draft/library/wsf_js_widget/kernel/webcontrol/wsf_control.e
+++ b/draft/library/wsf_js_widget/kernel/webcontrol/wsf_control.e
@@ -14,11 +14,6 @@ inherit
render_tag
end
-
-feature
-
- control_name: STRING
-
feature {NONE} -- Initialization
make_control (n, a_tag_name: STRING)
@@ -37,10 +32,10 @@ feature {NONE} -- Initialization
feature -- Actions
- start_modal(url:STRING; title:STRING)
- --Start a modal window containg an other or the same page
+ start_modal (url: STRING; title: STRING)
+ --Start a modal window containg an other or the same page
local
- modal:WSF_JSON_OBJECT
+ modal: WSF_JSON_OBJECT
do
create modal.make
modal.put_string ("start_modal", "type")
@@ -49,10 +44,10 @@ feature -- Actions
actions.add (modal)
end
- start_modal_big(url:STRING; title:STRING)
- --Start a modal window containg an other or the same page
+ start_modal_big (url: STRING; title: STRING)
+ --Start a modal window containg an other or the same page
local
- modal:WSF_JSON_OBJECT
+ modal: WSF_JSON_OBJECT
do
create modal.make
modal.put_string ("start_modal_big", "type")
@@ -61,10 +56,10 @@ feature -- Actions
actions.add (modal)
end
- show_alert(mesage:STRING)
- --Start a modal window containg an other or the same page
+ show_alert (mesage: STRING)
+ --Start a modal window containg an other or the same page
local
- modal:WSF_JSON_OBJECT
+ modal: WSF_JSON_OBJECT
do
create modal.make
modal.put_string ("show_alert", "type")
@@ -72,7 +67,7 @@ feature -- Actions
actions.add (modal)
end
-feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- STATE MANAGEMENT
+feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- State management
load_state (new_states: JSON_OBJECT)
-- Select state stored with `control_name` as key
@@ -102,9 +97,9 @@ feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- STATE MANAGEMENT
end
if actions.count > 0 then
if not attached states.item ("actions") then
- states.put (create {JSON_ARRAY}.make_array,"actions")
+ states.put (create {JSON_ARRAY}.make_array, "actions")
end
- if attached {JSON_ARRAY}states.item ("actions") as action_list then
+ if attached {JSON_ARRAY} states.item ("actions") as action_list then
across
actions.array_representation as action
loop
@@ -150,17 +145,18 @@ feature -- Rendering
Result := render_tag_with_tagname (tag_name, body, l_attributes, css_classes_string)
end
-feature -- EVENT HANDLING
+feature -- Event handling
handle_callback (cname: STRING; event: STRING; event_parameter: detachable STRING)
-- Method called if any callback received. In this method you can route the callback to the event handler
deferred
end
+
feature -- Change
set_isolation (p: BOOLEAN)
do
- isolate := true
+ isolate := p
end
feature -- Properties
@@ -168,4 +164,7 @@ feature -- Properties
isolate: BOOLEAN
actions: JSON_ARRAY
+
+ control_name: STRING
+
end
diff --git a/draft/library/wsf_js_widget/kernel/webcontrol/wsf_multi_control.e b/draft/library/wsf_js_widget/kernel/webcontrol/wsf_multi_control.e
index 6012a2e9..c9da5a38 100644
--- a/draft/library/wsf_js_widget/kernel/webcontrol/wsf_multi_control.e
+++ b/draft/library/wsf_js_widget/kernel/webcontrol/wsf_multi_control.e
@@ -120,19 +120,17 @@ feature -- Rendering
across
controls as c
loop
- Result := c.item.render + Result
+ Result := Result + c.item.render
end
Result := render_tag (Result, "")
end
feature -- Change
- add_control (c: detachable G)
+ add_control (c: G)
-- Add a control to this multi control
do
- if attached c as d then
- controls.put_front (d)
- end
+ controls.extend (c)
end
feature -- Properties
diff --git a/draft/library/wsf_js_widget/kernel/webcontrol/wsf_stateless_control.e b/draft/library/wsf_js_widget/kernel/webcontrol/wsf_stateless_control.e
index 011585cc..f890f7be 100644
--- a/draft/library/wsf_js_widget/kernel/webcontrol/wsf_stateless_control.e
+++ b/draft/library/wsf_js_widget/kernel/webcontrol/wsf_stateless_control.e
@@ -27,7 +27,7 @@ feature -- Access
-- List of classes (appear in the "class" attribute)
attributes: detachable STRING
- -- Attributes string
+ -- Attributes string (without classes)
feature -- Change
diff --git a/examples/widgetapp/application.e b/examples/widgetapp/application.e
index 9472704d..8e250c49 100644
--- a/examples/widgetapp/application.e
+++ b/examples/widgetapp/application.e
@@ -129,7 +129,7 @@ feature -- Execution
slider_demo (request: WSF_REQUEST; response: WSF_RESPONSE)
local
- page: IMAGE_SLIDER_PAGE
+ page: SLIDER_PAGE
do
-- To send a response we need to setup, the status code and
-- the response headers.
diff --git a/examples/widgetapp/base_page.e b/examples/widgetapp/base_page.e
index 790385b6..13a41fa5 100644
--- a/examples/widgetapp/base_page.e
+++ b/examples/widgetapp/base_page.e
@@ -18,7 +18,6 @@ feature
initialize_controls
local
- navbar: WSF_NAVBAR_CONTROL
btn: WSF_BUTTON_CONTROL
do
create control.make_multi_control ("container")
@@ -27,11 +26,12 @@ feature
navbar.add_list_element (create {WSF_BASIC_CONTROL}.make_with_body ("a", "href=%"/%"", "Home"))
navbar.add_list_element (create {WSF_BASIC_CONTROL}.make_with_body ("a", "href=%"/grid%"", "Grid"))
navbar.add_list_element (create {WSF_BASIC_CONTROL}.make_with_body ("a", "href=%"/repeater%"", "Repeater"))
- navbar.add_list_element (create {WSF_BASIC_CONTROL}.make_with_body ("a", "href=%"/slider%"", "Image Slider"))
+ navbar.add_list_element (create {WSF_BASIC_CONTROL}.make_with_body ("a", "href=%"/slider%"", "Slider"))
+ navbar.add_list_element_right (create {WSF_BASIC_CONTROL}.make_with_body ("a", "href=%"/about%"", "About"))
create btn.make_button ("scode", "Show Code")
btn.set_click_event (agent show_code)
btn.set_isolation (true)
- btn.add_class ("btn-success")
+ btn.add_class ("btn-success")
control.add_control (btn)
if not attached get_parameter ("ajax") then
control.add_control (navbar)
@@ -47,4 +47,6 @@ feature
control: WSF_MULTI_CONTROL [WSF_STATELESS_CONTROL]
+ navbar: WSF_NAVBAR_CONTROL
+
end
diff --git a/examples/widgetapp/grid_page.e b/examples/widgetapp/grid_page.e
index 95895d4a..d21396e1 100644
--- a/examples/widgetapp/grid_page.e
+++ b/examples/widgetapp/grid_page.e
@@ -10,9 +10,9 @@ class
inherit
BASE_PAGE
- redefine
- initialize_controls
- end
+ redefine
+ initialize_controls
+ end
create
make
@@ -22,16 +22,16 @@ feature
initialize_controls
do
Precursor
- control.add_control (create {WSF_BASIC_CONTROL}.make_with_body("h1","","Grid Demo"))
+ control.add_control (create {WSF_BASIC_CONTROL}.make_with_body ("h1", "", "Grid Demo"))
create datasource.make_news
create search_query.make_autocomplete ("query", create {GOOGLE_AUTOCOMPLETION}.make)
search_query.add_class ("form-control")
search_query.set_change_event (agent change_query)
control.add_control (search_query)
- control.add_control (create {WSF_BASIC_CONTROL}.make_with_body("h2","","Results"))
- create grid.make_grid ("mygrid", <>, datasource)
+ control.add_control (create {WSF_BASIC_CONTROL}.make_with_body ("h2", "", "Results"))
+ create grid.make_grid ("mygrid", <>, datasource)
control.add_control (grid)
+ navbar.set_active (2)
end
change_query
diff --git a/examples/widgetapp/image_slider_page.e b/examples/widgetapp/image_slider_page.e
index 21af24b9..cb23c691 100644
--- a/examples/widgetapp/image_slider_page.e
+++ b/examples/widgetapp/image_slider_page.e
@@ -5,7 +5,7 @@ note
revision: "$Revision$"
class
- IMAGE_SLIDER_PAGE
+ SLIDER_PAGE
inherit
@@ -20,12 +20,20 @@ create
feature -- Implementation
initialize_controls
+ local
+ form: WSF_FORM_CONTROL
do
Precursor
create slider.make_slider ("myslider")
+ create form.make_form_control ("sliderform")
+ form.add_control (create {WSF_FORM_ELEMENT_CONTROL[STRING]}.make_form_element ("Input", create {WSF_INPUT_CONTROL}.make_input ("sliderformtext", "Test")))
+ slider.add_control (form, Void)
slider.add_image ("http://www.placesmustseen.com/wp-content/uploads/2013/01/paris-eiffel-tower.jpg", "Eiffel Tower")
+ slider.add_image ("http://24.media.tumblr.com/0fcec9a7dde5b405a46b6fcda1ffad0c/tumblr_mtagkyYVIT1st5lhmo1_1280.jpg", "car")
+ slider.add_image ("http://25.media.tumblr.com/d9e791508eb9a532aa7f258fa4e0fedc/tumblr_mtag5zve3g1st5lhmo1_1280.jpg", "landscape")
control.add_control (create {WSF_BASIC_CONTROL}.make_with_body ("h1", "", " Image Slider Demo"))
control.add_control (slider)
+ navbar.set_active (4)
end
process
diff --git a/examples/widgetapp/repeater_page.e b/examples/widgetapp/repeater_page.e
index 4c93959c..eba46107 100644
--- a/examples/widgetapp/repeater_page.e
+++ b/examples/widgetapp/repeater_page.e
@@ -31,6 +31,7 @@ feature
control.add_control (create {WSF_BASIC_CONTROL}.make_with_body ("h2", "", "Results"))
create repeater.make_repeater ("myrepeater", datasource)
control.add_control (repeater)
+ navbar.set_active (3)
end
change_query
diff --git a/examples/widgetapp/sample_page.e b/examples/widgetapp/sample_page.e
index 41b00ab2..aaa14acf 100644
--- a/examples/widgetapp/sample_page.e
+++ b/examples/widgetapp/sample_page.e
@@ -85,6 +85,7 @@ feature
source.set_control (progress)
progress.set_isolation (true)
control.add_control (progress)
+ navbar.set_active (1)
end
handle_click
diff --git a/tools/build_archive.sh b/tools/build_archive.sh
old mode 100755
new mode 100644
diff --git a/tools/ise_wizard/install_ise_wizard.sh b/tools/ise_wizard/install_ise_wizard.sh
old mode 100755
new mode 100644
diff --git a/tools/ise_wizard/install_ise_wizard_custom.sh b/tools/ise_wizard/install_ise_wizard_custom.sh
old mode 100755
new mode 100644