rsence-pre 2.1.0.1.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/.yardopts +10 -0
- data/INSTALL.rdoc +330 -0
- data/LICENSE.txt +622 -0
- data/README.rdoc +98 -0
- data/VERSION +1 -0
- data/bin/rsence +25 -0
- data/bin/rsence-pre +25 -0
- data/conf/default_conf.yaml +346 -0
- data/conf/default_strings.yaml +76 -0
- data/conf/rsence_command_strings.yaml +444 -0
- data/docs/ExampleGuiPlugin.rdoc +193 -0
- data/docs/JavascriptBundles.rdoc +0 -0
- data/docs/PluginBundleInfo.rdoc +173 -0
- data/docs/PluginBundles.rdoc +96 -0
- data/docs/Values.rdoc +163 -0
- data/js/comm/autosync/autosync.js +17 -0
- data/js/comm/autosync/js.inc +0 -0
- data/js/comm/comm.js +203 -0
- data/js/comm/js.inc +0 -0
- data/js/comm/jsloader/js.inc +0 -0
- data/js/comm/jsloader/jsloader.js +112 -0
- data/js/comm/queue/js.inc +0 -0
- data/js/comm/queue/queue.js +184 -0
- data/js/comm/session/js.inc +0 -0
- data/js/comm/session/session.js +52 -0
- data/js/comm/sessionwatcher/js.inc +0 -0
- data/js/comm/sessionwatcher/sessionwatcher.js +44 -0
- data/js/comm/transporter/js.inc +0 -0
- data/js/comm/transporter/transporter.js +261 -0
- data/js/comm/urlresponder/js.inc +0 -0
- data/js/comm/urlresponder/urlresponder.js +149 -0
- data/js/comm/values/js.inc +0 -0
- data/js/comm/values/values.js +433 -0
- data/js/controls/button/button.js +72 -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 +49 -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/dialogs/alert_sheet/alert_sheet.js +63 -0
- data/js/controls/dialogs/alert_sheet/js.inc +0 -0
- data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +37 -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 +84 -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 +109 -0
- data/js/controls/imageview/js.inc +0 -0
- data/js/controls/imageview/themes/default/blank.gif +0 -0
- data/js/controls/passwordcontrol/js.inc +0 -0
- data/js/controls/passwordcontrol/passwordcontrol.js +23 -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 +40 -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 +44 -0
- data/js/controls/radiobutton/js.inc +0 -0
- data/js/controls/radiobutton/radiobutton.js +43 -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 +357 -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 +41 -0
- data/js/controls/stepper/js.inc +0 -0
- data/js/controls/stepper/stepper.js +213 -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 +280 -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 +24 -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 +374 -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 +154 -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 +62 -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 +286 -0
- data/js/core/class/class.js +318 -0
- data/js/core/class/js.inc +0 -0
- data/js/core/elem/elem.js +1383 -0
- data/js/core/elem/js.inc +0 -0
- data/js/core/event/event.js +153 -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/core/rsence_ns/js.inc +0 -0
- data/js/core/rsence_ns/rsence_ns.js +21 -0
- data/js/datetime/calendar/calendar.js +198 -0
- data/js/datetime/calendar/js.inc +0 -0
- data/js/datetime/calendar/themes/default/calendar.css +108 -0
- data/js/datetime/calendar/themes/default/calendar.html +9 -0
- data/js/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
- data/js/datetime/calendar/themes/default/calendar_arrows.png +0 -0
- data/js/datetime/datetimevalue/datetimevalue.js +247 -0
- data/js/datetime/datetimevalue/js.inc +0 -0
- data/js/datetime/timesheet/js.inc +0 -0
- data/js/datetime/timesheet/themes/default/timesheet.css +30 -0
- data/js/datetime/timesheet/themes/default/timesheet.html +2 -0
- data/js/datetime/timesheet/timesheet.js +183 -0
- data/js/datetime/timesheet_item/js.inc +0 -0
- data/js/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
- data/js/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
- data/js/datetime/timesheet_item/timesheet_item.js +248 -0
- data/js/datetime/timesheet_item_edit/js.inc +0 -0
- data/js/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
- data/js/foundation/application/application.js +208 -0
- data/js/foundation/application/js.inc +0 -0
- data/js/foundation/control/control.js +339 -0
- data/js/foundation/control/controldefaults/controldefaults.js +56 -0
- data/js/foundation/control/controldefaults/js.inc +0 -0
- data/js/foundation/control/dummyvalue/dummyvalue.js +51 -0
- data/js/foundation/control/dummyvalue/js.inc +0 -0
- data/js/foundation/control/dyncontrol/dyncontrol.js +500 -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 +750 -0
- data/js/foundation/control/eventresponder/js.inc +0 -0
- data/js/foundation/control/js.inc +0 -0
- data/js/foundation/control/valuematrix/js.inc +0 -0
- data/js/foundation/control/valuematrix/valuematrix.js +135 -0
- data/js/foundation/control/valueresponder/js.inc +0 -0
- data/js/foundation/control/valueresponder/valueresponder.js +79 -0
- data/js/foundation/eventmanager/eventmanager.js +991 -0
- data/js/foundation/eventmanager/js.inc +0 -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 +651 -0
- data/js/foundation/json_renderer/js.inc +0 -0
- data/js/foundation/json_renderer/json_renderer.js +246 -0
- data/js/foundation/system/js.inc +0 -0
- data/js/foundation/system/system.js +381 -0
- data/js/foundation/thememanager/js.inc +0 -0
- data/js/foundation/thememanager/thememanager.js +393 -0
- data/js/foundation/value/js.inc +0 -0
- data/js/foundation/value/value.js +183 -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 +114 -0
- data/js/foundation/view/morphanimation/js.inc +0 -0
- data/js/foundation/view/morphanimation/morphanimation.js +237 -0
- data/js/foundation/view/view.js +1812 -0
- data/js/foundation/view/viewdefaults/js.inc +0 -0
- data/js/foundation/view/viewdefaults/viewdefaults.js +26 -0
- data/js/lists/checkboxlist/checkboxlist.js +171 -0
- data/js/lists/checkboxlist/js.inc +0 -0
- data/js/lists/listitems/js.inc +0 -0
- data/js/lists/listitems/listitems.js +88 -0
- data/js/lists/propertylist/js.inc +0 -0
- data/js/lists/propertylist/propertylist.js +326 -0
- data/js/lists/radiobuttonlist/js.inc +0 -0
- data/js/lists/radiobuttonlist/radiobuttonlist.js +116 -0
- data/js/util/reloadapp/js.inc +0 -0
- data/js/util/reloadapp/reloadapp.js +152 -0
- data/js/util/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
- data/js/util/reloadapp/themes/default/reloadapp_warning.png +0 -0
- data/js/util/sha/js.inc +0 -0
- data/js/util/sha/sha.js +426 -0
- data/js/views/centerview/centerview.js +75 -0
- data/js/views/centerview/js.inc +0 -0
- data/js/views/inlineview/inlineview.js +15 -0
- data/js/views/inlineview/js.inc +0 -0
- data/js/views/scrollview/js.inc +0 -0
- data/js/views/scrollview/scrollview.js +40 -0
- data/lib/conf/argv.rb +850 -0
- data/lib/conf/default.rb +219 -0
- data/lib/daemon/daemon.rb +387 -0
- data/lib/daemon/sigcomm.rb +64 -0
- data/lib/http/broker.rb +150 -0
- data/lib/http/rackup.rb +91 -0
- data/lib/http/request.rb +66 -0
- data/lib/http/response.rb +65 -0
- data/lib/plugins/dependencies.rb +285 -0
- data/lib/plugins/gui_plugin.rb +160 -0
- data/lib/plugins/guiparser.rb +123 -0
- data/lib/plugins/plugin.rb +438 -0
- data/lib/plugins/plugin_base.rb +162 -0
- data/lib/plugins/plugin_plugins.rb +81 -0
- data/lib/plugins/plugin_sqlite_db.rb +98 -0
- data/lib/plugins/pluginmanager.rb +635 -0
- data/lib/plugins/plugins.rb +169 -0
- data/lib/plugins/servlet.rb +108 -0
- data/lib/rsence.rb +32 -0
- data/lib/session/msg.rb +327 -0
- data/lib/session/sessionmanager.rb +522 -0
- data/lib/session/sessionstorage.rb +340 -0
- data/lib/transporter/transporter.rb +263 -0
- data/lib/util/gzstring.rb +9 -0
- data/lib/util/ruby19_fixes.rb +18 -0
- data/lib/values/hvalue.rb +378 -0
- data/lib/values/valuemanager.rb +172 -0
- data/plugins/client_pkg/client_pkg.rb +157 -0
- data/plugins/client_pkg/info.yaml +25 -0
- data/plugins/client_pkg/lib/client_pkg_build.rb +561 -0
- data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
- data/plugins/client_pkg/lib/client_pkg_serve.rb +218 -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 +120 -0
- data/plugins/index_html/info.yaml +18 -0
- data/plugins/index_html/tmpl/index.html +15 -0
- data/plugins/main/info.yaml +18 -0
- data/plugins/main/js/main.js +84 -0
- data/plugins/main/main.rb +255 -0
- data/plugins/main/values.yaml +8 -0
- data/plugins/ticket/info.yaml +21 -0
- data/plugins/ticket/lib/common.rb +392 -0
- data/plugins/ticket/lib/favicon.rb +39 -0
- data/plugins/ticket/lib/file.rb +58 -0
- data/plugins/ticket/lib/img.rb +50 -0
- data/plugins/ticket/lib/objblob.rb +66 -0
- data/plugins/ticket/lib/rsrc.rb +34 -0
- data/plugins/ticket/lib/upload.rb +236 -0
- data/plugins/ticket/ticket.rb +333 -0
- data/setup/welcome/gui/welcome.yaml +92 -0
- data/setup/welcome/info.yaml +13 -0
- data/setup/welcome/text/welcome.html +9 -0
- data/setup/welcome/values.yaml +9 -0
- data/setup/welcome/welcome.rb +54 -0
- metadata +407 -0
@@ -0,0 +1,237 @@
|
|
1
|
+
/* RSence
|
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
|
+
** HMorphAnimation defines morphing animation.
|
11
|
+
**
|
12
|
+
** HMorphAnimation is implemented by HView as an interface.
|
13
|
+
** Its methods define the functionality to zoom from the current geometry to a
|
14
|
+
** target geometry with animated intervals.
|
15
|
+
***/
|
16
|
+
var//RSence.Foundation
|
17
|
+
HMorphAnimation = HClass.extend({
|
18
|
+
|
19
|
+
/** = Description
|
20
|
+
* Moves the view smoothly into another location and/or size. The
|
21
|
+
* onAnimationStart event on the view gets called when the animation starts.
|
22
|
+
*
|
23
|
+
* = Parameters:
|
24
|
+
* +_obj+:: An instance of <HPoint> or <HRect>, depending on the desired
|
25
|
+
* animation result. When a point is passed, the view is moved in
|
26
|
+
* that position. When a rect is passed, the view can also be resized
|
27
|
+
* with or without moving to different coordinates.
|
28
|
+
*
|
29
|
+
* +_duration+:: _optional_ The duration of the animation in milliseconds. The
|
30
|
+
* default duration is 500 ms.
|
31
|
+
*
|
32
|
+
* +_fps+:: _optional_ The frame rate for the animation. The default fps is 50.
|
33
|
+
*
|
34
|
+
* = Returns:
|
35
|
+
* +self+
|
36
|
+
*
|
37
|
+
* = Usage:
|
38
|
+
* HView.extend({
|
39
|
+
* onAnimationEnd: function(){
|
40
|
+
* this.die();
|
41
|
+
* }
|
42
|
+
* }).nu(
|
43
|
+
* [ 0, 0, 300, 300 ],
|
44
|
+
* HApplication.nu()
|
45
|
+
* ).setStyle(
|
46
|
+
* 'background-color', 'red'
|
47
|
+
* ).animateTo(
|
48
|
+
* HRect.nu( 300, 300, 500, 500 )
|
49
|
+
* );
|
50
|
+
*
|
51
|
+
**/
|
52
|
+
animateTo: function(_obj, _duration, _fps) {
|
53
|
+
if(!this.drawn){
|
54
|
+
return this;
|
55
|
+
}
|
56
|
+
// Redirect the method call to _animateTo(HRect).
|
57
|
+
if(_obj instanceof HPoint) {
|
58
|
+
var _rect = new HRect(_obj, _obj);
|
59
|
+
_rect.setSize(this.rect.width, this.rect.height);
|
60
|
+
this._animateTo(_rect, _duration);
|
61
|
+
}
|
62
|
+
else if(_obj instanceof HRect) {
|
63
|
+
this._animateTo(_obj, _duration);
|
64
|
+
}
|
65
|
+
else {
|
66
|
+
throw "Wrong argument type.";
|
67
|
+
}
|
68
|
+
return this;
|
69
|
+
},
|
70
|
+
|
71
|
+
|
72
|
+
/** = Description
|
73
|
+
* Stops the current animation for this view. If the view is not being
|
74
|
+
* animated, this method has no effect. The onAnimationEnd event on the view
|
75
|
+
* gets called when the animation finishes (reaches the end position/size), but
|
76
|
+
* onAnimationCancel gets called when this method is called while the animation
|
77
|
+
* is still in action.
|
78
|
+
*
|
79
|
+
*/
|
80
|
+
stopAnimation: function() {
|
81
|
+
if (this._animateInterval) {
|
82
|
+
// Stop the animation interval only if it has been set.
|
83
|
+
window.clearInterval(this._animateInterval);
|
84
|
+
this._animateInterval = null;
|
85
|
+
|
86
|
+
// Update the rect after the new position and size have been reached.
|
87
|
+
var _left = parseInt(this.style('left'), 10),
|
88
|
+
_top = parseInt(this.style('top'), 10),
|
89
|
+
_width = parseInt(this.style('width'), 10),
|
90
|
+
_height = parseInt(this.style('height'), 10);
|
91
|
+
this.rect.set(_left, _top, _left + _width, _top + _height);
|
92
|
+
this.drawRect();
|
93
|
+
|
94
|
+
if (this._animationDone) {
|
95
|
+
this.onAnimationEnd();
|
96
|
+
}
|
97
|
+
else {
|
98
|
+
this.onAnimationCancel();
|
99
|
+
}
|
100
|
+
|
101
|
+
}
|
102
|
+
return this;
|
103
|
+
},
|
104
|
+
|
105
|
+
|
106
|
+
// --Private method.++
|
107
|
+
// --Starts the animation with the target _rect.++
|
108
|
+
_animateTo: function(_rect, _duration, _fps) {
|
109
|
+
|
110
|
+
if (null === _duration || undefined === _duration) {
|
111
|
+
_duration = 500; // default duration is half second
|
112
|
+
}
|
113
|
+
if (null === _fps || undefined === _fps || _fps < 1) {
|
114
|
+
_fps = 50; // default fps
|
115
|
+
}
|
116
|
+
|
117
|
+
if (!this._animateInterval) {
|
118
|
+
|
119
|
+
this._animationDone = false;
|
120
|
+
this.onAnimationStart();
|
121
|
+
|
122
|
+
var _startTime = new Date().getTime();
|
123
|
+
|
124
|
+
var _that = this;
|
125
|
+
this._animateInterval = window.setInterval(
|
126
|
+
function() {
|
127
|
+
if(!_that){
|
128
|
+
return;
|
129
|
+
}
|
130
|
+
_that._animateStep({
|
131
|
+
startTime: _startTime,
|
132
|
+
duration: _duration,
|
133
|
+
// Linear transition effect.
|
134
|
+
transition: function(t, b, c, d) { return c * t / d + b; },
|
135
|
+
props: [{
|
136
|
+
prop: 'left',
|
137
|
+
from: _that.rect.left,
|
138
|
+
to: _rect.left,
|
139
|
+
unit: 'px'
|
140
|
+
},{
|
141
|
+
prop: 'top',
|
142
|
+
from: _that.rect.top,
|
143
|
+
to: _rect.top,
|
144
|
+
unit: 'px'
|
145
|
+
},{
|
146
|
+
prop: 'width',
|
147
|
+
from: _that.rect.width,
|
148
|
+
to: _rect.width,
|
149
|
+
unit: 'px'
|
150
|
+
},{
|
151
|
+
prop: 'height',
|
152
|
+
from: _that.rect.height,
|
153
|
+
to: _rect.height,
|
154
|
+
unit: 'px'
|
155
|
+
}]
|
156
|
+
});
|
157
|
+
}, Math.round(1000 / _fps)
|
158
|
+
);
|
159
|
+
}
|
160
|
+
return this;
|
161
|
+
},
|
162
|
+
|
163
|
+
|
164
|
+
// --Private method.++
|
165
|
+
// --Moves the view for one step. This gets called repeatedly when the animation++
|
166
|
+
// --is happening.++
|
167
|
+
_animateStep: function(_obj) {
|
168
|
+
|
169
|
+
var _time = new Date().getTime(), i;
|
170
|
+
if (_time < _obj.startTime + _obj.duration) {
|
171
|
+
var _cTime = _time - _obj.startTime;
|
172
|
+
|
173
|
+
// Handle all the defined properties.
|
174
|
+
for (i = 0; i < _obj.props.length; i++) {
|
175
|
+
var _from = _obj.props[i].from;
|
176
|
+
var _to = _obj.props[i].to;
|
177
|
+
|
178
|
+
if (_from !== _to) {
|
179
|
+
// The value of the property at this time.
|
180
|
+
var _propNow = _obj.transition(_cTime, _from, (_to - _from),
|
181
|
+
_obj.duration);
|
182
|
+
ELEM.setStyle(this.elemId,_obj.props[i].prop, _propNow + _obj.props[i].unit);
|
183
|
+
}
|
184
|
+
}
|
185
|
+
|
186
|
+
} else {
|
187
|
+
// Animation is done, clear the interval and finalize the animation.
|
188
|
+
for (i = 0; i < _obj.props.length; i++) {
|
189
|
+
ELEM.setStyle(this.elemId,_obj.props[i].prop,
|
190
|
+
_obj.props[i].to + _obj.props[i].unit);
|
191
|
+
}
|
192
|
+
this._animationDone = true;
|
193
|
+
this.stopAnimation();
|
194
|
+
}
|
195
|
+
return this;
|
196
|
+
},
|
197
|
+
|
198
|
+
/** = Description
|
199
|
+
* Extend the onAnimationStart method, if you want to do something special
|
200
|
+
* when this view starts animating.
|
201
|
+
*
|
202
|
+
* = Usage:
|
203
|
+
* HView.extend({
|
204
|
+
* onAnimationStart: function() {
|
205
|
+
* this.setStyle('background-color','green')
|
206
|
+
* },
|
207
|
+
* onAnimationEnd: function() {
|
208
|
+
* this.setStyle('background-color','grey')}
|
209
|
+
* }).nu(
|
210
|
+
* [0,0,300,300],
|
211
|
+
* HApplication.nu()
|
212
|
+
* ).setStyle(
|
213
|
+
* 'background-color','blue'
|
214
|
+
* ).animateTo(
|
215
|
+
* HRect.nu(
|
216
|
+
* 300,300,700,700
|
217
|
+
* )
|
218
|
+
* );
|
219
|
+
*
|
220
|
+
**/
|
221
|
+
onAnimationStart: function() {
|
222
|
+
|
223
|
+
},
|
224
|
+
|
225
|
+
/** Extend the onAnimationEnd method, if you want to do something special
|
226
|
+
* when an animation on this view is finished.
|
227
|
+
**/
|
228
|
+
onAnimationEnd: function() {
|
229
|
+
|
230
|
+
},
|
231
|
+
|
232
|
+
/** Extend this method if functionality is desired upon cancellation of animation.
|
233
|
+
**/
|
234
|
+
onAnimationCancel: function() {
|
235
|
+
|
236
|
+
}
|
237
|
+
});
|