riojs 0.0.0

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.
Files changed (270) hide show
  1. data/LICENSE +20 -0
  2. data/README.rdoc +24 -0
  3. data/VERSION +1 -0
  4. data/bin/rio +5 -0
  5. data/generators/rio_app/USAGE +19 -0
  6. data/generators/rio_app/rio_app_generator.rb +40 -0
  7. data/generators/rio_app/templates/app.build +10 -0
  8. data/generators/rio_app/templates/app.css +0 -0
  9. data/generators/rio_app/templates/app.js +20 -0
  10. data/generators/rio_app/templates/app_view.html.erb +19 -0
  11. data/generators/rio_app/templates/fixture.js +4 -0
  12. data/generators/rio_app/templates/rio.html.erb +18 -0
  13. data/generators/rio_app/templates/rio_controller.rb +2 -0
  14. data/generators/rio_app/templates/spec.js +7 -0
  15. data/generators/rio_component/USAGE +13 -0
  16. data/generators/rio_component/rio_component_generator.rb +16 -0
  17. data/generators/rio_component/templates/component.css +0 -0
  18. data/generators/rio_component/templates/component.js +11 -0
  19. data/generators/rio_component/templates/fixture.js +3 -0
  20. data/generators/rio_component/templates/spec.js +6 -0
  21. data/generators/rio_model/USAGE +12 -0
  22. data/generators/rio_model/rio_model_generator.rb +21 -0
  23. data/generators/rio_model/templates/fixture.js +3 -0
  24. data/generators/rio_model/templates/model.js +9 -0
  25. data/generators/rio_model/templates/spec.js +6 -0
  26. data/generators/rio_page/USAGE +14 -0
  27. data/generators/rio_page/rio_page_generator.rb +16 -0
  28. data/generators/rio_page/templates/fixture.js +3 -0
  29. data/generators/rio_page/templates/page.css +12 -0
  30. data/generators/rio_page/templates/page.js +12 -0
  31. data/generators/rio_page/templates/page.jst +64 -0
  32. data/generators/rio_page/templates/spec.js +6 -0
  33. data/generators/rio_resource/USAGE +20 -0
  34. data/generators/rio_resource/rio_resource_generator.rb +10 -0
  35. data/generators/rio_resource/templates/controller.rb +3 -0
  36. data/init.rb +4 -0
  37. data/install/config/juggernaut_hosts.yml +18 -0
  38. data/install/lib/tasks/rio.rake +1 -0
  39. data/install/script/rio_server +37 -0
  40. data/lib/rio/autospec.rb +86 -0
  41. data/lib/rio/install.rb +90 -0
  42. data/lib/rio/juggernaut.rb +212 -0
  43. data/lib/rio/path.rb +3 -0
  44. data/lib/rio/rio_compressor.rb +219 -0
  45. data/lib/rio/rio_file_controller.rb +16 -0
  46. data/lib/rio/rio_on_rails.rb +586 -0
  47. data/lib/rio/rio_proxy_controller.rb +60 -0
  48. data/lib/rio/rio_push_controller.rb +48 -0
  49. data/lib/rio/rio_routes.rb +24 -0
  50. data/lib/rio/rio_spec_controller.rb +70 -0
  51. data/lib/riojs.rb +14 -0
  52. data/lib/tasks/rio.rb +63 -0
  53. data/public/images/background-chiffon.png +0 -0
  54. data/public/images/button-gradient-overlay-down.png +0 -0
  55. data/public/images/button-gradient-overlay.png +0 -0
  56. data/public/images/icons/add.png +0 -0
  57. data/public/images/icons/error-big.png +0 -0
  58. data/public/images/icons/warning-big.png +0 -0
  59. data/public/images/rio-logo-big.png +0 -0
  60. data/public/images/rio-logo.png +0 -0
  61. data/public/images/splitter-handle-horizontal.png +0 -0
  62. data/public/images/splitter-handle-vertical.png +0 -0
  63. data/public/images/tab-bar-gradient-overlay.png +0 -0
  64. data/public/images/title-gradient-overlay.png +0 -0
  65. data/public/images/trash.gif +0 -0
  66. data/public/javascripts/components/accordion.js +144 -0
  67. data/public/javascripts/components/alert_box.js +59 -0
  68. data/public/javascripts/components/base.js +47 -0
  69. data/public/javascripts/components/box.js +63 -0
  70. data/public/javascripts/components/button.js +98 -0
  71. data/public/javascripts/components/checkbox.js +44 -0
  72. data/public/javascripts/components/container.js +265 -0
  73. data/public/javascripts/components/grid_view.js +107 -0
  74. data/public/javascripts/components/image.js +19 -0
  75. data/public/javascripts/components/input.js +171 -0
  76. data/public/javascripts/components/label.js +15 -0
  77. data/public/javascripts/components/lightbox.js +160 -0
  78. data/public/javascripts/components/link.js +43 -0
  79. data/public/javascripts/components/list_item.js +44 -0
  80. data/public/javascripts/components/list_view.js +192 -0
  81. data/public/javascripts/components/marquee.js +131 -0
  82. data/public/javascripts/components/menu.js +89 -0
  83. data/public/javascripts/components/notification.js +75 -0
  84. data/public/javascripts/components/overlay.js +134 -0
  85. data/public/javascripts/components/panel.js +146 -0
  86. data/public/javascripts/components/radio.js +46 -0
  87. data/public/javascripts/components/splitter.js +65 -0
  88. data/public/javascripts/components/tab_bar.js +64 -0
  89. data/public/javascripts/components/tab_panel.js +57 -0
  90. data/public/javascripts/components/textarea.js +223 -0
  91. data/public/javascripts/components/toggle_button.js +22 -0
  92. data/public/javascripts/components/tooltip.js +80 -0
  93. data/public/javascripts/lib/application.js +482 -0
  94. data/public/javascripts/lib/attr.js +760 -0
  95. data/public/javascripts/lib/benchmark.js +235 -0
  96. data/public/javascripts/lib/blank.html +39 -0
  97. data/public/javascripts/lib/boot.js +300 -0
  98. data/public/javascripts/lib/clipboard.js +96 -0
  99. data/public/javascripts/lib/collection_entity.js +46 -0
  100. data/public/javascripts/lib/component.js +129 -0
  101. data/public/javascripts/lib/console.js +75 -0
  102. data/public/javascripts/lib/console/apps/console.build +43 -0
  103. data/public/javascripts/lib/console/apps/console.js +28 -0
  104. data/public/javascripts/lib/console/blank.html +39 -0
  105. data/public/javascripts/lib/console/components/benchmark.js +196 -0
  106. data/public/javascripts/lib/console/components/console.js +352 -0
  107. data/public/javascripts/lib/console/components/dependencies_list.js +17 -0
  108. data/public/javascripts/lib/console/components/docs.js +66 -0
  109. data/public/javascripts/lib/console/components/playground.js +30 -0
  110. data/public/javascripts/lib/console/console.html +27 -0
  111. data/public/javascripts/lib/console/console_commands.js +287 -0
  112. data/public/javascripts/lib/console/console_commands.js.rej +21 -0
  113. data/public/javascripts/lib/console/console_mixin.js +22 -0
  114. data/public/javascripts/lib/console/docs/files.html +579 -0
  115. data/public/javascripts/lib/console/docs/index.html +323 -0
  116. data/public/javascripts/lib/console/docs/symbols/Object.html +291 -0
  117. data/public/javascripts/lib/console/docs/symbols/_global_.html +413 -0
  118. data/public/javascripts/lib/console/docs/symbols/rio.AIM.html +490 -0
  119. data/public/javascripts/lib/console/docs/symbols/rio.Application.html +841 -0
  120. data/public/javascripts/lib/console/docs/symbols/rio.Attr.html +1075 -0
  121. data/public/javascripts/lib/console/docs/symbols/rio.Binding.html +272 -0
  122. data/public/javascripts/lib/console/docs/symbols/rio.Component.html +419 -0
  123. data/public/javascripts/lib/console/docs/symbols/rio.Cookie.html +543 -0
  124. data/public/javascripts/lib/console/docs/symbols/rio.DelayedTask#initialize.html +270 -0
  125. data/public/javascripts/lib/console/docs/symbols/rio.DelayedTask.html +391 -0
  126. data/public/javascripts/lib/console/docs/symbols/rio.JsTemplate.html +271 -0
  127. data/public/javascripts/lib/console/docs/symbols/rio.Juggernaut.html +329 -0
  128. data/public/javascripts/lib/console/docs/symbols/rio.Model.html +822 -0
  129. data/public/javascripts/lib/console/docs/symbols/rio.Page.html +383 -0
  130. data/public/javascripts/lib/console/docs/symbols/rio.Template.html +328 -0
  131. data/public/javascripts/lib/console/docs/symbols/rio.Utils.html +617 -0
  132. data/public/javascripts/lib/console/docs/symbols/rio.html +506 -0
  133. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_components_base.js.html +54 -0
  134. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_application.js.html +490 -0
  135. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_attr.js.html +768 -0
  136. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_boot.js.html +308 -0
  137. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_clipboard.js.html +103 -0
  138. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_collection_entity.js.html +53 -0
  139. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_component.js.html +137 -0
  140. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_cookie.js.html +81 -0
  141. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_delayed_task.js.html +68 -0
  142. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_file.js.html +80 -0
  143. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_flash_detect.js.html +129 -0
  144. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_form.js.html +95 -0
  145. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_id.js.html +50 -0
  146. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_inflector.js.html +167 -0
  147. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_js_template.js.html +283 -0
  148. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_juggernaut.js.html +303 -0
  149. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_key_map.js.html +68 -0
  150. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_layout_manager.js.html +175 -0
  151. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_log.js.html +17 -0
  152. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_model.js.html +1074 -0
  153. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_page.js.html +246 -0
  154. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_parameters.js.html +66 -0
  155. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_protohack.js.html +305 -0
  156. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_push.js.html +12 -0
  157. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_rsh.js.html +659 -0
  158. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_swfobject.js.html +12 -0
  159. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_tag.js.html +60 -0
  160. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_template.js.html +64 -0
  161. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_theme.js.html +105 -0
  162. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_undo.js.html +142 -0
  163. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_utils.js.html +87 -0
  164. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_yaml.js.html +88 -0
  165. data/public/javascripts/lib/console/file-small.png +0 -0
  166. data/public/javascripts/lib/console/green-circle.png +0 -0
  167. data/public/javascripts/lib/console/loading.gif +0 -0
  168. data/public/javascripts/lib/console/pages/console_page.js +149 -0
  169. data/public/javascripts/lib/console/pages/console_page.jst +27 -0
  170. data/public/javascripts/lib/console/red-circle.png +0 -0
  171. data/public/javascripts/lib/cookie.js +74 -0
  172. data/public/javascripts/lib/delayed_task.js +61 -0
  173. data/public/javascripts/lib/dependencies.js +76 -0
  174. data/public/javascripts/lib/environment.js +30 -0
  175. data/public/javascripts/lib/event.simulate.js +137 -0
  176. data/public/javascripts/lib/expressinstall.swf +0 -0
  177. data/public/javascripts/lib/file.js +72 -0
  178. data/public/javascripts/lib/flash_detect.js +122 -0
  179. data/public/javascripts/lib/flashembed.min.js +16 -0
  180. data/public/javascripts/lib/form.js +88 -0
  181. data/public/javascripts/lib/id.js +43 -0
  182. data/public/javascripts/lib/inflector.js +160 -0
  183. data/public/javascripts/lib/instrumenter.js +106 -0
  184. data/public/javascripts/lib/js_template.js +275 -0
  185. data/public/javascripts/lib/jslint.js +4950 -0
  186. data/public/javascripts/lib/juggernaut.js +295 -0
  187. data/public/javascripts/lib/juggernaut.swf +0 -0
  188. data/public/javascripts/lib/key_map.js +60 -0
  189. data/public/javascripts/lib/layout_manager.js +167 -0
  190. data/public/javascripts/lib/model.js +1067 -0
  191. data/public/javascripts/lib/page.js +238 -0
  192. data/public/javascripts/lib/parameters.js +59 -0
  193. data/public/javascripts/lib/png_fix.js +75 -0
  194. data/public/javascripts/lib/protohack.js +297 -0
  195. data/public/javascripts/lib/push.js +5 -0
  196. data/public/javascripts/lib/rio.build +28 -0
  197. data/public/javascripts/lib/rio_development.build +5 -0
  198. data/public/javascripts/lib/rio_lint.js +66 -0
  199. data/public/javascripts/lib/rsh.js +651 -0
  200. data/public/javascripts/lib/spec.js +545 -0
  201. data/public/javascripts/lib/spec_runner.js +242 -0
  202. data/public/javascripts/lib/swfobject.js +5 -0
  203. data/public/javascripts/lib/tag.js +52 -0
  204. data/public/javascripts/lib/undo.js +134 -0
  205. data/public/javascripts/lib/utils.js +80 -0
  206. data/public/javascripts/lib/yaml.js +80 -0
  207. data/public/javascripts/pages/playground_page.js +15 -0
  208. data/public/javascripts/prototype/builder.js +146 -0
  209. data/public/javascripts/prototype/controls.js +1004 -0
  210. data/public/javascripts/prototype/dragdrop.js +1030 -0
  211. data/public/javascripts/prototype/effects.js +1137 -0
  212. data/public/javascripts/prototype/prototype.js +4320 -0
  213. data/public/javascripts/prototype/slider.js +283 -0
  214. data/public/javascripts/prototype/sound.js +67 -0
  215. data/public/javascripts/specs/components/box_spec.js +6 -0
  216. data/public/javascripts/specs/components/checkbox_spec.js +26 -0
  217. data/public/javascripts/specs/components/container_spec.js +6 -0
  218. data/public/javascripts/specs/components/input_spec.js +71 -0
  219. data/public/javascripts/specs/components/panel_spec.js +6 -0
  220. data/public/javascripts/specs/components/radio_spec.js +40 -0
  221. data/public/javascripts/specs/fixtures/components/box.js +3 -0
  222. data/public/javascripts/specs/fixtures/components/checkbox.js +9 -0
  223. data/public/javascripts/specs/fixtures/components/container.js +3 -0
  224. data/public/javascripts/specs/fixtures/components/input.js +12 -0
  225. data/public/javascripts/specs/fixtures/components/menu.js +19 -0
  226. data/public/javascripts/specs/fixtures/components/menu_item.js +18 -0
  227. data/public/javascripts/specs/fixtures/components/radio.js +11 -0
  228. data/public/javascripts/specs/lib/application_spec.js +281 -0
  229. data/public/javascripts/specs/lib/attr_spec.js +1514 -0
  230. data/public/javascripts/specs/lib/benchmark_spec.js +361 -0
  231. data/public/javascripts/specs/lib/collection_entity_spec.js +131 -0
  232. data/public/javascripts/specs/lib/component_spec.js +86 -0
  233. data/public/javascripts/specs/lib/form_spec.js +171 -0
  234. data/public/javascripts/specs/lib/id_spec.js +21 -0
  235. data/public/javascripts/specs/lib/instrumenter_spec.js +5 -0
  236. data/public/javascripts/specs/lib/js_template_spec.js +131 -0
  237. data/public/javascripts/specs/lib/key_map_spec.js +227 -0
  238. data/public/javascripts/specs/lib/model_spec.js +2268 -0
  239. data/public/javascripts/specs/lib/parameters_spec.js +94 -0
  240. data/public/javascripts/specs/lib/spec_spec.js +943 -0
  241. data/public/javascripts/specs/lib/undo_spec.js +105 -0
  242. data/public/javascripts/specs/lib/yaml_spec.js +127 -0
  243. data/public/sounds/basso.wav +0 -0
  244. data/public/sounds/purr.wav +0 -0
  245. data/public/stylesheets/components/accordion.css +24 -0
  246. data/public/stylesheets/components/alert_box.css +35 -0
  247. data/public/stylesheets/components/box.css +0 -0
  248. data/public/stylesheets/components/button.css +39 -0
  249. data/public/stylesheets/components/checkbox.css +9 -0
  250. data/public/stylesheets/components/container.css +3 -0
  251. data/public/stylesheets/components/grid_view.css +52 -0
  252. data/public/stylesheets/components/input.css +10 -0
  253. data/public/stylesheets/components/label.css +3 -0
  254. data/public/stylesheets/components/lightbox.css +31 -0
  255. data/public/stylesheets/components/link.css +4 -0
  256. data/public/stylesheets/components/list_view.css +23 -0
  257. data/public/stylesheets/components/marquee.css +29 -0
  258. data/public/stylesheets/components/menu.css +34 -0
  259. data/public/stylesheets/components/notification.css +52 -0
  260. data/public/stylesheets/components/overlay.css +8 -0
  261. data/public/stylesheets/components/panel.css +36 -0
  262. data/public/stylesheets/components/radio.css +9 -0
  263. data/public/stylesheets/components/splitter.css +35 -0
  264. data/public/stylesheets/components/tab_bar.css +59 -0
  265. data/public/stylesheets/components/tab_panel.css +15 -0
  266. data/public/stylesheets/components/textarea.css +11 -0
  267. data/public/stylesheets/components/tooltip.css +10 -0
  268. data/public/stylesheets/console.css +151 -0
  269. data/public/stylesheets/css_reset.css +55 -0
  270. metadata +343 -0
@@ -0,0 +1,54 @@
1
+ <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
2
+ .KEYW {color: #933;}
3
+ .COMM {color: #bbb; font-style: italic;}
4
+ .NUMB {color: #393;}
5
+ .STRN {color: #393;}
6
+ .REGX {color: #339;}
7
+ .line {border-right: 1px dotted #666; color: #666; font-style: normal;}
8
+ </style></head><body><pre><span class='line'> 1</span> <span class="NAME">rio.components.Base</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Component.create</span><span class="PUNC">(</span><span class="STRN">"Base"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
9
+ <span class='line'> 2</span> </span><span class="NAME">attrReaders</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
10
+ <span class='line'> 3</span> </span><span class="PUNC">[</span><span class="STRN">"className"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
11
+ <span class='line'> 4</span> </span><span class="PUNC">[</span><span class="STRN">"seleniumId"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">]</span><span class="WHIT">
12
+ <span class='line'> 5</span> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
13
+ <span class='line'> 6</span> </span><span class="NAME">styles</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">"position"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"top"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"right"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"bottom"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"left"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"display"</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
14
+ <span class='line'> 7</span> </span><span class="NAME">methods</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
15
+ <span class='line'> 8</span> </span><span class="NAME">html</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
16
+ <span class='line'> 9</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this._html</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
17
+ <span class='line'> 10</span> </span><span class="NAME">this._html</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.buildHtml</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
18
+ <span class='line'> 11</span> </span><span class="NAME">this._html.addClassName</span><span class="PUNC">(</span><span class="NAME">this.getClassName</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
19
+ <span class='line'> 12</span>
20
+ <span class='line'> 13</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rio.environment.supportSelenium</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
21
+ <span class='line'> 14</span> </span><span class="NAME">this._html.id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getSeleniumId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
22
+ <span class='line'> 15</span> </span><span class="PUNC">}</span><span class="WHIT">
23
+ <span class='line'> 16</span>
24
+ <span class='line'> 17</span> </span><span class="NAME">this._html.applyStyle</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
25
+ <span class='line'> 18</span> </span><span class="NAME">position</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.position</span><span class="PUNC">,</span><span class="WHIT">
26
+ <span class='line'> 19</span> </span><span class="NAME">top</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.top</span><span class="PUNC">,</span><span class="WHIT">
27
+ <span class='line'> 20</span> </span><span class="NAME">right</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.right</span><span class="PUNC">,</span><span class="WHIT">
28
+ <span class='line'> 21</span> </span><span class="NAME">bottom</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.bottom</span><span class="PUNC">,</span><span class="WHIT">
29
+ <span class='line'> 22</span> </span><span class="NAME">left</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.left</span><span class="PUNC">,</span><span class="WHIT">
30
+ <span class='line'> 23</span> </span><span class="NAME">display</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.display</span><span class="WHIT">
31
+ <span class='line'> 24</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
32
+ <span class='line'> 25</span> </span><span class="PUNC">}</span><span class="WHIT">
33
+ <span class='line'> 26</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._html</span><span class="PUNC">;</span><span class="WHIT">
34
+ <span class='line'> 27</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
35
+ <span class='line'> 28</span>
36
+ <span class='line'> 29</span> </span><span class="NAME">addClassName</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">className</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
37
+ <span class='line'> 30</span> </span><span class="NAME">this.html</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">addClassName</span><span class="PUNC">(</span><span class="NAME">className</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
38
+ <span class='line'> 31</span> </span><span class="NAME">this._className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.html</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">className</span><span class="PUNC">;</span><span class="WHIT">
39
+ <span class='line'> 32</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
40
+ <span class='line'> 33</span>
41
+ <span class='line'> 34</span> </span><span class="NAME">removeClassName</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">className</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
42
+ <span class='line'> 35</span> </span><span class="NAME">this.html</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">removeClassName</span><span class="PUNC">(</span><span class="NAME">className</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
43
+ <span class='line'> 36</span> </span><span class="NAME">this._className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.html</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">className</span><span class="PUNC">;</span><span class="WHIT">
44
+ <span class='line'> 37</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
45
+ <span class='line'> 38</span>
46
+ <span class='line'> 39</span> </span><span class="NAME">show</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
47
+ <span class='line'> 40</span> </span><span class="NAME">this.setDisplay</span><span class="PUNC">(</span><span class="STRN">""</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
48
+ <span class='line'> 41</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
49
+ <span class='line'> 42</span>
50
+ <span class='line'> 43</span> </span><span class="NAME">hide</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
51
+ <span class='line'> 44</span> </span><span class="NAME">this.setDisplay</span><span class="PUNC">(</span><span class="STRN">"none"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
52
+ <span class='line'> 45</span> </span><span class="PUNC">}</span><span class="WHIT">
53
+ <span class='line'> 46</span> </span><span class="PUNC">}</span><span class="WHIT">
54
+ <span class='line'> 47</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span></pre></body></html>
@@ -0,0 +1,490 @@
1
+ <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"> <style>
2
+ .KEYW {color: #933;}
3
+ .COMM {color: #bbb; font-style: italic;}
4
+ .NUMB {color: #393;}
5
+ .STRN {color: #393;}
6
+ .REGX {color: #339;}
7
+ .line {border-right: 1px dotted #666; color: #666; font-style: normal;}
8
+ </style></head><body><pre><span class='line'> 1</span> <span class="COMM">/**
9
+ <span class='line'> 2</span> @class
10
+ <span class='line'> 3</span>
11
+ <span class='line'> 4</span> Application is used to create new rio application classes. It provides functionality for dependency management,
12
+ <span class='line'> 5</span> routing, history management and page management.
13
+ <span class='line'> 6</span>
14
+ <span class='line'> 7</span> @extends rio.Attr
15
+ <span class='line'> 8</span> */</span><span class="WHIT">
16
+ <span class='line'> 9</span> </span><span class="NAME">rio.Application</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
17
+ <span class='line'> 10</span> </span><span class="COMM">/**
18
+ <span class='line'> 11</span> Creates an instance of rio.Application.
19
+ <span class='line'> 12</span>
20
+ <span class='line'> 13</span> @param {String} name (optional) The name of this Application. Used primarily for testing reports.
21
+ <span class='line'> 14</span> @param {Object} extends (optional) An Attr class to use as a superclass.
22
+ <span class='line'> 15</span> @param {Object} args (optional) The definition of the class.
23
+ <span class='line'> 16</span> @returns a new instance of type Application
24
+ <span class='line'> 17</span> @type rio.Application
25
+ <span class='line'> 18</span> @example
26
+ <span class='line'> 19</span> rio.apps.example = rio.Application.create({
27
+ <span class='line'> 20</span> require: ["pages/example_page"],
28
+ <span class='line'> 21</span> requireCss: ["css_reset", "example"],
29
+ <span class='line'> 22</span> routes: {
30
+ <span class='line'> 23</span> "": "examplePage"
31
+ <span class='line'> 24</span> },
32
+ <span class='line'> 25</span> attrAccessors: [],
33
+ <span class='line'> 26</span> attrReaders: [],
34
+ <span class='line'> 27</span> methods: {
35
+ <span class='line'> 28</span> initialize: function(options) {
36
+ <span class='line'> 29</span> },
37
+ <span class='line'> 30</span>
38
+ <span class='line'> 31</span> examplePage: function() {
39
+ <span class='line'> 32</span> return new rio.pages.ExamplePage();
40
+ <span class='line'> 33</span> }
41
+ <span class='line'> 34</span> }
42
+ <span class='line'> 35</span> });
43
+ <span class='line'> 36</span> */</span><span class="WHIT">
44
+ <span class='line'> 37</span> </span><span class="NAME">create</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
45
+ <span class='line'> 38</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">args</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$A</span><span class="PUNC">(</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
46
+ <span class='line'> 39</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">args.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">args.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">args.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">ATTR</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
47
+ <span class='line'> 40</span> </span><span class="NAME">args</span><span class="PUNC">[</span><span class="NAME">args.size</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Object.extend</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">noExtend</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">args.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
48
+ <span class='line'> 41</span> </span><span class="PUNC">}</span><span class="WHIT">
49
+ <span class='line'> 42</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">app</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Attr.create.apply</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">args</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
50
+ <span class='line'> 43</span>
51
+ <span class='line'> 44</span> </span><span class="NAME">app.addMethods</span><span class="PUNC">(</span><span class="WHIT">
52
+ <span class='line'> 45</span> </span><span class="COMM">/**
53
+ <span class='line'> 46</span> @scope rio.Application.prototype
54
+ <span class='line'> 47</span> */</span><span class="WHIT">
55
+ <span class='line'> 48</span> </span><span class="PUNC">{</span><span class="WHIT">
56
+ <span class='line'> 49</span>
57
+ <span class='line'> 50</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
58
+ <span class='line'> 51</span> </span><span class="NAME">initHistory</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
59
+ <span class='line'> 52</span> </span><span class="NAME">dhtmlHistory.initialize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
60
+ <span class='line'> 53</span> </span><span class="NAME">dhtmlHistory.addListener</span><span class="PUNC">(</span><span class="NAME">this.applyHistoryEntry.bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
61
+ <span class='line'> 54</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
62
+ <span class='line'> 55</span>
63
+ <span class='line'> 56</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
64
+ <span class='line'> 57</span> </span><span class="NAME">applyHistoryEntry</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">location</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">historyData</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
65
+ <span class='line'> 58</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.__revertingTransientHistoryEntry</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
66
+ <span class='line'> 59</span> </span><span class="NAME">this.addHistoryEntry</span><span class="PUNC">(</span><span class="NAME">this.__revertingTransientHistoryEntry</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.__revertingTransientHistoryEntry</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
67
+ <span class='line'> 60</span> </span><span class="NAME">this.__revertingTransientHistoryEntry</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
68
+ <span class='line'> 61</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
69
+ <span class='line'> 62</span> </span><span class="NAME">this.navigateTo</span><span class="PUNC">(</span><span class="NAME">location</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
70
+ <span class='line'> 63</span> </span><span class="PUNC">}</span><span class="WHIT">
71
+ <span class='line'> 64</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
72
+ <span class='line'> 65</span>
73
+ <span class='line'> 66</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
74
+ <span class='line'> 67</span> </span><span class="NAME">addHistoryEntry</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">location</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">transient</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
75
+ <span class='line'> 68</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">historyStorage.hasKey</span><span class="PUNC">(</span><span class="NAME">this.getCurrentLocation</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">historyStorage.get</span><span class="PUNC">(</span><span class="NAME">this.getCurrentLocation</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">transient</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
76
+ <span class='line'> 69</span> </span><span class="NAME">this.__revertingTransientHistoryEntry</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">location</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">transient</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
77
+ <span class='line'> 70</span> </span><span class="NAME">history.back</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
78
+ <span class='line'> 71</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
79
+ <span class='line'> 72</span> </span><span class="NAME">dhtmlHistory.add</span><span class="PUNC">(</span><span class="NAME">location</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">transient</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">transient</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
80
+ <span class='line'> 73</span> </span><span class="PUNC">}</span><span class="WHIT">
81
+ <span class='line'> 74</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
82
+ <span class='line'> 75</span>
83
+ <span class='line'> 76</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
84
+ <span class='line'> 77</span> </span><span class="NAME">resize</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
85
+ <span class='line'> 78</span> </span><span class="NAME">this.getCurrentPage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">resize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
86
+ <span class='line'> 79</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
87
+ <span class='line'> 80</span>
88
+ <span class='line'> 81</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
89
+ <span class='line'> 82</span> </span><span class="NAME">keyPress</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
90
+ <span class='line'> 83</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">currentPage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getCurrentPage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
91
+ <span class='line'> 84</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">currentPage</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
92
+ <span class='line'> 85</span> </span><span class="NAME">this.getCurrentPage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">keyPress</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
93
+ <span class='line'> 86</span> </span><span class="PUNC">}</span><span class="WHIT">
94
+ <span class='line'> 87</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
95
+ <span class='line'> 88</span>
96
+ <span class='line'> 89</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
97
+ <span class='line'> 90</span> </span><span class="NAME">keyDown</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
98
+ <span class='line'> 91</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">keyMap</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getKeyMap</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
99
+ <span class='line'> 92</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">keyMap</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
100
+ <span class='line'> 93</span> </span><span class="NAME">keyMap.handle</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
101
+ <span class='line'> 94</span> </span><span class="PUNC">}</span><span class="WHIT">
102
+ <span class='line'> 95</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">currentPage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getCurrentPage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
103
+ <span class='line'> 96</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">currentPage</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
104
+ <span class='line'> 97</span> </span><span class="NAME">this.getCurrentPage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">_keyDown</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
105
+ <span class='line'> 98</span> </span><span class="PUNC">}</span><span class="WHIT">
106
+ <span class='line'> 99</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
107
+ <span class='line'>100</span>
108
+ <span class='line'>101</span> </span><span class="COMM">/**
109
+ <span class='line'>102</span> This method is called just before the page is unloaded. This can be triggered by
110
+ <span class='line'>103</span> following a link, closing the window, using the back button, etc.
111
+ <span class='line'>104</span>
112
+ <span class='line'>105</span> &lt;i>This method is meant to be overriden&lt;/i>
113
+ <span class='line'>106</span> */</span><span class="WHIT">
114
+ <span class='line'>107</span> </span><span class="NAME">unload</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
115
+ <span class='line'>108</span> </span><span class="COMM">// meant to be overriden</span><span class="WHIT">
116
+ <span class='line'>109</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
117
+ <span class='line'>110</span>
118
+ <span class='line'>111</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
119
+ <span class='line'>112</span> </span><span class="NAME">getKeyMap</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
120
+ <span class='line'>113</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._keyMap</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._keyMap</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
121
+ <span class='line'>114</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.keyMap</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
122
+ <span class='line'>115</span>
123
+ <span class='line'>116</span> </span><span class="NAME">this._keyMap</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.KeyMap.build</span><span class="PUNC">(</span><span class="NAME">this.keyMap</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
124
+ <span class='line'>117</span>
125
+ <span class='line'>118</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._keyMap</span><span class="PUNC">;</span><span class="WHIT">
126
+ <span class='line'>119</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
127
+ <span class='line'>120</span>
128
+ <span class='line'>121</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
129
+ <span class='line'>122</span> </span><span class="NAME">launch</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
130
+ <span class='line'>123</span> </span><span class="NAME">document.observe</span><span class="PUNC">(</span><span class="STRN">"keypress"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.keyPress.bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
131
+ <span class='line'>124</span> </span><span class="NAME">document.observe</span><span class="PUNC">(</span><span class="STRN">"keydown"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.keyDown.bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
132
+ <span class='line'>125</span> </span><span class="NAME">Event.observe</span><span class="PUNC">(</span><span class="NAME">window</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"beforeunload"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.unload.bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
133
+ <span class='line'>126</span>
134
+ <span class='line'>127</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.noRoutes</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
135
+ <span class='line'>128</span>
136
+ <span class='line'>129</span> </span><span class="NAME">this.initHistory</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
137
+ <span class='line'>130</span> </span><span class="NAME">this.navigateTo</span><span class="PUNC">(</span><span class="NAME">this.getCurrentLocation</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
138
+ <span class='line'>131</span>
139
+ <span class='line'>132</span> </span><span class="NAME">Event.observe</span><span class="PUNC">(</span><span class="NAME">window</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"resize"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">this.resize.bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
140
+ <span class='line'>133</span>
141
+ <span class='line'>134</span> </span><span class="NAME">rio.Application._afterLaunchFunctions.each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">fcn</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
142
+ <span class='line'>135</span> </span><span class="NAME">fcn</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
143
+ <span class='line'>136</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
144
+ <span class='line'>137</span> </span><span class="NAME">rio.Application._afterLaunchFunctions.clear</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
145
+ <span class='line'>138</span>
146
+ <span class='line'>139</span> </span><span class="NAME">this._launched</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
147
+ <span class='line'>140</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
148
+ <span class='line'>141</span>
149
+ <span class='line'>142</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
150
+ <span class='line'>143</span> </span><span class="NAME">launched</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
151
+ <span class='line'>144</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._launched</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
152
+ <span class='line'>145</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
153
+ <span class='line'>146</span>
154
+ <span class='line'>147</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
155
+ <span class='line'>148</span> </span><span class="NAME">noRoutes</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
156
+ <span class='line'>149</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">app.__routes</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">$H</span><span class="PUNC">(</span><span class="NAME">app.__routes</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">keys</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">size</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
157
+ <span class='line'>150</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
158
+ <span class='line'>151</span>
159
+ <span class='line'>152</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
160
+ <span class='line'>153</span> </span><span class="NAME">avoidAnimation</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
161
+ <span class='line'>154</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Prototype.Browser.IE</span><span class="PUNC">;</span><span class="WHIT">
162
+ <span class='line'>155</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
163
+ <span class='line'>156</span>
164
+ <span class='line'>157</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
165
+ <span class='line'>158</span> </span><span class="NAME">matchRoutePath</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
166
+ <span class='line'>159</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">app.__routes</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">detect</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">routePath</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
167
+ <span class='line'>160</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">routePath</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
168
+ <span class='line'>161</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">routeParts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">routePath.split</span><span class="PUNC">(</span><span class="STRN">"/"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
169
+ <span class='line'>162</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pathParts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">path.split</span><span class="PUNC">(</span><span class="STRN">"/"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
170
+ <span class='line'>163</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
171
+ <span class='line'>164</span> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">routeParts.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
172
+ <span class='line'>165</span> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">routeParts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">startsWith</span><span class="PUNC">(</span><span class="STRN">":"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">routeParts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">startsWith</span><span class="PUNC">(</span><span class="STRN">"*"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">routeParts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">pathParts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
173
+ <span class='line'>166</span> </span><span class="PUNC">}</span><span class="WHIT">
174
+ <span class='line'>167</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">match</span><span class="PUNC">;</span><span class="WHIT">
175
+ <span class='line'>168</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
176
+ <span class='line'>169</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
177
+ <span class='line'>170</span>
178
+ <span class='line'>171</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
179
+ <span class='line'>172</span> </span><span class="NAME">matchRouteTarget</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
180
+ <span class='line'>173</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">app.__routes</span><span class="PUNC">[</span><span class="NAME">this.matchRoutePath</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
181
+ <span class='line'>174</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
182
+ <span class='line'>175</span>
183
+ <span class='line'>176</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
184
+ <span class='line'>177</span> </span><span class="NAME">remainingPath</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
185
+ <span class='line'>178</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.matchRoutePath</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
186
+ <span class='line'>179</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">match</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">path</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
187
+ <span class='line'>180</span>
188
+ <span class='line'>181</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">matchParts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">match.split</span><span class="PUNC">(</span><span class="STRN">"/"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
189
+ <span class='line'>182</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">matchLength</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">matchParts.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">startsWith</span><span class="PUNC">(</span><span class="STRN">"*"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">matchParts.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">matchParts.length</span><span class="PUNC">;</span><span class="WHIT">
190
+ <span class='line'>183</span>
191
+ <span class='line'>184</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">path.split</span><span class="PUNC">(</span><span class="STRN">"/"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NAME">matchLength</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">join</span><span class="PUNC">(</span><span class="STRN">"/"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
192
+ <span class='line'>185</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
193
+ <span class='line'>186</span>
194
+ <span class='line'>187</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
195
+ <span class='line'>188</span> </span><span class="NAME">pathParts</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
196
+ <span class='line'>189</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">parts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
197
+ <span class='line'>190</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pathParts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">path.split</span><span class="PUNC">(</span><span class="STRN">"/"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
198
+ <span class='line'>191</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">routePathParts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.matchRoutePath</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">split</span><span class="PUNC">(</span><span class="STRN">"/"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
199
+ <span class='line'>192</span> </span><span class="KEYW">for</span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">routePathParts.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
200
+ <span class='line'>193</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">routePathPart</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">routePathParts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
201
+ <span class='line'>194</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">routePathPart.startsWith</span><span class="PUNC">(</span><span class="STRN">":"</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">routePathPart.startsWith</span><span class="PUNC">(</span><span class="STRN">"*"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
202
+ <span class='line'>195</span> </span><span class="NAME">parts</span><span class="PUNC">[</span><span class="NAME">routePathPart.slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pathParts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
203
+ <span class='line'>196</span> </span><span class="PUNC">}</span><span class="WHIT">
204
+ <span class='line'>197</span> </span><span class="PUNC">}</span><span class="WHIT">
205
+ <span class='line'>198</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">parts</span><span class="PUNC">;</span><span class="WHIT">
206
+ <span class='line'>199</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
207
+ <span class='line'>200</span>
208
+ <span class='line'>201</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
209
+ <span class='line'>202</span> </span><span class="NAME">navigateTo</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">noHistoryEntry</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
210
+ <span class='line'>203</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">subPath</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.matchRoutePath</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
211
+ <span class='line'>204</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">target</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.matchRouteTarget</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
212
+ <span class='line'>205</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">target</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">rio.Application.fail</span><span class="PUNC">(</span><span class="STRN">"Path not found."</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
213
+ <span class='line'>206</span>
214
+ <span class='line'>207</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">path</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">noHistoryEntry</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
215
+ <span class='line'>208</span> </span><span class="NAME">this.addHistoryEntry</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
216
+ <span class='line'>209</span> </span><span class="PUNC">}</span><span class="WHIT">
217
+ <span class='line'>210</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">remainingPath</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.remainingPath</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
218
+ <span class='line'>211</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">pathParts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.pathParts</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
219
+ <span class='line'>212</span>
220
+ <span class='line'>213</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.__pages</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">this.__pages</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
221
+ <span class='line'>214</span> </span><span class="COMM">// Right now the && this.__pages[target] == this.getCurrentPage() prevents double rendering.</span><span class="WHIT">
222
+ <span class='line'>215</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">page</span><span class="PUNC">;</span><span class="WHIT">
223
+ <span class='line'>216</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.__pages</span><span class="PUNC">[</span><span class="NAME">target</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">this.__pages</span><span class="PUNC">[</span><span class="NAME">target</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">this.getCurrentPage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
224
+ <span class='line'>217</span> </span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.__pages</span><span class="PUNC">[</span><span class="NAME">target</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
225
+ <span class='line'>218</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
226
+ <span class='line'>219</span> </span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">target</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
227
+ <span class='line'>220</span> </span><span class="NAME">this.__pages</span><span class="PUNC">[</span><span class="NAME">target</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">page</span><span class="PUNC">;</span><span class="WHIT">
228
+ <span class='line'>221</span> </span><span class="PUNC">}</span><span class="WHIT">
229
+ <span class='line'>222</span>
230
+ <span class='line'>223</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">page</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">this.getCurrentPage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
231
+ <span class='line'>224</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this.getCurrentPage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
232
+ <span class='line'>225</span> </span><span class="NAME">this.clearPage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
233
+ <span class='line'>226</span> </span><span class="PUNC">}</span><span class="WHIT">
234
+ <span class='line'>227</span> </span><span class="PUNC">[</span><span class="NAME">Element.body</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Element.html</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">elt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
235
+ <span class='line'>228</span> </span><span class="NAME">elt.setStyle</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
236
+ <span class='line'>229</span> </span><span class="NAME">width</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">page.isManagingLayout</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">"100%"</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT">
237
+ <span class='line'>230</span> </span><span class="NAME">height</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">page.isManagingLayout</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="STRN">"100%"</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">""</span><span class="WHIT">
238
+ <span class='line'>231</span> </span><span class="COMM">// overflow: page.isManagingLayout() ? "hidden" : ""</span><span class="WHIT">
239
+ <span class='line'>232</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
240
+ <span class='line'>233</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
241
+ <span class='line'>234</span> </span><span class="NAME">Element.body</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">insert</span><span class="PUNC">(</span><span class="NAME">page.html</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
242
+ <span class='line'>235</span> </span><span class="NAME">page.render</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
243
+ <span class='line'>236</span> </span><span class="NAME">this.setCurrentPage</span><span class="PUNC">(</span><span class="NAME">page</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
244
+ <span class='line'>237</span> </span><span class="PUNC">}</span><span class="WHIT">
245
+ <span class='line'>238</span>
246
+ <span class='line'>239</span> </span><span class="NAME">page.applyHistoryEntry</span><span class="PUNC">(</span><span class="NAME">remainingPath</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pathParts</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
247
+ <span class='line'>240</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
248
+ <span class='line'>241</span>
249
+ <span class='line'>242</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
250
+ <span class='line'>243</span> </span><span class="NAME">clearPage</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
251
+ <span class='line'>244</span> </span><span class="NAME">Element.body</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">childElements</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">elt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
252
+ <span class='line'>245</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">elt.tagName.toLowerCase</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'iframe'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">elt.id</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'rshStorageForm'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">elt.id</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'rshStorageField'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">elt.id</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="STRN">'juggernaut_flash'</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">elt.hasClassName</span><span class="PUNC">(</span><span class="STRN">"preserve"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
253
+ <span class='line'>246</span> </span><span class="COMM">// keep it</span><span class="WHIT">
254
+ <span class='line'>247</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
255
+ <span class='line'>248</span> </span><span class="NAME">elt.remove</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
256
+ <span class='line'>249</span> </span><span class="PUNC">}</span><span class="WHIT">
257
+ <span class='line'>250</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
258
+ <span class='line'>251</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
259
+ <span class='line'>252</span>
260
+ <span class='line'>253</span> </span><span class="COMM">/**
261
+ <span class='line'>254</span> Refreshes the browser. This will reload your app's source code
262
+ <span class='line'>255</span> and reinitialize your app. This is more severe than rebooting.
263
+ <span class='line'>256</span> */</span><span class="WHIT">
264
+ <span class='line'>257</span> </span><span class="NAME">refresh</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
265
+ <span class='line'>258</span> </span><span class="NAME">document.location.reload</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
266
+ <span class='line'>259</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
267
+ <span class='line'>260</span>
268
+ <span class='line'>261</span> </span><span class="COMM">/**
269
+ <span class='line'>262</span> Reboots your application. Rebooting your application will reset and reload the
270
+ <span class='line'>263</span> current page.
271
+ <span class='line'>264</span> */</span><span class="WHIT">
272
+ <span class='line'>265</span> </span><span class="NAME">reboot</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
273
+ <span class='line'>266</span> </span><span class="NAME">this.clearPage</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
274
+ <span class='line'>267</span> </span><span class="NAME">this.setCurrentPage</span><span class="PUNC">(</span><span class="KEYW">null</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
275
+ <span class='line'>268</span> </span><span class="NAME">this.navigateTo</span><span class="PUNC">(</span><span class="NAME">this.getCurrentLocation</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
276
+ <span class='line'>269</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
277
+ <span class='line'>270</span>
278
+ <span class='line'>271</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
279
+ <span class='line'>272</span> </span><span class="NAME">getCurrentLocation</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
280
+ <span class='line'>273</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">dhtmlHistory.getCurrentLocation</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
281
+ <span class='line'>274</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
282
+ <span class='line'>275</span>
283
+ <span class='line'>276</span> </span><span class="COMM">/**
284
+ <span class='line'>277</span> Returns the instance of the currently loaded page in the app.
285
+ <span class='line'>278</span>
286
+ <span class='line'>279</span> @returns the instance of the currently loaded page
287
+ <span class='line'>280</span> @type rio.Page
288
+ <span class='line'>281</span> */</span><span class="WHIT">
289
+ <span class='line'>282</span> </span><span class="NAME">getCurrentPage</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
290
+ <span class='line'>283</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._currentPage</span><span class="PUNC">;</span><span class="WHIT">
291
+ <span class='line'>284</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
292
+ <span class='line'>285</span>
293
+ <span class='line'>286</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
294
+ <span class='line'>287</span> </span><span class="NAME">setCurrentPage</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">page</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
295
+ <span class='line'>288</span> </span><span class="NAME">this._currentPage</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">page</span><span class="PUNC">;</span><span class="WHIT">
296
+ <span class='line'>289</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
297
+ <span class='line'>290</span>
298
+ <span class='line'>291</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
299
+ <span class='line'>292</span> </span><span class="NAME">rootUrl</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
300
+ <span class='line'>293</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">document.location.protocol</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"//"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">document.location.host</span><span class="PUNC">;</span><span class="WHIT">
301
+ <span class='line'>294</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
302
+ <span class='line'>295</span>
303
+ <span class='line'>296</span> </span><span class="NAME">toString</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
304
+ <span class='line'>297</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"[rio.apps.*]"</span><span class="PUNC">;</span><span class="WHIT">
305
+ <span class='line'>298</span> </span><span class="PUNC">}</span><span class="WHIT">
306
+ <span class='line'>299</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
307
+ <span class='line'>300</span>
308
+ <span class='line'>301</span> </span><span class="NAME">Object.extend</span><span class="PUNC">(</span><span class="NAME">app</span><span class="PUNC">,</span><span class="WHIT">
309
+ <span class='line'>302</span> </span><span class="COMM">/**
310
+ <span class='line'>303</span> @scope rio.Application
311
+ <span class='line'>304</span> */</span><span class="WHIT">
312
+ <span class='line'>305</span> </span><span class="PUNC">{</span><span class="WHIT">
313
+ <span class='line'>306</span> </span><span class="COMM">/**
314
+ <span class='line'>307</span> Specifies the lowest priority route for an application class.
315
+ <span class='line'>308</span>
316
+ <span class='line'>309</span> &lt;b>You are better off specifying routes when creating an
317
+ <span class='line'>310</span> application with a 'routes' parameter.&lt;/b>
318
+ <span class='line'>311</span> */</span><span class="WHIT">
319
+ <span class='line'>312</span> </span><span class="NAME">route</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">path</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">target</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
320
+ <span class='line'>313</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.__routes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">this.__routes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
321
+ <span class='line'>314</span> </span><span class="NAME">this.__routes</span><span class="PUNC">[</span><span class="NAME">path</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">target</span><span class="PUNC">;</span><span class="WHIT">
322
+ <span class='line'>315</span>
323
+ <span class='line'>316</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">parts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">path.split</span><span class="PUNC">(</span><span class="STRN">"/"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
324
+ <span class='line'>317</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parts.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
325
+ <span class='line'>318</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">parts.length</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
326
+ <span class='line'>319</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">parts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">startsWith</span><span class="PUNC">(</span><span class="STRN">"*"</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
327
+ <span class='line'>320</span> </span><span class="KEYW">throw</span><span class="PUNC">(</span><span class="STRN">"Only the final part of a route can be designated as optional by the *"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
328
+ <span class='line'>321</span> </span><span class="PUNC">}</span><span class="WHIT">
329
+ <span class='line'>322</span> </span><span class="PUNC">}</span><span class="WHIT">
330
+ <span class='line'>323</span> </span><span class="PUNC">}</span><span class="WHIT">
331
+ <span class='line'>324</span> </span><span class="PUNC">}</span><span class="WHIT">
332
+ <span class='line'>325</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
333
+ <span class='line'>326</span>
334
+ <span class='line'>327</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">args.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">args.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">args.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">ATTR</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
335
+ <span class='line'>328</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">initializers</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">args.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
336
+ <span class='line'>329</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">initializers.requireCss</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
337
+ <span class='line'>330</span> </span><span class="NAME">rio.Application.includeCss</span><span class="PUNC">(</span><span class="NAME">initializers.requireCss</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
338
+ <span class='line'>331</span> </span><span class="PUNC">}</span><span class="WHIT">
339
+ <span class='line'>332</span> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">initializers.routes</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
340
+ <span class='line'>333</span> </span><span class="NAME">app.route</span><span class="PUNC">(</span><span class="NAME">name</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">initializers.routes</span><span class="PUNC">[</span><span class="NAME">name</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
341
+ <span class='line'>334</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
342
+ <span class='line'>335</span>
343
+ <span class='line'>336</span> </span><span class="NAME">rio.Application.extend</span><span class="PUNC">(</span><span class="NAME">app</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">initializers.methods</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
344
+ <span class='line'>337</span> </span><span class="PUNC">}</span><span class="WHIT">
345
+ <span class='line'>338</span>
346
+ <span class='line'>339</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">app</span><span class="PUNC">;</span><span class="WHIT">
347
+ <span class='line'>340</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
348
+ <span class='line'>341</span>
349
+ <span class='line'>342</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
350
+ <span class='line'>343</span> </span><span class="NAME">extend</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">app</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
351
+ <span class='line'>344</span> </span><span class="NAME">rio.Attr.extend</span><span class="PUNC">(</span><span class="NAME">app</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
352
+ <span class='line'>345</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
353
+ <span class='line'>346</span>
354
+ <span class='line'>347</span> </span><span class="COMM">/**
355
+ <span class='line'>348</span> Alias of rio.Application.require
356
+ <span class='line'>349</span>
357
+ <span class='line'>350</span> @param {String} fileName The path to the javascript file that will be loaded.
358
+ <span class='line'>351</span> */</span><span class="WHIT">
359
+ <span class='line'>352</span> </span><span class="NAME">include</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">fileName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
360
+ <span class='line'>353</span> </span><span class="NAME">this.require</span><span class="PUNC">(</span><span class="NAME">fileName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
361
+ <span class='line'>354</span> </span><span class="COMM">// rio.boot.loadFile(fileName);</span><span class="WHIT">
362
+ <span class='line'>355</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
363
+ <span class='line'>356</span>
364
+ <span class='line'>357</span> </span><span class="COMM">/**
365
+ <span class='line'>358</span> Alias of rio.Application.require
366
+ <span class='line'>359</span>
367
+ <span class='line'>360</span> @param {String} fileName The path to the javascript file that will be loaded.
368
+ <span class='line'>361</span> */</span><span class="WHIT">
369
+ <span class='line'>362</span> </span><span class="NAME">require</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">fileName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
370
+ <span class='line'>363</span> </span><span class="NAME">rio.require</span><span class="PUNC">(</span><span class="NAME">fileName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
371
+ <span class='line'>364</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
372
+ <span class='line'>365</span>
373
+ <span class='line'>366</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
374
+ <span class='line'>367</span> </span><span class="NAME">injectCss</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
375
+ <span class='line'>368</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">toLoad</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
376
+ <span class='line'>369</span> </span><span class="NAME">rio.boot.loadedStylesheets.each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
377
+ <span class='line'>370</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">rio.preloadedStylesheets.include</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">toLoad.push</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
378
+ <span class='line'>371</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
379
+ <span class='line'>372</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">toLoad.empty</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
380
+ <span class='line'>373</span>
381
+ <span class='line'>374</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">query</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">toLoad.map</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">f</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
382
+ <span class='line'>375</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"files[]="</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">f</span><span class="PUNC">;</span><span class="WHIT">
383
+ <span class='line'>376</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">join</span><span class="PUNC">(</span><span class="STRN">"&"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
384
+ <span class='line'>377</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">linkHtml</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Tag.link</span><span class="PUNC">(</span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
385
+ <span class='line'>378</span> </span><span class="NAME">href</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">rio.url</span><span class="PUNC">(</span><span class="STRN">"/rio/stylesheets?"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">query</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"&"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">rio.cacheKey</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
386
+ <span class='line'>379</span> </span><span class="NAME">media</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"screen"</span><span class="PUNC">,</span><span class="WHIT">
387
+ <span class='line'>380</span> </span><span class="NAME">rel</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"stylesheet"</span><span class="PUNC">,</span><span class="WHIT">
388
+ <span class='line'>381</span> </span><span class="NAME">type</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"text/css"</span><span class="WHIT">
389
+ <span class='line'>382</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
390
+ <span class='line'>383</span> </span><span class="NAME">Element.head</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">insert</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">bottom</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">linkHtml</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
391
+ <span class='line'>384</span>
392
+ <span class='line'>385</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rio.ContainerLayout</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
393
+ <span class='line'>386</span> </span><span class="NAME">rio.ContainerLayout.resize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
394
+ <span class='line'>387</span> </span><span class="PUNC">}</span><span class="WHIT">
395
+ <span class='line'>388</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
396
+ <span class='line'>389</span>
397
+ <span class='line'>390</span> </span><span class="COMM">/*
398
+ <span class='line'>391</span> Requires a css file
399
+ <span class='line'>392</span>
400
+ <span class='line'>393</span> @param {String} toInclude The path to the stylesheet that will be loaded.
401
+ <span class='line'>394</span> */</span><span class="WHIT">
402
+ <span class='line'>395</span> </span><span class="NAME">includeCss</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">toInclude</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
403
+ <span class='line'>396</span> </span><span class="COMM">// Because of a bug in IE, we need to remove and readd all link tags every time a new one is added.</span><span class="WHIT">
404
+ <span class='line'>397</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">include</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">fileName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
405
+ <span class='line'>398</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rio.boot.loadedStylesheets.include</span><span class="PUNC">(</span><span class="NAME">fileName</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
406
+ <span class='line'>399</span> </span><span class="NAME">rio.boot.loadedStylesheets.push</span><span class="PUNC">(</span><span class="NAME">fileName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
407
+ <span class='line'>400</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rio.preloadedStylesheets.include</span><span class="PUNC">(</span><span class="NAME">fileName</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
408
+ <span class='line'>401</span>
409
+ <span class='line'>402</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rio.environment.autoConcatCss</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="PUNC">(</span><span class="NAME">rio.app</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">rio.app.launched</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
410
+ <span class='line'>403</span> </span><span class="COMM">// Do nothing</span><span class="WHIT">
411
+ <span class='line'>404</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
412
+ <span class='line'>405</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">linkHtml</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Tag.link</span><span class="PUNC">(</span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
413
+ <span class='line'>406</span> </span><span class="NAME">href</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">rio.url</span><span class="PUNC">(</span><span class="STRN">"/stylesheets/"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">fileName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">".css"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
414
+ <span class='line'>407</span> </span><span class="NAME">media</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"screen"</span><span class="PUNC">,</span><span class="WHIT">
415
+ <span class='line'>408</span> </span><span class="NAME">rel</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"stylesheet"</span><span class="PUNC">,</span><span class="WHIT">
416
+ <span class='line'>409</span> </span><span class="NAME">type</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"text/css"</span><span class="WHIT">
417
+ <span class='line'>410</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
418
+ <span class='line'>411</span> </span><span class="NAME">Element.head</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">insert</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">bottom</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">linkHtml</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
419
+ <span class='line'>412</span> </span><span class="PUNC">}</span><span class="WHIT">
420
+ <span class='line'>413</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
421
+ <span class='line'>414</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Object.isString</span><span class="PUNC">(</span><span class="NAME">toInclude</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
422
+ <span class='line'>415</span> </span><span class="NAME">include</span><span class="PUNC">(</span><span class="NAME">toInclude</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
423
+ <span class='line'>416</span> </span><span class="PUNC">}</span><span class="WHIT">
424
+ <span class='line'>417</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Object.isArray</span><span class="PUNC">(</span><span class="NAME">toInclude</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
425
+ <span class='line'>418</span> </span><span class="NAME">toInclude.reverse</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">css</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
426
+ <span class='line'>419</span> </span><span class="NAME">include</span><span class="PUNC">(</span><span class="NAME">css</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
427
+ <span class='line'>420</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
428
+ <span class='line'>421</span> </span><span class="PUNC">}</span><span class="WHIT">
429
+ <span class='line'>422</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
430
+ <span class='line'>423</span>
431
+ <span class='line'>424</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
432
+ <span class='line'>425</span> </span><span class="NAME">getToken</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
433
+ <span class='line'>426</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._token</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">rio.environment.railsToken</span><span class="PUNC">;</span><span class="WHIT">
434
+ <span class='line'>427</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
435
+ <span class='line'>428</span>
436
+ <span class='line'>429</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
437
+ <span class='line'>430</span> </span><span class="NAME">setToken</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">token</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
438
+ <span class='line'>431</span> </span><span class="NAME">this._token</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">token</span><span class="PUNC">;</span><span class="WHIT">
439
+ <span class='line'>432</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
440
+ <span class='line'>433</span>
441
+ <span class='line'>434</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
442
+ <span class='line'>435</span> </span><span class="NAME">_afterLaunchFunctions</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
443
+ <span class='line'>436</span>
444
+ <span class='line'>437</span> </span><span class="COMM">/** @private */</span><span class="WHIT">
445
+ <span class='line'>438</span> </span><span class="NAME">afterLaunch</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">afterLoadFunction</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
446
+ <span class='line'>439</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rio.app</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">rio.app.launched</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
447
+ <span class='line'>440</span> </span><span class="NAME">afterLoadFunction</span><span class="PUNC">(</span><span class="NAME">rio.app</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
448
+ <span class='line'>441</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
449
+ <span class='line'>442</span> </span><span class="NAME">this._afterLaunchFunctions.push</span><span class="PUNC">(</span><span class="NAME">afterLoadFunction</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
450
+ <span class='line'>443</span> </span><span class="PUNC">}</span><span class="WHIT">
451
+ <span class='line'>444</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
452
+ <span class='line'>445</span>
453
+ <span class='line'>446</span> </span><span class="COMM">/**
454
+ <span class='line'>447</span> This causes the application to fail and log a 'fail' error message. If the application class
455
+ <span class='line'>448</span> has a fail method, that method will be called with the message passed in here.
456
+ <span class='line'>449</span>
457
+ <span class='line'>450</span> @param {String} msg The application failure message
458
+ <span class='line'>451</span> @param {String} msg A more in depth description of the application failure
459
+ <span class='line'>452</span> */</span><span class="WHIT">
460
+ <span class='line'>453</span> </span><span class="NAME">fail</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">msg</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">description</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
461
+ <span class='line'>454</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
462
+ <span class='line'>455</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rio.app</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">rio.app.fail</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
463
+ <span class='line'>456</span> </span><span class="NAME">rio.app.fail</span><span class="PUNC">(</span><span class="NAME">msg</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
464
+ <span class='line'>457</span> </span><span class="NAME">rio.error</span><span class="PUNC">(</span><span class="STRN">"FAIL: "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">msg</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">description</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="STRN">""</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
465
+ <span class='line'>458</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
466
+ <span class='line'>459</span> </span><span class="NAME">alert</span><span class="PUNC">(</span><span class="STRN">"OOPS: "</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">msg</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"\n\nTry refreshing the page or come back later."</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
467
+ <span class='line'>460</span> </span><span class="PUNC">}</span><span class="WHIT">
468
+ <span class='line'>461</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
469
+ <span class='line'>462</span> </span><span class="COMM">// Ignore errors during fail</span><span class="WHIT">
470
+ <span class='line'>463</span> </span><span class="PUNC">}</span><span class="WHIT">
471
+ <span class='line'>464</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
472
+ <span class='line'>465</span>
473
+ <span class='line'>466</span> </span><span class="NAME">toString</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
474
+ <span class='line'>467</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"Application"</span><span class="PUNC">;</span><span class="WHIT">
475
+ <span class='line'>468</span> </span><span class="PUNC">}</span><span class="WHIT">
476
+ <span class='line'>469</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
477
+ <span class='line'>470</span>
478
+ <span class='line'>471</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">window.dhtmlHistoryCreated</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
479
+ <span class='line'>472</span> </span><span class="NAME">window.dhtmlHistory.create</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
480
+ <span class='line'>473</span> </span><span class="NAME">toJSON</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
481
+ <span class='line'>474</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">Object.toJSON</span><span class="PUNC">(</span><span class="NAME">o</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
482
+ <span class='line'>475</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
483
+ <span class='line'>476</span> </span><span class="NAME">fromJSON</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">s</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
484
+ <span class='line'>477</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">s.evalJSON</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
485
+ <span class='line'>478</span> </span><span class="PUNC">}</span><span class="WHIT">
486
+ <span class='line'>479</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
487
+ <span class='line'>480</span> </span><span class="NAME">window.dhtmlHistoryCreated</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
488
+ <span class='line'>481</span> </span><span class="PUNC">}</span><span class="WHIT">
489
+ <span class='line'>482</span>
490
+ <span class='line'>483</span> </span></pre></body></html>