From 3b2ad80dc35b55beffa3d7397fc09a1b89e58a8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Severin=20M=C3=BCnger?= Date: Tue, 3 Sep 2013 03:53:01 +0200 Subject: [PATCH] Added TextArea --- examples/widgetapp/widget.coffee | 17 ++++++++++++++ examples/widgetapp/widget.js | 39 ++++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/examples/widgetapp/widget.coffee b/examples/widgetapp/widget.coffee index 5b288b79..fc334f39 100644 --- a/examples/widgetapp/widget.coffee +++ b/examples/widgetapp/widget.coffee @@ -54,10 +54,27 @@ class WSF_TEXT_CONTROL extends WSF_CONTROL window.states[@control_name]['text'] = state.text @$el.val(state.text) +class WSF_TEXTAREA_CONTROL extends WSF_CONTROL + attach_events: () -> + self = @ + @$el.change () -> + self.change() + + change: () -> + window.states[@control_name]['text'] = @$el.val() + if window.states[@control_name]['callback_change'] + trigger_callback(@control_name, 'change') + + update: (state) -> + if state.text? + window.states[@control_name]['text'] = state.text + $el.val(state.text) + #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 #create a js class for each control for name,state of window.states diff --git a/examples/widgetapp/widget.js b/examples/widgetapp/widget.js index 2ea34ceb..b27e13ef 100644 --- a/examples/widgetapp/widget.js +++ b/examples/widgetapp/widget.js @@ -1,6 +1,6 @@ // Generated by CoffeeScript 1.6.1 (function() { - var $el, WSF_BUTTON_CONTROL, WSF_CONTROL, WSF_TEXT_CONTROL, controls, name, state, trigger_callback, type, typemap, _ref, + var $el, WSF_BUTTON_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; }; @@ -109,9 +109,44 @@ })(WSF_CONTROL); + WSF_TEXTAREA_CONTROL = (function(_super) { + + __extends(WSF_TEXTAREA_CONTROL, _super); + + function WSF_TEXTAREA_CONTROL() { + return WSF_TEXTAREA_CONTROL.__super__.constructor.apply(this, arguments); + } + + WSF_TEXTAREA_CONTROL.prototype.attach_events = function() { + var self; + self = this; + return this.$el.change(function() { + return self.change(); + }); + }; + + WSF_TEXTAREA_CONTROL.prototype.change = function() { + window.states[this.control_name]['text'] = this.$el.val(); + if (window.states[this.control_name]['callback_change']) { + return trigger_callback(this.control_name, 'change'); + } + }; + + WSF_TEXTAREA_CONTROL.prototype.update = function(state) { + if (state.text != null) { + window.states[this.control_name]['text'] = state.text; + return $el.val(state.text); + } + }; + + return WSF_TEXTAREA_CONTROL; + + })(WSF_CONTROL); + typemap = { "WSF_BUTTON_CONTROL": WSF_BUTTON_CONTROL, - "WSF_TEXT_CONTROL": WSF_TEXT_CONTROL + "WSF_TEXT_CONTROL": WSF_TEXT_CONTROL, + "WSF_TEXTAREA_CONTROL": WSF_TEXTAREA_CONTROL }; _ref = window.states;