First working checkbox list
This commit is contained in:
@@ -30,16 +30,29 @@ feature
|
||||
create textbox_result.make_textarea ("txtBox3", "")
|
||||
button1.set_click_event (agent handle_click)
|
||||
create form.make_form_control ("panel")
|
||||
form.add_class ("form-horizontal")
|
||||
create cklist.make_checkbox_list_control("categories")
|
||||
cklist.add_control (create {WSF_CHECKBOX_CONTROL}.make_checkbox("net","Network","net"))
|
||||
cklist.add_control (create {WSF_CHECKBOX_CONTROL}.make_checkbox("os","Operating Systems","os"))
|
||||
form.add_control (create {WSF_FORM_ELEMENT_CONTROL[STRING]}.make_form_element("Number1",textbox1))
|
||||
form.add_control (create {WSF_FORM_ELEMENT_CONTROL[STRING]}.make_form_element("Number2",textbox2))
|
||||
form.add_control (create {WSF_FORM_ELEMENT_CONTROL[LIST[STRING]]}.make_form_element("Categories",cklist))
|
||||
form.add_control (button1)
|
||||
form.add_control (create {WSF_FORM_ELEMENT_CONTROL[STRING]}.make_form_element("Result",textbox_result))
|
||||
control := form
|
||||
end
|
||||
|
||||
handle_click
|
||||
local
|
||||
text:STRING
|
||||
do
|
||||
textbox_result.set_text (textbox1.text + " + " + textbox2.text + " = " + (textbox1.text.to_integer_16 + textbox2.text.to_integer_16).out)
|
||||
text := textbox1.text + " + " + textbox2.text + " = " + (textbox1.text.to_integer_16 + textbox2.text.to_integer_16).out
|
||||
across
|
||||
cklist.value as s
|
||||
loop
|
||||
text.append ("%N-"+s.item)
|
||||
end
|
||||
textbox_result.set_text (text)
|
||||
end
|
||||
|
||||
process
|
||||
@@ -52,6 +65,8 @@ feature
|
||||
|
||||
textbox2: WSF_TEXT_CONTROL
|
||||
|
||||
cklist: WSF_CHECKBOX_LIST_CONTROL
|
||||
|
||||
textbox_result: WSF_TEXTAREA_CONTROL
|
||||
|
||||
end
|
||||
|
||||
@@ -71,12 +71,28 @@ class WSF_TEXTAREA_CONTROL extends WSF_CONTROL
|
||||
window.states[@control_name]['text'] = state.text
|
||||
@$el.val(state.text)
|
||||
|
||||
class WSF_CHECKBOX_CONTROL extends WSF_CONTROL
|
||||
attach_events: ()->
|
||||
self = @
|
||||
@$el.change ()->
|
||||
self.change()
|
||||
change: ()->
|
||||
#update local state
|
||||
window.states[@control_name]['checked'] = @$el.is(':checked')
|
||||
if window.states[@control_name]['callback_change']
|
||||
trigger_callback(@control_name, 'change')
|
||||
|
||||
update: (state) ->
|
||||
if state.text?
|
||||
window.states[@control_name]['checked'] = state.checked
|
||||
@$el.prop('checked',state.checked)
|
||||
|
||||
#map class name to effective class
|
||||
typemap =
|
||||
"WSF_BUTTON_CONTROL":WSF_BUTTON_CONTROL
|
||||
"WSF_TEXT_CONTROL":WSF_TEXT_CONTROL
|
||||
"WSF_TEXTAREA_CONTROL":WSF_TEXTAREA_CONTROL
|
||||
"WSF_FORM_CONTROL":WSF_FORM_CONTROL
|
||||
"WSF_CHECKBOX_CONTROL":WSF_CHECKBOX_CONTROL
|
||||
|
||||
#create a js class for each control
|
||||
for name,state of window.states
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Generated by CoffeeScript 1.6.1
|
||||
(function() {
|
||||
var $el, WSF_BUTTON_CONTROL, WSF_CONTROL, WSF_TEXTAREA_CONTROL, WSF_TEXT_CONTROL, controls, name, state, trigger_callback, type, typemap, _ref,
|
||||
var $el, WSF_BUTTON_CONTROL, WSF_CHECKBOX_CONTROL, WSF_CONTROL, WSF_TEXTAREA_CONTROL, WSF_TEXT_CONTROL, controls, name, state, trigger_callback, type, typemap, _ref,
|
||||
__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; };
|
||||
|
||||
@@ -144,10 +144,45 @@
|
||||
|
||||
})(WSF_CONTROL);
|
||||
|
||||
WSF_CHECKBOX_CONTROL = (function(_super) {
|
||||
|
||||
__extends(WSF_CHECKBOX_CONTROL, _super);
|
||||
|
||||
function WSF_CHECKBOX_CONTROL() {
|
||||
return WSF_CHECKBOX_CONTROL.__super__.constructor.apply(this, arguments);
|
||||
}
|
||||
|
||||
WSF_CHECKBOX_CONTROL.prototype.attach_events = function() {
|
||||
var self;
|
||||
self = this;
|
||||
return this.$el.change(function() {
|
||||
return self.change();
|
||||
});
|
||||
};
|
||||
|
||||
WSF_CHECKBOX_CONTROL.prototype.change = function() {
|
||||
window.states[this.control_name]['checked'] = this.$el.is(':checked');
|
||||
if (window.states[this.control_name]['callback_change']) {
|
||||
return trigger_callback(this.control_name, 'change');
|
||||
}
|
||||
};
|
||||
|
||||
WSF_CHECKBOX_CONTROL.prototype.update = function(state) {
|
||||
if (state.text != null) {
|
||||
window.states[this.control_name]['checked'] = state.checked;
|
||||
return this.$el.prop('checked', state.checked);
|
||||
}
|
||||
};
|
||||
|
||||
return WSF_CHECKBOX_CONTROL;
|
||||
|
||||
})(WSF_CONTROL);
|
||||
|
||||
typemap = {
|
||||
"WSF_BUTTON_CONTROL": WSF_BUTTON_CONTROL,
|
||||
"WSF_TEXT_CONTROL": WSF_TEXT_CONTROL,
|
||||
"WSF_TEXTAREA_CONTROL": WSF_TEXTAREA_CONTROL
|
||||
"WSF_TEXTAREA_CONTROL": WSF_TEXTAREA_CONTROL,
|
||||
"WSF_CHECKBOX_CONTROL": WSF_CHECKBOX_CONTROL
|
||||
};
|
||||
|
||||
_ref = window.states;
|
||||
|
||||
Reference in New Issue
Block a user