rsence 2.0.0.0.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/INSTALL.rdoc +295 -0
- data/LICENSE +622 -0
- data/README.rdoc +24 -0
- data/VERSION +1 -0
- data/bin/build_client.rb +254 -0
- data/bin/help +6 -0
- data/bin/launch.rb +120 -0
- data/bin/rdoc.sh +2 -0
- data/bin/restart +6 -0
- data/bin/rsence +120 -0
- data/bin/run +6 -0
- data/bin/run.rb +6 -0
- data/bin/save +6 -0
- data/bin/start +6 -0
- data/bin/status +6 -0
- data/bin/stop +6 -0
- data/conf/config.ru +5 -0
- data/conf/default_conf.yaml +337 -0
- data/conf/default_strings.yaml +77 -0
- data/conf/local_conf.yaml +14 -0
- data/conf/unicorn.conf +78 -0
- data/js/comm/comm/autosync/autosync.js +18 -0
- data/js/comm/comm/autosync/js.inc +0 -0
- data/js/comm/comm/comm.js +195 -0
- data/js/comm/comm/js.inc +0 -0
- data/js/comm/comm/queue/js.inc +0 -0
- data/js/comm/comm/queue/queue.js +183 -0
- data/js/comm/comm/session/js.inc +0 -0
- data/js/comm/comm/session/session.js +51 -0
- data/js/comm/comm/sessionwatcher/js.inc +0 -0
- data/js/comm/comm/sessionwatcher/sessionwatcher.js +43 -0
- data/js/comm/comm/transporter/js.inc +0 -0
- data/js/comm/comm/transporter/transporter.js +257 -0
- data/js/comm/comm/urlresponder/js.inc +0 -0
- data/js/comm/comm/urlresponder/urlresponder.js +148 -0
- data/js/comm/comm/values/js.inc +0 -0
- data/js/comm/comm/values/values.js +432 -0
- data/js/comm/jsloader/js.inc +0 -0
- data/js/comm/jsloader/jsloader.js +114 -0
- data/js/comm/reloadapp/js.inc +0 -0
- data/js/comm/reloadapp/reloadapp.js +150 -0
- data/js/comm/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
- data/js/comm/reloadapp/themes/default/reloadapp_warning.png +0 -0
- data/js/comm/sha/js.inc +0 -0
- data/js/comm/sha/sha.js +432 -0
- data/js/comm/values/value/js.inc +0 -0
- data/js/comm/values/value/value.js +182 -0
- data/js/comm/values/valuematrix/js.inc +0 -0
- data/js/comm/values/valuematrix/valuematrix.js +138 -0
- data/js/controls/button/button.js +57 -0
- data/js/controls/button/js.inc +0 -0
- data/js/controls/button/themes/bright/button.css +89 -0
- data/js/controls/button/themes/bright/button.html +7 -0
- data/js/controls/button/themes/bright/button_parts1-ie6.gif +0 -0
- data/js/controls/button/themes/bright/button_parts1.png +0 -0
- data/js/controls/button/themes/default/button.css +89 -0
- data/js/controls/button/themes/default/button.html +7 -0
- data/js/controls/button/themes/default/button_parts1-ie6.gif +0 -0
- data/js/controls/button/themes/default/button_parts1.png +0 -0
- data/js/controls/checkbox/checkbox.js +47 -0
- data/js/controls/checkbox/js.inc +0 -0
- data/js/controls/checkbox/themes/default/checkbox.css +69 -0
- data/js/controls/checkbox/themes/default/checkbox.html +5 -0
- data/js/controls/checkbox/themes/default/checkbox_parts1-ie6.gif +0 -0
- data/js/controls/checkbox/themes/default/checkbox_parts1.png +0 -0
- data/js/controls/datetime/calendar/calendar.js +197 -0
- data/js/controls/datetime/calendar/js.inc +0 -0
- data/js/controls/datetime/calendar/themes/default/calendar.css +108 -0
- data/js/controls/datetime/calendar/themes/default/calendar.html +9 -0
- data/js/controls/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
- data/js/controls/datetime/calendar/themes/default/calendar_arrows.png +0 -0
- data/js/controls/datetime/datetimevalue/datetimevalue.js +246 -0
- data/js/controls/datetime/datetimevalue/js.inc +0 -0
- data/js/controls/datetime/timesheet/js.inc +0 -0
- data/js/controls/datetime/timesheet/themes/default/timesheet.css +30 -0
- data/js/controls/datetime/timesheet/themes/default/timesheet.html +2 -0
- data/js/controls/datetime/timesheet/timesheet.js +182 -0
- data/js/controls/datetime/timesheet_item/js.inc +0 -0
- data/js/controls/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
- data/js/controls/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
- data/js/controls/datetime/timesheet_item/timesheet_item.js +247 -0
- data/js/controls/datetime/timesheet_item_edit/js.inc +0 -0
- data/js/controls/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
- data/js/controls/dialogs/alert_sheet/alert_sheet.js +62 -0
- data/js/controls/dialogs/alert_sheet/js.inc +0 -0
- data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +36 -0
- data/js/controls/dialogs/confirm_sheet/js.inc +0 -0
- data/js/controls/dialogs/sheet/js.inc +0 -0
- data/js/controls/dialogs/sheet/sheet.js +83 -0
- data/js/controls/dialogs/sheet/themes/default/sheet.css +64 -0
- data/js/controls/dialogs/sheet/themes/default/sheet.html +14 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_bg-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_bg.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_dim-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_dim.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts1-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts1.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts2-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts2.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_warning-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_warning.png +0 -0
- data/js/controls/imageview/imageview.js +108 -0
- data/js/controls/imageview/js.inc +0 -0
- data/js/controls/imageview/themes/default/blank.gif +0 -0
- data/js/controls/lists/checkboxlist/checkboxlist.js +170 -0
- data/js/controls/lists/checkboxlist/js.inc +0 -0
- data/js/controls/lists/listitems/js.inc +0 -0
- data/js/controls/lists/listitems/listitems.js +65 -0
- data/js/controls/lists/radiobuttonlist/js.inc +0 -0
- data/js/controls/lists/radiobuttonlist/radiobuttonlist.js +126 -0
- data/js/controls/passwordcontrol/js.inc +0 -0
- data/js/controls/passwordcontrol/passwordcontrol.js +22 -0
- data/js/controls/passwordcontrol/themes/default/passwordcontrol.css +0 -0
- data/js/controls/passwordcontrol/themes/default/passwordcontrol.html +18 -0
- data/js/controls/progress/progressbar/js.inc +0 -0
- data/js/controls/progress/progressbar/progressbar.js +36 -0
- data/js/controls/progress/progressbar/themes/default/progressbar.css +16 -0
- data/js/controls/progress/progressbar/themes/default/progressbar.html +2 -0
- data/js/controls/progress/progressindicator/js.inc +0 -0
- data/js/controls/progress/progressindicator/progressindicator.js +43 -0
- data/js/controls/radiobutton/js.inc +0 -0
- data/js/controls/radiobutton/radiobutton.js +41 -0
- data/js/controls/radiobutton/themes/default/radiobutton.css +69 -0
- data/js/controls/radiobutton/themes/default/radiobutton.html +5 -0
- data/js/controls/radiobutton/themes/default/radiobutton_parts1-ie6.gif +0 -0
- data/js/controls/radiobutton/themes/default/radiobutton_parts1.png +0 -0
- data/js/controls/sliders/slider/js.inc +0 -0
- data/js/controls/sliders/slider/slider.js +356 -0
- data/js/controls/sliders/slider/themes/default/hslider_tracks-ie6.gif +0 -0
- data/js/controls/sliders/slider/themes/default/hslider_tracks.png +0 -0
- data/js/controls/sliders/slider/themes/default/slider.css +108 -0
- data/js/controls/sliders/slider/themes/default/slider.html +5 -0
- data/js/controls/sliders/slider/themes/default/slider_thumbs-ie6.gif +0 -0
- data/js/controls/sliders/slider/themes/default/slider_thumbs.png +0 -0
- data/js/controls/sliders/vslider/js.inc +0 -0
- data/js/controls/sliders/vslider/themes/default/vslider.css +52 -0
- data/js/controls/sliders/vslider/themes/default/vslider.html +5 -0
- data/js/controls/sliders/vslider/themes/default/vslider_tracks-ie6.gif +0 -0
- data/js/controls/sliders/vslider/themes/default/vslider_tracks.png +0 -0
- data/js/controls/sliders/vslider/vslider.js +40 -0
- data/js/controls/stepper/js.inc +0 -0
- data/js/controls/stepper/stepper.js +212 -0
- data/js/controls/stepper/themes/default/stepper-ie6.gif +0 -0
- data/js/controls/stepper/themes/default/stepper.css +14 -0
- data/js/controls/stepper/themes/default/stepper.html +2 -0
- data/js/controls/stepper/themes/default/stepper.png +0 -0
- data/js/controls/stringview/js.inc +0 -0
- data/js/controls/stringview/stringview.js +49 -0
- data/js/controls/stringview/themes/default/stringview.css +8 -0
- data/js/controls/stringview/themes/default/stringview.html +1 -0
- data/js/controls/tab/js.inc +0 -0
- data/js/controls/tab/tab.js +276 -0
- data/js/controls/tab/themes/bright/tab.css +76 -0
- data/js/controls/tab/themes/bright/tab.html +6 -0
- data/js/controls/tab/themes/bright/tab_bg_color-ie6.gif +0 -0
- data/js/controls/tab/themes/bright/tab_bg_color.png +0 -0
- data/js/controls/tab/themes/bright/tab_border_pattern-ie6.gif +0 -0
- data/js/controls/tab/themes/bright/tab_border_pattern.png +0 -0
- data/js/controls/tab/themes/bright/tab_parts1-ie6.gif +0 -0
- data/js/controls/tab/themes/bright/tab_parts1.png +0 -0
- data/js/controls/tab/themes/default/tab.css +77 -0
- data/js/controls/tab/themes/default/tab.html +6 -0
- data/js/controls/tab/themes/default/tab_bg_color-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_bg_color.png +0 -0
- data/js/controls/tab/themes/default/tab_border_pattern-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_border_pattern.png +0 -0
- data/js/controls/tab/themes/default/tab_parts1-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_parts1.png +0 -0
- data/js/controls/textarea/js.inc +0 -0
- data/js/controls/textarea/textarea.js +23 -0
- data/js/controls/textarea/themes/default/textarea.css +21 -0
- data/js/controls/textarea/themes/default/textarea.html +18 -0
- data/js/controls/textcontrol/js.inc +0 -0
- data/js/controls/textcontrol/textcontrol.js +372 -0
- data/js/controls/textcontrol/themes/default/textcontrol.css +107 -0
- data/js/controls/textcontrol/themes/default/textcontrol.html +18 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts1-ie6.gif +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts1.png +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts2-ie6.gif +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts2.png +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts3-ie6.gif +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts3.png +0 -0
- data/js/controls/uploader/js.inc +0 -0
- data/js/controls/uploader/themes/default/upload_progress.gif +0 -0
- data/js/controls/uploader/themes/default/uploader.css +108 -0
- data/js/controls/uploader/themes/default/uploader.html +27 -0
- data/js/controls/uploader/uploader.js +153 -0
- data/js/controls/validatorview/js.inc +0 -0
- data/js/controls/validatorview/themes/default/validator-ie6.gif +0 -0
- data/js/controls/validatorview/themes/default/validator.png +0 -0
- data/js/controls/validatorview/themes/default/validatorview.css +0 -0
- data/js/controls/validatorview/themes/default/validatorview.html +0 -0
- data/js/controls/validatorview/validatorview.js +55 -0
- data/js/controls/window/js.inc +0 -0
- data/js/controls/window/themes/default/window.css +219 -0
- data/js/controls/window/themes/default/window.html +17 -0
- data/js/controls/window/themes/default/window_bg_active-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_bg_active.png +0 -0
- data/js/controls/window/themes/default/window_bg_inactive-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_bg_inactive.png +0 -0
- data/js/controls/window/themes/default/window_buttons-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_buttons.png +0 -0
- data/js/controls/window/themes/default/window_parts1-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_parts1.png +0 -0
- data/js/controls/window/themes/default/window_parts2-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_parts2.png +0 -0
- data/js/controls/window/window.js +284 -0
- data/js/core/class/class.js +317 -0
- data/js/core/class/js.inc +0 -0
- data/js/core/elem/elem.js +1376 -0
- data/js/core/elem/js.inc +0 -0
- data/js/core/event/event.js +1021 -0
- data/js/core/event/js.inc +0 -0
- data/js/core/iefix/ie_css_element.htc +5 -0
- data/js/core/iefix/ie_css_style.htc +5 -0
- data/js/core/iefix/iefix.js +359 -0
- data/js/core/iefix/js.inc +0 -0
- data/js/debugg/debugg.js +43 -0
- data/js/debugg/js.inc +0 -0
- data/js/foundation/application/application.js +209 -0
- data/js/foundation/application/js.inc +0 -0
- data/js/foundation/control/control.js +342 -0
- data/js/foundation/control/controldefaults/controldefaults.js +59 -0
- data/js/foundation/control/controldefaults/js.inc +0 -0
- data/js/foundation/control/dummyvalue/dummyvalue.js +50 -0
- data/js/foundation/control/dummyvalue/js.inc +0 -0
- data/js/foundation/control/dyncontrol/dyncontrol.js +494 -0
- data/js/foundation/control/dyncontrol/js.inc +0 -0
- data/js/foundation/control/dyncontrol/themes/default/dyncontrol.css +0 -0
- data/js/foundation/control/dyncontrol/themes/default/dyncontrol.html +0 -0
- data/js/foundation/control/eventresponder/eventresponder.js +713 -0
- data/js/foundation/control/eventresponder/js.inc +0 -0
- data/js/foundation/control/js.inc +0 -0
- data/js/foundation/control/valueresponder/js.inc +0 -0
- data/js/foundation/control/valueresponder/valueresponder.js +77 -0
- data/js/foundation/geom/point/js.inc +0 -0
- data/js/foundation/geom/point/point.js +202 -0
- data/js/foundation/geom/rect/js.inc +0 -0
- data/js/foundation/geom/rect/rect.js +610 -0
- data/js/foundation/json_renderer/js.inc +0 -0
- data/js/foundation/json_renderer/json_renderer.js +231 -0
- data/js/foundation/system/js.inc +0 -0
- data/js/foundation/system/system.js +369 -0
- data/js/foundation/thememanager/js.inc +0 -0
- data/js/foundation/thememanager/thememanager.js +387 -0
- data/js/foundation/view/js.inc +0 -0
- data/js/foundation/view/markupview/js.inc +0 -0
- data/js/foundation/view/markupview/markupview.js +113 -0
- data/js/foundation/view/morphanimation/js.inc +0 -0
- data/js/foundation/view/morphanimation/morphanimation.js +236 -0
- data/js/foundation/view/view.js +1804 -0
- data/js/foundation/view/viewdefaults/js.inc +0 -0
- data/js/foundation/view/viewdefaults/viewdefaults.js +25 -0
- data/js/views/centerview/centerview.js +45 -0
- data/js/views/centerview/js.inc +0 -0
- data/js/views/inlineview/inlineview.js +14 -0
- data/js/views/inlineview/js.inc +0 -0
- data/js/views/scrollview/js.inc +0 -0
- data/js/views/scrollview/scrollview.js +39 -0
- data/lib/conf/default.rb +220 -0
- data/lib/conf/wizard.rb +303 -0
- data/lib/daemon/daemon.rb +293 -0
- data/lib/http/broker.rb +102 -0
- data/lib/http/rackup.rb +88 -0
- data/lib/http/request.rb +69 -0
- data/lib/http/response.rb +63 -0
- data/lib/plugins/gui_plugin.rb +129 -0
- data/lib/plugins/guiparser.rb +114 -0
- data/lib/plugins/plugin.rb +652 -0
- data/lib/plugins/plugin_plugins.rb +47 -0
- data/lib/plugins/plugin_sqlite_db.rb +72 -0
- data/lib/plugins/plugin_util.rb +96 -0
- data/lib/plugins/pluginmanager.rb +517 -0
- data/lib/plugins/servlet.rb +69 -0
- data/lib/session/msg.rb +291 -0
- data/lib/session/sessionmanager.rb +491 -0
- data/lib/session/sessionstorage.rb +314 -0
- data/lib/transporter/transporter.rb +254 -0
- data/lib/util/gzstring.rb +5 -0
- data/lib/values/hvalue.rb +323 -0
- data/lib/values/valuemanager.rb +152 -0
- data/plugins/client_pkg/client_pkg.rb +186 -0
- data/plugins/client_pkg/info.yaml +25 -0
- data/plugins/client_pkg/lib/client_pkg_build.rb +569 -0
- data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
- data/plugins/client_pkg/lib/client_pkg_serve.rb +210 -0
- data/plugins/client_pkg/log/build_log +0 -0
- data/plugins/index_html/img/loading.gif +0 -0
- data/plugins/index_html/img/riassence.gif +0 -0
- data/plugins/index_html/index_html.rb +150 -0
- data/plugins/index_html/tmpl/index.html +22 -0
- data/plugins/index_html/tmpl/startup_index.html +29 -0
- data/plugins/legacy/disabled +0 -0
- data/plugins/legacy/disabled- +0 -0
- data/plugins/legacy/info.yaml +22 -0
- data/plugins/legacy/legacy.rb +15 -0
- data/plugins/main/js/riassence_ns.js +87 -0
- data/plugins/main/main.rb +234 -0
- data/plugins/main/values.yaml +8 -0
- data/plugins/ticketservices/lib/common.rb +300 -0
- data/plugins/ticketservices/lib/favicon.rb +38 -0
- data/plugins/ticketservices/lib/file.rb +58 -0
- data/plugins/ticketservices/lib/img.rb +50 -0
- data/plugins/ticketservices/lib/objblob.rb +66 -0
- data/plugins/ticketservices/lib/rsrc.rb +34 -0
- data/plugins/ticketservices/lib/upload.rb +206 -0
- data/plugins/ticketservices/ticketservices.rb +268 -0
- data/var/db/.git_include +0 -0
- data/var/log/.git_include +0 -0
- data/var/run/.git_include +0 -0
- metadata +390 -0
|
File without changes
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/* Riassence Framework
|
|
2
|
+
* Copyright 2006 Riassence Inc.
|
|
3
|
+
* http://riassence.com/
|
|
4
|
+
*
|
|
5
|
+
* You should have received a copy of the GNU General Public License along
|
|
6
|
+
* with this software package. If not, contact licensing@riassence.com
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/*** = Description
|
|
10
|
+
** Data value synchonization container object.
|
|
11
|
+
**
|
|
12
|
+
** +HValue+ is the default class to use for data syrchronization purposes.
|
|
13
|
+
** It's smart enough to tell COMM.Values (Value Manager) that it has
|
|
14
|
+
** been changed.
|
|
15
|
+
**
|
|
16
|
+
** A single HValue instance can be bound to any number of responders, the
|
|
17
|
+
** main client-side responder class is +HControl+.
|
|
18
|
+
**
|
|
19
|
+
** When you change the value in one of the instances bound to the HValue
|
|
20
|
+
** instances, all other instances get notified too and the server is also
|
|
21
|
+
** notified and can be further bound on the server side to any number of
|
|
22
|
+
** responders there too.
|
|
23
|
+
**
|
|
24
|
+
** An instance constructed with "false" (Boolean) as its id is not reported
|
|
25
|
+
** to the server. Such an instance can be used for client-side responder
|
|
26
|
+
** synchronization.
|
|
27
|
+
**
|
|
28
|
+
** Priority-wise, only the server can create a value id. If a value id is
|
|
29
|
+
** created on the client, the server won't recognize nor accept it.
|
|
30
|
+
**
|
|
31
|
+
** If a value is changed on the server, it overrides the changes on
|
|
32
|
+
** the client, so no server-client lock is needed in this model.
|
|
33
|
+
**
|
|
34
|
+
** = Instance variables:
|
|
35
|
+
** +id+:: Value Id, used by the whole value management system to identify individual values.
|
|
36
|
+
** +type+:: '[HValue]'
|
|
37
|
+
** +value+:: The container/"payload" data value itself.
|
|
38
|
+
** +views+:: A list of Components that uses this value.
|
|
39
|
+
** Used for automatic value syncronization between responders.
|
|
40
|
+
***/
|
|
41
|
+
HValue = HClass.extend({
|
|
42
|
+
|
|
43
|
+
/** = Description
|
|
44
|
+
* Constructs a value with the initial value +_value+ and the unique id +_id+.
|
|
45
|
+
*
|
|
46
|
+
* Only the server can create value id's, so use false when constructing
|
|
47
|
+
* from the client. A value with a false id is not reported to the server.
|
|
48
|
+
*
|
|
49
|
+
* = Parameters
|
|
50
|
+
* +_id+:: The source id (ideally set by server, should be unique)
|
|
51
|
+
* +_value+:: The initial data
|
|
52
|
+
*
|
|
53
|
+
**/
|
|
54
|
+
constructor: function(_id,_value){
|
|
55
|
+
this.id = _id;
|
|
56
|
+
this.value = _value;
|
|
57
|
+
this.views = [];
|
|
58
|
+
if(_id){
|
|
59
|
+
COMM.Values.add(_id,this);
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
/** Destructor method. Releases all bindings.
|
|
64
|
+
**/
|
|
65
|
+
die: function(){
|
|
66
|
+
for(var _viewNum=0;_viewNum<this.views.length;_viewNum++){
|
|
67
|
+
var _tryObj = this.views[_viewNum];
|
|
68
|
+
_tryObj.setValueObj( HDummyValue.nu() );
|
|
69
|
+
this.views.splice(_viewNum,1);
|
|
70
|
+
}
|
|
71
|
+
if(this.id){
|
|
72
|
+
COMM.Values.del(this.id);
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
|
|
76
|
+
/** = Description
|
|
77
|
+
* Replaces the data of the value.
|
|
78
|
+
*
|
|
79
|
+
* Extend this method, if you want client-side validation in the value itself.
|
|
80
|
+
*
|
|
81
|
+
* = Parameters
|
|
82
|
+
* +_value+:: The new data to replace the old data with.
|
|
83
|
+
*
|
|
84
|
+
**/
|
|
85
|
+
set: function(_value){
|
|
86
|
+
if(this.differs(_value)){
|
|
87
|
+
this.value = _value;
|
|
88
|
+
if(this.id){
|
|
89
|
+
COMM.Values.changed(this);
|
|
90
|
+
}
|
|
91
|
+
this.refresh();
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
/** Compares +_value+ with +self.value+.
|
|
96
|
+
* = Returns
|
|
97
|
+
* true or false, depending on the equality
|
|
98
|
+
**/
|
|
99
|
+
differs: function(_value){
|
|
100
|
+
return (COMM.Values.encode(_value) !== COMM.Values.encode(this.value));
|
|
101
|
+
},
|
|
102
|
+
|
|
103
|
+
/** = Description
|
|
104
|
+
* Setter for the server.
|
|
105
|
+
*
|
|
106
|
+
* Just as +self.set+, but doesn't re-notify the server about the change.
|
|
107
|
+
**/
|
|
108
|
+
s: function(_value){
|
|
109
|
+
this.value = _value;
|
|
110
|
+
this.refresh();
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
/** = Description
|
|
114
|
+
* Return the data, returns the +self.value+ instance variable
|
|
115
|
+
*
|
|
116
|
+
* Returns:
|
|
117
|
+
* The value instance variable (the data "payload")
|
|
118
|
+
**/
|
|
119
|
+
get: function(){
|
|
120
|
+
return this.value;
|
|
121
|
+
},
|
|
122
|
+
|
|
123
|
+
/** = Description
|
|
124
|
+
* Bind a responder to the value, use to attach HValues to responders derived from HControl.
|
|
125
|
+
*
|
|
126
|
+
* = Parameters
|
|
127
|
+
* +_responder+:: Any responder that is derived from HControl or any other
|
|
128
|
+
* class instance that implements HValueResponder or has
|
|
129
|
+
* compatible typing.
|
|
130
|
+
**/
|
|
131
|
+
bind: function(_responder){
|
|
132
|
+
if(_responder===undefined){
|
|
133
|
+
throw("HValueBindError: responder is undefined!");
|
|
134
|
+
}
|
|
135
|
+
if(this.views.indexOf(_responder)===-1){
|
|
136
|
+
this.views.push(_responder);
|
|
137
|
+
_responder.setValueObj( this );
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
/** = Description
|
|
142
|
+
* Release a responder bound to the HValue instance itself.
|
|
143
|
+
*
|
|
144
|
+
* = Parameters
|
|
145
|
+
* +_responder+:: Any responder that is derived from HControl or any other
|
|
146
|
+
* class instance that implements HValueResponder or has
|
|
147
|
+
* compatible typing.
|
|
148
|
+
**/
|
|
149
|
+
unbind: function(_responder){
|
|
150
|
+
for(var _viewNum=0;_viewNum<this.views.length;_viewNum++){
|
|
151
|
+
var _tryObj = this.views[_viewNum];
|
|
152
|
+
if(_tryObj===_responder){
|
|
153
|
+
this.views.splice(_viewNum,1);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
/** Alias of +self.unbind+, opposite of +bind+.
|
|
160
|
+
**/
|
|
161
|
+
release: function(_responder){
|
|
162
|
+
return this.unbind(_responder);
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
/** Calls the setValue method all responders bound to this HValue.
|
|
166
|
+
**/
|
|
167
|
+
refresh: function(){
|
|
168
|
+
for(var _viewNum=0;_viewNum<this.views.length;_viewNum++){
|
|
169
|
+
var _responder = this.views[_viewNum];
|
|
170
|
+
if(_responder.value !== this.value){
|
|
171
|
+
if(!_responder._valueIsBeingSet){
|
|
172
|
+
_responder._valueIsBeingSet=true;
|
|
173
|
+
_responder.setValue( this.value );
|
|
174
|
+
_responder._valueIsBeingSet=false;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
|
|
File without changes
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/* Riassence Framework
|
|
2
|
+
* Copyright 2006 Riassence Inc.
|
|
3
|
+
* http://riassence.com/
|
|
4
|
+
*
|
|
5
|
+
* You should have received a copy of the GNU General Public License along
|
|
6
|
+
* with this software package. If not, contact licensing@riassence.com
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/*** = Description
|
|
10
|
+
** An interface to implement for classes that are members of +HValueMatrix+.
|
|
11
|
+
**
|
|
12
|
+
** A HRadioButton is an example of an class that implements
|
|
13
|
+
** the HValueMatrixInterface.
|
|
14
|
+
***/
|
|
15
|
+
HValueMatrixInterface = {
|
|
16
|
+
|
|
17
|
+
componentBehaviour: ['view','control','matrix'],
|
|
18
|
+
|
|
19
|
+
/** = Description
|
|
20
|
+
* Standard +HControl+ constructor model.
|
|
21
|
+
* Passes parameters through to its base class's constructor,
|
|
22
|
+
* then calls +self.setValueMatrix+.
|
|
23
|
+
*
|
|
24
|
+
**/
|
|
25
|
+
constructor: function(_rect, _parent, _options) {
|
|
26
|
+
this.base(_rect, _parent, _options);
|
|
27
|
+
this.setValueMatrix();
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
/** = Description
|
|
31
|
+
* Binds itself to the parent's HValueMatrix instance.
|
|
32
|
+
*
|
|
33
|
+
* Creates a valueMatrix member into the parent of itself, if none is present yet.
|
|
34
|
+
* Sets the +self.value+ to true or false depending on the parent's valueMatrix value.
|
|
35
|
+
*
|
|
36
|
+
**/
|
|
37
|
+
setValueMatrix: function(){
|
|
38
|
+
if(this.parent['valueMatrix'] === undefined){
|
|
39
|
+
this.parent.valueMatrix = HValueMatrix.nu();
|
|
40
|
+
}
|
|
41
|
+
this.valueMatrixIndex = this.parent.valueMatrix.addControl(this);
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
/** Sets itself active using the parent's valueMatrix on the click event.
|
|
45
|
+
**/
|
|
46
|
+
click: function(){
|
|
47
|
+
if (this.parent.valueMatrix instanceof HValueMatrix) {
|
|
48
|
+
this.parent.valueMatrix.setValue( this.valueMatrixIndex );
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
/** The destructor makes sure +self+ is released from the parent's valueMatrix
|
|
53
|
+
* upon destruction.
|
|
54
|
+
**/
|
|
55
|
+
die: function(){
|
|
56
|
+
if(this['parent']){
|
|
57
|
+
if(this.parent['valueMatrix']){
|
|
58
|
+
this.parent.valueMatrix.release(this);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
this.base();
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// Alias for backwards compatibility.
|
|
66
|
+
HValueMatrixComponentExtension = HValueMatrixInterface;
|
|
67
|
+
|
|
68
|
+
/*** = Description
|
|
69
|
+
** A HValueMatrix operates a number of components that operate on boolean
|
|
70
|
+
** values, like the HRadioButton using a separate value for selecting the
|
|
71
|
+
** index of selected items.
|
|
72
|
+
***/
|
|
73
|
+
HValueMatrix = HClass.extend({
|
|
74
|
+
|
|
75
|
+
/** The constructor doesn't take parameters.
|
|
76
|
+
**/
|
|
77
|
+
constructor: function(){
|
|
78
|
+
// An array to hold member components
|
|
79
|
+
this.ctrls = [];
|
|
80
|
+
// The index of the value member chosen
|
|
81
|
+
this.value = -1;
|
|
82
|
+
this.valueObj = new HDummyValue();
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
/** Method for value interfaces, called by the HValue instance when bound.
|
|
86
|
+
**/
|
|
87
|
+
setValueObj: function(_valueObj){
|
|
88
|
+
this.valueObj = _valueObj;
|
|
89
|
+
this.setValue(_valueObj.value);
|
|
90
|
+
},
|
|
91
|
+
|
|
92
|
+
/** Method for value interfaces, the +_index+ is the
|
|
93
|
+
* index of the item to select.
|
|
94
|
+
**/
|
|
95
|
+
setValue: function(_index){
|
|
96
|
+
if( _index !== this.value ){
|
|
97
|
+
// Set the previous value object to false (reflects to its container component(s))
|
|
98
|
+
if(this.value !== -1){
|
|
99
|
+
if(this.ctrls[this.value]){
|
|
100
|
+
this.ctrls[this.value].setValue(false);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Store the new index as the currently active value
|
|
104
|
+
this.value = _index;
|
|
105
|
+
if(_index !== -1){
|
|
106
|
+
// Set the new value object to true (reflects to its container component(s))
|
|
107
|
+
if(_index<this.ctrls.length){
|
|
108
|
+
this.ctrls[_index].setValue(true);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
this.valueObj.set(_index);
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
|
|
115
|
+
/** A method for attaching a +HControl+ -derived class to the matrix.
|
|
116
|
+
**/
|
|
117
|
+
addControl: function(_ctrl) {
|
|
118
|
+
this.ctrls.push(_ctrl);
|
|
119
|
+
var _newIndex = this.ctrls.length-1;
|
|
120
|
+
if(_ctrl.value){
|
|
121
|
+
this.setValue(_newIndex);
|
|
122
|
+
}
|
|
123
|
+
return _newIndex;
|
|
124
|
+
},
|
|
125
|
+
|
|
126
|
+
/** A method for releasing a +HControl+ -derived class from the matrix.
|
|
127
|
+
**/
|
|
128
|
+
release: function(_ctrl) {
|
|
129
|
+
var _index = this.ctrls.indexOf(_ctrl);
|
|
130
|
+
if(_index !== -1){
|
|
131
|
+
this.ctrls.splice( _index, 1 );
|
|
132
|
+
if(_index === this.value){
|
|
133
|
+
this.setValue(-1);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/* Riassence Framework
|
|
2
|
+
* Copyright 2008 Riassence Inc.
|
|
3
|
+
* http://riassence.com/
|
|
4
|
+
*
|
|
5
|
+
* You should have received a copy of the GNU General Public License along
|
|
6
|
+
* with this software package. If not, contact licensing@riassence.com
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
/*** = Description
|
|
11
|
+
** Simple button component, designed to be extended for any
|
|
12
|
+
** actual functionality above regular HControl.
|
|
13
|
+
** It's limited to 24px height by the default theme, because
|
|
14
|
+
** it's much simpler to render that way.
|
|
15
|
+
***/
|
|
16
|
+
HButton = HControl.extend({
|
|
17
|
+
componentName: 'button',
|
|
18
|
+
/** = Description
|
|
19
|
+
* setStyle function for button.
|
|
20
|
+
*
|
|
21
|
+
**/
|
|
22
|
+
setStyle: function(_name, _value){
|
|
23
|
+
ELEM.setStyle(this.markupElemIds.label,_name,_value);
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
/*** = Description
|
|
29
|
+
** Simple HButton extension, operates on its value so it's useful
|
|
30
|
+
** for sending button clicks to the server and the like.
|
|
31
|
+
** For the value responder, reset the value to 0 when read to make
|
|
32
|
+
** the button clickable again.
|
|
33
|
+
**
|
|
34
|
+
** = Value states
|
|
35
|
+
** +0+:: Enabled, clickable
|
|
36
|
+
** +1+:: Disabled, clicked
|
|
37
|
+
** +Other+:: Disabled, not clickable, not clicked
|
|
38
|
+
***/
|
|
39
|
+
HClickValueButton = HButton.extend({
|
|
40
|
+
/** = Description
|
|
41
|
+
* Sets the button enabled if this.value is 0.
|
|
42
|
+
*
|
|
43
|
+
**/
|
|
44
|
+
refreshValue: function(){
|
|
45
|
+
this.setEnabled( this.value === 0 );
|
|
46
|
+
},
|
|
47
|
+
/** = Description
|
|
48
|
+
* Click method, sets the value to disabled if the button is enabled.
|
|
49
|
+
*
|
|
50
|
+
**/
|
|
51
|
+
click: function(){
|
|
52
|
+
if(this.enabled){
|
|
53
|
+
this.setValue(1);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
|
|
File without changes
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
|
|
2
|
+
.button_control,
|
|
3
|
+
.button_edge_left,
|
|
4
|
+
.button_center,
|
|
5
|
+
.button_edge_right,
|
|
6
|
+
.button_label,
|
|
7
|
+
.button_antiselect {
|
|
8
|
+
position: absolute;
|
|
9
|
+
top: 0px; height: 24px;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.button_control {
|
|
13
|
+
left: 0px; right: 0px;
|
|
14
|
+
cursor: pointer;
|
|
15
|
+
}
|
|
16
|
+
.disabled .button_control {
|
|
17
|
+
cursor: default;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.button_edge_left,
|
|
21
|
+
.button_center,
|
|
22
|
+
.button_edge_right {
|
|
23
|
+
background-repeat: repeat-x;
|
|
24
|
+
background-image: #{this.getCssFilePath('button_parts1.png')};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.button_edge_left {
|
|
28
|
+
left: 0px; width: 24px;
|
|
29
|
+
background-position: 0px 0px;
|
|
30
|
+
}
|
|
31
|
+
.disabled > .button_control > .button_edge_left {
|
|
32
|
+
background-position: 0px -144px;
|
|
33
|
+
}
|
|
34
|
+
.enabled > .button_control:hover > .button_edge_left {
|
|
35
|
+
background-position: 0px -48px;
|
|
36
|
+
}
|
|
37
|
+
.enabled > .button_control:active > .button_edge_left {
|
|
38
|
+
background-position: 0px -96px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.button_edge_right {
|
|
42
|
+
right: 0px; width: 24px;
|
|
43
|
+
background-position: -24px 0px;
|
|
44
|
+
}
|
|
45
|
+
.disabled > .button_control > .button_edge_right {
|
|
46
|
+
background-position: -24px -144px;
|
|
47
|
+
}
|
|
48
|
+
.enabled > .button_control:hover > .button_edge_right {
|
|
49
|
+
background-position: -24px -48px;
|
|
50
|
+
}
|
|
51
|
+
.enabled > .button_control:active > .button_edge_right {
|
|
52
|
+
background-position: -24px -96px;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.button_center {
|
|
56
|
+
left: 24px; right: 24px;
|
|
57
|
+
background-position: 0px -24px;
|
|
58
|
+
}
|
|
59
|
+
.disabled > .button_control > .button_center {
|
|
60
|
+
background-position: 0px -168px;
|
|
61
|
+
}
|
|
62
|
+
.enabled > .button_control:hover > .button_center {
|
|
63
|
+
background-position: 0px -72px;
|
|
64
|
+
}
|
|
65
|
+
.enabled > .button_control:active > .button_center {
|
|
66
|
+
background-position: 0px -120px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.button_label {
|
|
70
|
+
left: 6px; right: 6px; top: 2px;
|
|
71
|
+
height: 20px; line-height: 21px;
|
|
72
|
+
text-align: center; vertical-align: middle;
|
|
73
|
+
font-family: Arial, sans-serif;
|
|
74
|
+
font-size: 12px; font-weight: bold;
|
|
75
|
+
color: #333;
|
|
76
|
+
}
|
|
77
|
+
.disabled > .button_control > .button_label {
|
|
78
|
+
color: #999;
|
|
79
|
+
}
|
|
80
|
+
.enabled > .button_control:hover > .button_label {
|
|
81
|
+
color: #000;
|
|
82
|
+
}
|
|
83
|
+
.enabled > .button_control:active > .button_label {
|
|
84
|
+
color: #000;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.button_antiselect {
|
|
88
|
+
left: 0px; right: 0px;
|
|
89
|
+
}
|