From 2fbffb8c9edcc68eb0441f867c9b44ea1eb67afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Severin=20M=C3=BCnger?= Date: Sun, 15 Sep 2013 22:13:51 +0200 Subject: [PATCH] Added progress callback --- examples/widgetapp/base_page.e | 2 +- .../progress/increasing_progresssource.e | 36 +++++++++++++++++++ examples/widgetapp/sample_page.e | 2 +- examples/widgetapp/widget.coffee | 10 +++++- examples/widgetapp/widget.js | 13 ++++++- .../progressbar/wsf_progress_control.e | 5 ++- 6 files changed, 63 insertions(+), 5 deletions(-) create mode 100644 examples/widgetapp/progress/increasing_progresssource.e diff --git a/examples/widgetapp/base_page.e b/examples/widgetapp/base_page.e index 67debeb1..083d95cb 100644 --- a/examples/widgetapp/base_page.e +++ b/examples/widgetapp/base_page.e @@ -25,7 +25,7 @@ feature navbar.add_element (create {WSF_BASIC_CONTROL}.make_with_body ("a", "href=%"/repeater%"", "Repeater")) navbar.add_element_right (create {WSF_BASIC_CONTROL}.make_with_body ("a", "href=%"#%"", "About")) container.add_control (navbar) - control:=container + control := container end feature diff --git a/examples/widgetapp/progress/increasing_progresssource.e b/examples/widgetapp/progress/increasing_progresssource.e new file mode 100644 index 00000000..0d884713 --- /dev/null +++ b/examples/widgetapp/progress/increasing_progresssource.e @@ -0,0 +1,36 @@ +note + description: "Summary description for {INCREASING_PROGRESSSOURCE}." + author: "" + date: "$Date$" + revision: "$Revision$" + +class + INCREASING_PROGRESSSOURCE + +inherit + + WSF_PROGRESSSOURCE + +create + make + +feature {NONE} -- Initialization + + progress_value: INTEGER + + make + do + progress_value := 0 + end + +feature -- Implementation + + progress: INTEGER + do + Result := progress_value + if progress_value < 100 then + progress_value := progress_value + 1 + end + end + +end diff --git a/examples/widgetapp/sample_page.e b/examples/widgetapp/sample_page.e index 5b2f6a58..b9d70941 100644 --- a/examples/widgetapp/sample_page.e +++ b/examples/widgetapp/sample_page.e @@ -77,7 +77,7 @@ feature --Progress bar container.add_control (create {WSF_BASIC_CONTROL}.make_with_body("h4","","Number1/Number2")) - create progress.make_progress ("progress1") + create progress.make_progress_with_source ("progress1", create {INCREASING_PROGRESSSOURCE}.make) container.add_control (progress) end diff --git a/examples/widgetapp/widget.coffee b/examples/widgetapp/widget.coffee index 7c6b2d18..7a97c246 100644 --- a/examples/widgetapp/widget.coffee +++ b/examples/widgetapp/widget.coffee @@ -254,10 +254,18 @@ class WSF_CHECKBOX_LIST_CONTROL extends WSF_CONTROL class WSF_PROGRESS_CONTROL extends WSF_CONTROL + attach_events:() -> + self = @ + setInterval(@fetch, 1000) + + fetch: ()-> + trigger_callback(@control_name, 'progress_fetch') + update: (state)-> + alert('update') if state.progress? window.states[@control_name]['progress'] = state.progress - $('#' + @control_name).children('.progress-bar').attr('aria-valuenow', state.progress).width(state.progress + '%') + @$el.children('.progress-bar').attr('aria-valuenow', state.progress).width(state.progress + '%') class WSF_PAGINATION_CONTROL extends WSF_CONTROL attach_events: ()-> diff --git a/examples/widgetapp/widget.js b/examples/widgetapp/widget.js index db7554dc..6c8fe004 100644 --- a/examples/widgetapp/widget.js +++ b/examples/widgetapp/widget.js @@ -477,10 +477,21 @@ return WSF_PROGRESS_CONTROL.__super__.constructor.apply(this, arguments); } + WSF_PROGRESS_CONTROL.prototype.attach_events = function() { + var self; + self = this; + return setInterval(this.fetch, 1000); + }; + + WSF_PROGRESS_CONTROL.prototype.fetch = function() { + return trigger_callback(this.control_name, 'progress_fetch'); + }; + WSF_PROGRESS_CONTROL.prototype.update = function(state) { + alert('update'); if (state.progress != null) { window.states[this.control_name]['progress'] = state.progress; - return $('#' + this.control_name).children('.progress-bar').attr('aria-valuenow', state.progress).width(state.progress + '%'); + return this.$el.children('.progress-bar').attr('aria-valuenow', state.progress).width(state.progress + '%'); } }; diff --git a/library/server/wsf_html/webcontrol/progressbar/wsf_progress_control.e b/library/server/wsf_html/webcontrol/progressbar/wsf_progress_control.e index a7431b56..0012a372 100644 --- a/library/server/wsf_html/webcontrol/progressbar/wsf_progress_control.e +++ b/library/server/wsf_html/webcontrol/progressbar/wsf_progress_control.e @@ -53,8 +53,11 @@ feature -- Event handling feature -- Rendering render: STRING + local + p: STRING do - Result := render_tag_with_tagname ("div", "", "role=%"progressbar%" aria-valuenow=%"" + progress_value.out + "%" aria-valuemin=%"0%" aria-valuemax=%"100%" style=%"width: " + progress_value.out + "%%;%"", "progress-bar") + p := progress_value.out + Result := render_tag_with_tagname ("div", "", "role=%"progressbar%" aria-valuenow=%"" + p + "%" aria-valuemin=%"0%" aria-valuemax=%"100%" style=%"width: " + p + "%%;%"", "progress-bar") Result := render_tag (Result, "") end