Fix event handler

This commit is contained in:
YNH Webdev
2013-11-10 16:39:04 +01:00
parent 6213021f45
commit 72e7493842
6 changed files with 71 additions and 15 deletions

View File

@@ -0,0 +1,32 @@
note
description: "Summary description for {WSF_AGENT_VALIDATOR}."
author: ""
date: "$Date$"
revision: "$Revision$"
class
WSF_AGENT_VALIDATOR [G]
inherit
WSF_VALIDATOR [G]
create
make_with_agent
feature {NONE} -- Initialization
make_with_agent (h:like handler; e: STRING)
do
make (e)
handler := h
end
feature
is_valid (input: G): BOOLEAN
do
Result := handler.item ( [input])
end
handler: FUNCTION[ANY,TUPLE[G],BOOLEAN]
end

View File

@@ -84,8 +84,8 @@ feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- State management
Precursor (states) Precursor (states)
create sub_states.make create sub_states.make
value_control.read_state_changes (sub_states) value_control.read_state_changes (sub_states)
if sub_states.count>0 then if sub_states.count > 0 then
if attached {JSON_OBJECT}states.item (control_name) as changes then if attached {JSON_OBJECT} states.item (control_name) as changes then
changes.put (sub_states, "controls") changes.put (sub_states, "controls")
else else
create control_state.make create control_state.make
@@ -113,16 +113,19 @@ feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- State management
feature -- Event handling feature -- Event handling
handle_callback (cname: LIST[STRING]; event: STRING; event_parameter: detachable STRING) handle_callback (cname: LIST [STRING]; event: STRING; event_parameter: detachable STRING)
-- Pass callback to subcontrols -- Pass callback to subcontrols
do do
if cname[1].same_string (control_name) then if cname [1].same_string (control_name) then
cname.go_i_th (1) cname.go_i_th (1)
cname.remove cname.remove
if event.same_string ("validate") then if cname.is_empty then
validate if event.same_string ("validate") then
validate
end
else
value_control.handle_callback (cname, event, event_parameter)
end end
value_control.handle_callback (cname, event, event_parameter)
end end
end end

View File

@@ -100,8 +100,8 @@ feature {WSF_PAGE_CONTROL, WSF_CONTROL} -- State management
Precursor (states) Precursor (states)
create sub_states.make create sub_states.make
read_subcontrol_state_changes (sub_states) read_subcontrol_state_changes (sub_states)
if sub_states.count>0 then if sub_states.count > 0 then
if attached {JSON_OBJECT}states.item (control_name) as changes then if attached {JSON_OBJECT} states.item (control_name) as changes then
changes.put (sub_states, "controls") changes.put (sub_states, "controls")
else else
create control_state.make create control_state.make
@@ -138,11 +138,15 @@ feature -- Event handling
if equal (cname [1], control_name) then if equal (cname [1], control_name) then
cname.go_i_th (1) cname.go_i_th (1)
cname.remove cname.remove
across if not cname.is_empty then
controls as c across
loop controls as c
if attached {WSF_CONTROL} c.item as cont then until
cont.handle_callback (cname, event, event_parameter) cname.is_empty
loop
if attached {WSF_CONTROL} c.item as cont then
cont.handle_callback (cname, event, event_parameter)
end
end end
end end
end end

View File

@@ -1,3 +1,4 @@
note note
description: "Summary description for {WSF_STATELESS_MULTI_CONTROL}." description: "Summary description for {WSF_STATELESS_MULTI_CONTROL}."
author: "" author: ""
@@ -80,6 +81,8 @@ feature -- Event handling
do do
across across
controls as c controls as c
until
cname.is_empty
loop loop
if attached {WSF_CONTROL} c.item as cont then if attached {WSF_CONTROL} c.item as cont then
cont.handle_callback (cname, event, event_parameter) cont.handle_callback (cname, event, event_parameter)

View File

@@ -360,6 +360,8 @@ class WSF_INPUT_CONTROL extends WSF_CONTROL
@state['text'] = state.text @state['text'] = state.text
@$el.val(state.text) @$el.val(state.text)
class WSF_PASSWORD_CONTROL extends WSF_INPUT_CONTROL
class WSF_NAVLIST_ITEM_CONTROL extends WSF_BUTTON_CONTROL class WSF_NAVLIST_ITEM_CONTROL extends WSF_BUTTON_CONTROL
update: (state) -> update: (state) ->
super super

View File

@@ -1,5 +1,5 @@
// Generated by CoffeeScript 1.6.1 // Generated by CoffeeScript 1.6.1
var Mini, WSF_AUTOCOMPLETE_CONTROL, WSF_BUTTON_CONTROL, WSF_CHECKBOX_CONTROL, WSF_CHECKBOX_LIST_CONTROL, WSF_CODEVIEW_CONTROL, WSF_CONTROL, WSF_DROPDOWN_CONTROL, WSF_FORM_ELEMENT_CONTROL, WSF_GRID_CONTROL, WSF_HTML_CONTROL, WSF_INPUT_CONTROL, WSF_MAX_VALIDATOR, WSF_MIN_VALIDATOR, WSF_NAVLIST_ITEM_CONTROL, WSF_PAGE_CONTROL, WSF_PAGINATION_CONTROL, WSF_PROGRESS_CONTROL, WSF_REGEXP_VALIDATOR, WSF_REPEATER_CONTROL, WSF_SLIDER_CONTROL, WSF_TEXTAREA_CONTROL, WSF_VALIDATOR, build_control, cache, controls, lazy_load, loaded, parseSuggestions, show_alert, start_modal, start_modal_big, template, tmpl, var Mini, WSF_AUTOCOMPLETE_CONTROL, WSF_BUTTON_CONTROL, WSF_CHECKBOX_CONTROL, WSF_CHECKBOX_LIST_CONTROL, WSF_CODEVIEW_CONTROL, WSF_CONTROL, WSF_DROPDOWN_CONTROL, WSF_FORM_ELEMENT_CONTROL, WSF_GRID_CONTROL, WSF_HTML_CONTROL, WSF_INPUT_CONTROL, WSF_MAX_VALIDATOR, WSF_MIN_VALIDATOR, WSF_NAVLIST_ITEM_CONTROL, WSF_PAGE_CONTROL, WSF_PAGINATION_CONTROL, WSF_PASSWORD_CONTROL, WSF_PROGRESS_CONTROL, WSF_REGEXP_VALIDATOR, WSF_REPEATER_CONTROL, WSF_SLIDER_CONTROL, WSF_TEXTAREA_CONTROL, WSF_VALIDATOR, build_control, cache, controls, lazy_load, loaded, parseSuggestions, show_alert, start_modal, start_modal_big, template, tmpl,
__hasProp = {}.hasOwnProperty, __hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
@@ -596,6 +596,18 @@ WSF_INPUT_CONTROL = (function(_super) {
})(WSF_CONTROL); })(WSF_CONTROL);
WSF_PASSWORD_CONTROL = (function(_super) {
__extends(WSF_PASSWORD_CONTROL, _super);
function WSF_PASSWORD_CONTROL() {
return WSF_PASSWORD_CONTROL.__super__.constructor.apply(this, arguments);
}
return WSF_PASSWORD_CONTROL;
})(WSF_INPUT_CONTROL);
WSF_NAVLIST_ITEM_CONTROL = (function(_super) { WSF_NAVLIST_ITEM_CONTROL = (function(_super) {
__extends(WSF_NAVLIST_ITEM_CONTROL, _super); __extends(WSF_NAVLIST_ITEM_CONTROL, _super);