emergent-core 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (349) hide show
  1. data/.bnsignore +16 -0
  2. data/History.txt +4 -0
  3. data/Manifest.txt +348 -0
  4. data/README.rdoc +47 -0
  5. data/Rakefile +39 -0
  6. data/app_generators/emergent_core/USAGE +5 -0
  7. data/app_generators/emergent_core/emergent_core_generator.rb +73 -0
  8. data/app_generators/emergent_core/templates/core/actionscript.properties +16 -0
  9. data/app_generators/emergent_core/templates/core/actionscriptair.properties +16 -0
  10. data/app_generators/emergent_core/templates/core/app.yaml.erb +12 -0
  11. data/app_generators/emergent_core/templates/core/default_tasks.rake +51 -0
  12. data/app_generators/emergent_core/templates/core/empty.txt +0 -0
  13. data/app_generators/emergent_core/templates/core/expressInstall.swf +0 -0
  14. data/app_generators/emergent_core/templates/core/flex.properties +2 -0
  15. data/app_generators/emergent_core/templates/core/generate.rb +17 -0
  16. data/app_generators/emergent_core/templates/core/html-template/AC_OETags.js +276 -0
  17. data/app_generators/emergent_core/templates/core/html-template/history/history.css +6 -0
  18. data/app_generators/emergent_core/templates/core/html-template/history/history.js +645 -0
  19. data/app_generators/emergent_core/templates/core/html-template/history/historyFrame.html +29 -0
  20. data/app_generators/emergent_core/templates/core/html-template/index.template.html +121 -0
  21. data/app_generators/emergent_core/templates/core/html-template/playerProductInstall.swf +0 -0
  22. data/app_generators/emergent_core/templates/core/index.html.erb +18 -0
  23. data/app_generators/emergent_core/templates/core/index.yaml +11 -0
  24. data/app_generators/emergent_core/templates/core/mainair-app.xml +134 -0
  25. data/app_generators/emergent_core/templates/core/mainapp-config.xml +21 -0
  26. data/app_generators/emergent_core/templates/core/mainapp.mxml +106 -0
  27. data/app_generators/emergent_core/templates/core/project-textmate.erb +52 -0
  28. data/app_generators/emergent_core/templates/core/project.properties +18 -0
  29. data/app_generators/emergent_core/templates/core/projectair.properties +24 -0
  30. data/app_generators/emergent_core/templates/core/swfobject.js +5 -0
  31. data/bin/emergent +17 -0
  32. data/lib/emergent_core.rb +49 -0
  33. data/lib/restfulx/active_foo.rb +194 -0
  34. data/lib/restfulx/active_record_tasks.rb +81 -0
  35. data/lib/restfulx/configuration.rb +76 -0
  36. data/lib/restfulx/datamapper_foo.rb +31 -0
  37. data/lib/restfulx/rails/recipes.rb +60 -0
  38. data/lib/restfulx/rails/swf_helper.rb +60 -0
  39. data/lib/restfulx/tasks.rb +85 -0
  40. data/lib/restfulx.rb +117 -0
  41. data/rails_generators/emergent_cms/USAGE +5 -0
  42. data/rails_generators/emergent_cms/emergent_cms_generator.rb +21 -0
  43. data/rails_generators/emergent_cms/templates/PagesEditModel.as +114 -0
  44. data/rails_generators/emergent_cms/templates/PagesEditView.mxml +102 -0
  45. data/rails_generators/emergent_config/USAGE +5 -0
  46. data/rails_generators/emergent_config/emergent_config_generator.rb +330 -0
  47. data/rails_generators/emergent_config/templates/app/controllers/accounts_controller.rb +104 -0
  48. data/rails_generators/emergent_config/templates/app/controllers/addresses_controller.rb +97 -0
  49. data/rails_generators/emergent_config/templates/app/controllers/application.rb +26 -0
  50. data/rails_generators/emergent_config/templates/app/controllers/assets_controller.rb +1 -0
  51. data/rails_generators/emergent_config/templates/app/controllers/content_assignments_controller.rb +97 -0
  52. data/rails_generators/emergent_config/templates/app/controllers/contents_controller.rb +114 -0
  53. data/rails_generators/emergent_config/templates/app/controllers/sessions_controller.rb +72 -0
  54. data/rails_generators/emergent_config/templates/app/controllers/sites_controller.rb +1 -0
  55. data/rails_generators/emergent_config/templates/app/controllers/users_controller.rb +97 -0
  56. data/rails_generators/emergent_config/templates/app/flex/application/controllers/command/ICommand.as +16 -0
  57. data/rails_generators/emergent_config/templates/app/flex/application/controllers/command/Undoable.as +46 -0
  58. data/rails_generators/emergent_config/templates/app/flex/application/controllers/command/UpdateDocumentCommand.as +73 -0
  59. data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/DocumentEvent.as +46 -0
  60. data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/NavigationEvent.as +31 -0
  61. data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/ResourceEvent.as +27 -0
  62. data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/UndoEvent.as +36 -0
  63. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/AboutUsManager.as +15 -0
  64. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/AccountManager.as +31 -0
  65. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/AuthenticationManager.as +76 -0
  66. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/ContentManager.as +92 -0
  67. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/DocumentManager.as +131 -0
  68. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/DocumentsManager.as +156 -0
  69. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/HomeManager.as +18 -0
  70. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/MainManager.as +23 -0
  71. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/PagesManager.as +71 -0
  72. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/ResourceManager.as +195 -0
  73. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/SiteManager.as +25 -0
  74. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/UndoManager.as +143 -0
  75. data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/DocumentMap.mxml +123 -0
  76. data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/DocumentsMap.mxml +134 -0
  77. data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/ManagerPresentationModelMap.mxml +59 -0
  78. data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/ObjectMap.mxml +75 -0
  79. data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/PresentationModelViewMap.mxml +81 -0
  80. data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/PresenterViewMap.mxml +67 -0
  81. data/rails_generators/emergent_config/templates/app/flex/application/models/constant/DocumentType.as +52 -0
  82. data/rails_generators/emergent_config/templates/app/flex/application/models/constant/Resource.as +25 -0
  83. data/rails_generators/emergent_config/templates/app/flex/application/models/constant/ResourceAction.as +28 -0
  84. data/rails_generators/emergent_config/templates/app/flex/application/models/constant/ResourceResult.as +8 -0
  85. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Account.as +32 -0
  86. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Address.as +26 -0
  87. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Asset.as +25 -0
  88. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/AssetAssignment.as +25 -0
  89. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Content.as +46 -0
  90. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/ContentAssignment.as +33 -0
  91. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Document.as +131 -0
  92. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/PlainDocument.as +19 -0
  93. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/RichDocument.as +19 -0
  94. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Session.as +13 -0
  95. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Snapshot.as +21 -0
  96. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/User.as +28 -0
  97. data/rails_generators/emergent_config/templates/app/flex/application/models/factory/DocumentFactory.as +61 -0
  98. data/rails_generators/emergent_config/templates/app/flex/application/models/factory/DocumentViewFactory.as +59 -0
  99. data/rails_generators/emergent_config/templates/app/flex/application/models/factory/ResourceFactory.as +28 -0
  100. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/AboutUsModel.as +22 -0
  101. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/AccountModel.as +68 -0
  102. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/AuthenticationModel.as +44 -0
  103. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ContactUsModel.as +45 -0
  104. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ContentModel.as +70 -0
  105. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/DocumentModel.as +235 -0
  106. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/DocumentsModel.as +169 -0
  107. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/HomeModel.as +23 -0
  108. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/MainModel.as +35 -0
  109. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/PagesModel.as +44 -0
  110. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ProfileModel.as +99 -0
  111. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ResourceModel.as +100 -0
  112. data/rails_generators/emergent_config/templates/app/flex/application/views/about_us/about_us.mxml +105 -0
  113. data/rails_generators/emergent_config/templates/app/flex/application/views/account/account.mxml +97 -0
  114. data/rails_generators/emergent_config/templates/app/flex/application/views/contact_us/contact_us.mxml +65 -0
  115. data/rails_generators/emergent_config/templates/app/flex/application/views/document/document.mxml +71 -0
  116. data/rails_generators/emergent_config/templates/app/flex/application/views/document/documents.mxml +201 -0
  117. data/rails_generators/emergent_config/templates/app/flex/application/views/document/plain_document.mxml +9 -0
  118. data/rails_generators/emergent_config/templates/app/flex/application/views/document/rich_document.mxml +12 -0
  119. data/rails_generators/emergent_config/templates/app/flex/application/views/gallery/gallery.mxml +37 -0
  120. data/rails_generators/emergent_config/templates/app/flex/application/views/home/home.mxml +58 -0
  121. data/rails_generators/emergent_config/templates/app/flex/application/views/home/home_presenter.as +81 -0
  122. data/rails_generators/emergent_config/templates/app/flex/application/views/home/home_troparchy.mxml +71 -0
  123. data/rails_generators/emergent_config/templates/app/flex/application/views/login/login.mxml +50 -0
  124. data/rails_generators/emergent_config/templates/app/flex/application/views/main/main.mxml +131 -0
  125. data/rails_generators/emergent_config/templates/app/flex/application/views/main/main_presenter.as +166 -0
  126. data/rails_generators/emergent_config/templates/app/flex/application/views/main/main_troparchy.mxml +74 -0
  127. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_bottom_model.as +13 -0
  128. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_bottom_presenter.as +10 -0
  129. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_bottom_view.mxml +48 -0
  130. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_left_model.as +13 -0
  131. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_left_presenter.as +10 -0
  132. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_left_view.mxml +43 -0
  133. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_right_model.as +13 -0
  134. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_right_presenter.as +10 -0
  135. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_right_view.mxml +47 -0
  136. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_top_model.as +13 -0
  137. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_top_presenter.as +10 -0
  138. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_top_view.mxml +49 -0
  139. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bars_presenter.as +63 -0
  140. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bars_troparchy.mxml +63 -0
  141. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bars_view.mxml +59 -0
  142. data/rails_generators/emergent_config/templates/app/flex/application/views/pages/pages.mxml +44 -0
  143. data/rails_generators/emergent_config/templates/app/flex/application/views/pages/pages_presenter.as +83 -0
  144. data/rails_generators/emergent_config/templates/app/flex/application/views/pages/pages_troparchy.mxml +62 -0
  145. data/rails_generators/emergent_config/templates/app/flex/application/views/profile/profile.mxml +73 -0
  146. data/rails_generators/emergent_config/templates/app/flex/assets/fonts/MyriadPro-Bold.otf +0 -0
  147. data/rails_generators/emergent_config/templates/app/flex/assets/fonts/MyriadPro-Regular.otf +0 -0
  148. data/rails_generators/emergent_config/templates/app/flex/assets/html/lorem.html +3 -0
  149. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture10.png +0 -0
  150. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture11.png +0 -0
  151. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture12.png +0 -0
  152. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture13.png +0 -0
  153. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture14.png +0 -0
  154. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture3.png +0 -0
  155. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture4.png +0 -0
  156. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture5.png +0 -0
  157. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture6.png +0 -0
  158. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture7.png +0 -0
  159. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture8.png +0 -0
  160. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture9.png +0 -0
  161. data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_0.jpg +0 -0
  162. data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_180.jpg +0 -0
  163. data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_270.jpg +0 -0
  164. data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_90.jpg +0 -0
  165. data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_bottom.jpg +0 -0
  166. data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_top.jpg +0 -0
  167. data/rails_generators/emergent_config/templates/app/flex/assets/styles/itunes7Bg.jpg +0 -0
  168. data/rails_generators/emergent_config/templates/app/flex/assets/styles/jukebox.css +764 -0
  169. data/rails_generators/emergent_config/templates/app/flex/assets/styles/jukeboxGfx.swf +0 -0
  170. data/rails_generators/emergent_config/templates/app/flex/assets/styles/obsidian.css +734 -0
  171. data/rails_generators/emergent_config/templates/app/flex/assets/styles/obsidianBg.jpg +0 -0
  172. data/rails_generators/emergent_config/templates/app/flex/assets/styles/obsidianGfx.swf +0 -0
  173. data/rails_generators/emergent_config/templates/app/flex/com/fourD/actions/LayoutAction.as +377 -0
  174. data/rails_generators/emergent_config/templates/app/flex/com/fourD/actions/SimpleLayoutAction.as +210 -0
  175. data/rails_generators/emergent_config/templates/app/flex/com/fourD/animators/FourDTweenCollection.mxml +50 -0
  176. data/rails_generators/emergent_config/templates/app/flex/com/fourD/animators/IAnimator.as +39 -0
  177. data/rails_generators/emergent_config/templates/app/flex/com/fourD/animators/TweenMaxAnimator.as +269 -0
  178. data/rails_generators/emergent_config/templates/app/flex/com/fourD/cameras/AstroCamera.as +177 -0
  179. data/rails_generators/emergent_config/templates/app/flex/com/fourD/components/FourDDataGrid.mxml +105 -0
  180. data/rails_generators/emergent_config/templates/app/flex/com/fourD/components/FourDItemRenderer.mxml +54 -0
  181. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/CenterPerspectiveProjection.as +72 -0
  182. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/ComplexCondition.as +44 -0
  183. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/ConditionsUtil.as +82 -0
  184. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/FourDComponent.as +309 -0
  185. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/InstanceMethodInvoker.as +50 -0
  186. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/InstancePropertyInjector.as +43 -0
  187. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/MethodCaller.as +51 -0
  188. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Pathway.as +10 -0
  189. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/PathwayEvent.as +28 -0
  190. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Pheron.as +34 -0
  191. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Pheron2.as +41 -0
  192. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/PheronReceptor.as +125 -0
  193. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Properties.as +57 -0
  194. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Router.as +50 -0
  195. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/RouterUtil.as +70 -0
  196. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/SimpleCondition.as +42 -0
  197. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/SimpleZSortVO.as +1 -0
  198. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/SimpleZSorter.as +1 -0
  199. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Tecton.as +70 -0
  200. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Tecton2.as +234 -0
  201. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonCache.as +111 -0
  202. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonEvent.as +39 -0
  203. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonMap.as +515 -0
  204. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonMap2.as +289 -0
  205. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonMapSample.mxml +73 -0
  206. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonReceptor.as +43 -0
  207. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonScope.as +38 -0
  208. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonScopeProperties.as +18 -0
  209. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonUtils.as +51 -0
  210. data/rails_generators/emergent_config/templates/app/flex/com/fourD/events/LayoutActionEvent.as +75 -0
  211. data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/CarouselLayout.as +85 -0
  212. data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/CircleLayout.as +102 -0
  213. data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/CoverFlowLayout.as +136 -0
  214. data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/FourDLayout.as +272 -0
  215. data/rails_generators/emergent_config/templates/app/flex/com/fourD/utils/TweenUtil.as +110 -0
  216. data/rails_generators/emergent_config/templates/app/helpers/accounts_helper.rb +93 -0
  217. data/rails_generators/emergent_config/templates/app/helpers/application_helper.rb +3 -0
  218. data/rails_generators/emergent_config/templates/app/models/account.rb +84 -0
  219. data/rails_generators/emergent_config/templates/app/models/account_mailer.rb +24 -0
  220. data/rails_generators/emergent_config/templates/app/models/account_observer.rb +17 -0
  221. data/rails_generators/emergent_config/templates/app/models/address.rb +2 -0
  222. data/rails_generators/emergent_config/templates/app/models/asset.rb +6 -0
  223. data/rails_generators/emergent_config/templates/app/models/asset_assignment.rb +4 -0
  224. data/rails_generators/emergent_config/templates/app/models/category.rb +35 -0
  225. data/rails_generators/emergent_config/templates/app/models/comment.rb +98 -0
  226. data/rails_generators/emergent_config/templates/app/models/content.rb +89 -0
  227. data/rails_generators/emergent_config/templates/app/models/content_assignment.rb +21 -0
  228. data/rails_generators/emergent_config/templates/app/models/image.rb +3 -0
  229. data/rails_generators/emergent_config/templates/app/models/post.rb +76 -0
  230. data/rails_generators/emergent_config/templates/app/models/section.rb +97 -0
  231. data/rails_generators/emergent_config/templates/app/models/site.rb +1 -0
  232. data/rails_generators/emergent_config/templates/app/models/tag.rb +1 -0
  233. data/rails_generators/emergent_config/templates/app/models/user.rb +4 -0
  234. data/rails_generators/emergent_config/templates/app/views/account_mailer/activation.erb +3 -0
  235. data/rails_generators/emergent_config/templates/app/views/account_mailer/signup_notification.erb +8 -0
  236. data/rails_generators/emergent_config/templates/config/Capfile +4 -0
  237. data/rails_generators/emergent_config/templates/config/README.txt +18 -0
  238. data/rails_generators/emergent_config/templates/config/deploy.rb +36 -0
  239. data/rails_generators/emergent_config/templates/config/routes.rb +72 -0
  240. data/rails_generators/emergent_config/templates/core/actionscript.properties +16 -0
  241. data/rails_generators/emergent_config/templates/core/actionscriptair.properties +16 -0
  242. data/rails_generators/emergent_config/templates/core/app.yaml.erb +12 -0
  243. data/rails_generators/emergent_config/templates/core/default_tasks.rake +51 -0
  244. data/rails_generators/emergent_config/templates/core/emergent_tasks.rake +42 -0
  245. data/rails_generators/emergent_config/templates/core/empty.txt +0 -0
  246. data/rails_generators/emergent_config/templates/core/expressInstall.swf +0 -0
  247. data/rails_generators/emergent_config/templates/core/flex.properties +2 -0
  248. data/rails_generators/emergent_config/templates/core/generate.rb +17 -0
  249. data/rails_generators/emergent_config/templates/core/html-template/AC_OETags.js +276 -0
  250. data/rails_generators/emergent_config/templates/core/html-template/history/history.css +6 -0
  251. data/rails_generators/emergent_config/templates/core/html-template/history/history.js +645 -0
  252. data/rails_generators/emergent_config/templates/core/html-template/history/historyFrame.html +29 -0
  253. data/rails_generators/emergent_config/templates/core/html-template/index.template.html +121 -0
  254. data/rails_generators/emergent_config/templates/core/html-template/playerProductInstall.swf +0 -0
  255. data/rails_generators/emergent_config/templates/core/index.html.erb +18 -0
  256. data/rails_generators/emergent_config/templates/core/index.yaml +11 -0
  257. data/rails_generators/emergent_config/templates/core/mainair-app.xml +134 -0
  258. data/rails_generators/emergent_config/templates/core/mainapp-config.xml +21 -0
  259. data/rails_generators/emergent_config/templates/core/mainapp.mxml +101 -0
  260. data/rails_generators/emergent_config/templates/core/project-textmate.erb +52 -0
  261. data/rails_generators/emergent_config/templates/core/project.properties +18 -0
  262. data/rails_generators/emergent_config/templates/core/projectair.properties +24 -0
  263. data/rails_generators/emergent_config/templates/core/restfulx.yml +14 -0
  264. data/rails_generators/emergent_config/templates/core/restfulx_tasks.rake +6 -0
  265. data/rails_generators/emergent_config/templates/core/swfobject.js +5 -0
  266. data/rails_generators/emergent_config/templates/db/migrate/create_accounts.rb +40 -0
  267. data/rails_generators/emergent_config/templates/db/migrate/create_addresses.rb +18 -0
  268. data/rails_generators/emergent_config/templates/db/migrate/create_asset_assignments.rb +19 -0
  269. data/rails_generators/emergent_config/templates/db/migrate/create_assets.rb +20 -0
  270. data/rails_generators/emergent_config/templates/db/migrate/create_content_assignments.rb +26 -0
  271. data/rails_generators/emergent_config/templates/db/migrate/create_contents.rb +21 -0
  272. data/rails_generators/emergent_config/templates/db/migrate/create_sessions.rb +16 -0
  273. data/rails_generators/emergent_config/templates/db/migrate/create_sites.rb +27 -0
  274. data/rails_generators/emergent_config/templates/db/migrate/create_users.rb +15 -0
  275. data/rails_generators/emergent_config/templates/lib/analytics.swc +0 -0
  276. data/rails_generators/emergent_config/templates/lib/app_controller.rb.erb +26 -0
  277. data/rails_generators/emergent_config/templates/lib/as3corelib-0.92.1.swc +0 -0
  278. data/rails_generators/emergent_config/templates/lib/as3crypto-1.3patched.swc +0 -0
  279. data/rails_generators/emergent_config/templates/lib/as3crypto.swc +0 -0
  280. data/rails_generators/emergent_config/templates/lib/as3ds-1.04.swc +0 -0
  281. data/rails_generators/emergent_config/templates/lib/as3httpclientlib-1.0.swc +0 -0
  282. data/rails_generators/emergent_config/templates/lib/authenticated_system.rb +189 -0
  283. data/rails_generators/emergent_config/templates/lib/authenticated_test_helper.rb +11 -0
  284. data/rails_generators/emergent_config/templates/lib/containerEx.swc +0 -0
  285. data/rails_generators/emergent_config/templates/lib/flare.swc +0 -0
  286. data/rails_generators/emergent_config/templates/lib/flash_session_hack.rb +27 -0
  287. data/rails_generators/emergent_config/templates/lib/flex2BrowserManager.swc +0 -0
  288. data/rails_generators/emergent_config/templates/lib/flexlib.swc +0 -0
  289. data/rails_generators/emergent_config/templates/lib/fluint.swc +0 -0
  290. data/rails_generators/emergent_config/templates/lib/mate_0_8_6_enhanced.swc +0 -0
  291. data/rails_generators/emergent_config/templates/lib/openflux.swc +0 -0
  292. data/rails_generators/emergent_config/templates/lib/pv3d.swc +0 -0
  293. data/rails_generators/emergent_config/templates/lib/restfulx.swc +0 -0
  294. data/rails_generators/emergent_config/templates/lib/site_keys.rb +38 -0
  295. data/rails_generators/emergent_config/templates/lib/tweenMax.swc +0 -0
  296. data/rails_generators/emergent_config/templates/lib/urlkitFlex3.swc +0 -0
  297. data/rails_generators/emergent_config/templates/shell_script +31 -0
  298. data/rails_generators/emergent_controller/USAGE +5 -0
  299. data/rails_generators/emergent_controller/emergent_controller_generator.rb +25 -0
  300. data/rails_generators/emergent_controller/templates/controller.as.erb +37 -0
  301. data/rails_generators/emergent_core/USAGE +5 -0
  302. data/rails_generators/emergent_core/emergent_core_generator.rb +157 -0
  303. data/rails_generators/emergent_iphone/USAGE +5 -0
  304. data/rails_generators/emergent_iphone/emergent_iphone_generator.rb +27 -0
  305. data/rails_generators/emergent_scaffold/USAGE +5 -0
  306. data/rails_generators/emergent_scaffold/emergent_scaffold_generator.rb +157 -0
  307. data/rails_generators/emergent_scaffold/templates/component.mxml.erb +101 -0
  308. data/rails_generators/emergent_scaffold/templates/controller.rb.erb +101 -0
  309. data/rails_generators/emergent_scaffold/templates/edit_index_view.mxml.erb +114 -0
  310. data/rails_generators/emergent_scaffold/templates/edit_show_view.mxml.erb +84 -0
  311. data/rails_generators/emergent_scaffold/templates/filter_view.mxml.erb +1 -0
  312. data/rails_generators/emergent_scaffold/templates/fixtures.yml.erb +128 -0
  313. data/rails_generators/emergent_scaffold/templates/index_view.mxml.erb +58 -0
  314. data/rails_generators/emergent_scaffold/templates/item_renderer.mxml.erb +53 -0
  315. data/rails_generators/emergent_scaffold/templates/manager.as.erb +31 -0
  316. data/rails_generators/emergent_scaffold/templates/migration.rb.erb +22 -0
  317. data/rails_generators/emergent_scaffold/templates/model.as.erb +42 -0
  318. data/rails_generators/emergent_scaffold/templates/model.rb.erb +11 -0
  319. data/rails_generators/emergent_scaffold/templates/presentation_model.as.erb +33 -0
  320. data/rails_generators/emergent_scaffold/templates/presenter.as.erb +98 -0
  321. data/rails_generators/emergent_scaffold/templates/show_view.mxml.erb +50 -0
  322. data/rails_generators/emergent_scaffold/templates/view_map.mxml.erb +40 -0
  323. data/rails_generators/emergent_scaffold/templates/views_panel.mxml.erb +64 -0
  324. data/rails_generators/emergent_styler/USAGE +5 -0
  325. data/rails_generators/emergent_styler/emergent_styler_generator.rb +21 -0
  326. data/rails_generators/rx_yaml_scaffold/USAGE +51 -0
  327. data/rails_generators/rx_yaml_scaffold/rx_yaml_scaffold_generator.rb +49 -0
  328. data/script/console +10 -0
  329. data/script/destroy +14 -0
  330. data/script/generate +14 -0
  331. data/spec/emergent_core_spec.rb +7 -0
  332. data/spec/spec_helper.rb +16 -0
  333. data/tasks/ann.rake +80 -0
  334. data/tasks/bones.rake +20 -0
  335. data/tasks/gem.rake +201 -0
  336. data/tasks/git.rake +40 -0
  337. data/tasks/manifest.rake +48 -0
  338. data/tasks/notes.rake +27 -0
  339. data/tasks/post_load.rake +39 -0
  340. data/tasks/rdoc.rake +50 -0
  341. data/tasks/rubyforge.rake +55 -0
  342. data/tasks/setup.rb +279 -0
  343. data/tasks/spec.rake +54 -0
  344. data/tasks/svn.rake +47 -0
  345. data/tasks/test.rake +40 -0
  346. data/test/test_emergent_core.rb +0 -0
  347. data/test/test_emergent_iphone_generator.rb +46 -0
  348. data/test/test_generator_helper.rb +29 -0
  349. metadata +437 -0
@@ -0,0 +1,169 @@
1
+ /* Copyright 2008 Theo Hultberg/Iconara */
2
+
3
+ package <%= base_package %>.models.presentation
4
+ {
5
+ import flash.events.IEventDispatcher;
6
+ import flash.events.EventDispatcher;
7
+
8
+ import mx.collections.ICollectionView;
9
+ import mx.collections.ArrayCollection;
10
+
11
+ import mx.events.CollectionEvent;
12
+ import mx.events.CollectionEventKind;
13
+
14
+ import <%= base_package %>.models.domain.Document;
15
+ import <%= base_package %>.models.constant.DocumentType;
16
+
17
+ import <%= base_package %>.controllers.event.DocumentEvent;
18
+
19
+ /**
20
+ * The presentation model of MainView.
21
+ *
22
+ * The dispatcher, currentDocument, documents and openDocuments proeprties are injected by
23
+ * the application controller.
24
+ *
25
+ * See DocumentModel for more info on how presentation models work.
26
+ */
27
+ public class DocumentsModel extends EventDispatcher {
28
+
29
+ private var _currentDocument:Document;
30
+
31
+ private var _documents:ICollectionView;
32
+
33
+
34
+ /** This property is injected by the application. */
35
+ public var dispatcher:IEventDispatcher;
36
+
37
+
38
+ /** This property is injected by the application. */
39
+ [Bindable(event="documentsChanged")]
40
+ public function get documents():ICollectionView {
41
+ return _documents;
42
+ }
43
+
44
+ public function set documents( value:ICollectionView ):void {
45
+ if ( _documents != value ) {
46
+ if ( _documents != null ) {
47
+ _documents.removeEventListener(CollectionEvent.COLLECTION_CHANGE, onDocumentsChanged);
48
+ }
49
+
50
+ _documents = value;
51
+
52
+ if ( _documents != null ) {
53
+ _documents.addEventListener(CollectionEvent.COLLECTION_CHANGE, onDocumentsChanged);
54
+ }
55
+
56
+ dispatchEvent(new Event("documentsChanged"));
57
+ }
58
+ }
59
+
60
+ /** This property is injected by the application. */
61
+ [Bindable]
62
+ public var openDocuments:ICollectionView;
63
+
64
+ /** This property is injected by the application. */
65
+ [Bindable(event="currentDocumentChanged")]
66
+ public function get currentDocument():Document {
67
+ return _currentDocument;
68
+ }
69
+
70
+ public function set currentDocument( value:Document ):void {
71
+ _currentDocument = value;
72
+
73
+ dispatchEvent(new Event("currentDocumentChanged"));
74
+ }
75
+
76
+ [Bindable(event="documentsChanged")]
77
+ public function get openSelectorEnabled():Boolean {
78
+ return documents != null && documents.length > 0;
79
+ }
80
+
81
+ [Bindable(event="currentDocumentChanged")]
82
+ public function get closeButtonEnabled():Boolean {
83
+ return _currentDocument != null;
84
+ }
85
+
86
+ [Bindable(event="currentDocumentChanged")]
87
+ public function get deleteButtonEnabled():Boolean {
88
+ return _currentDocument != null;
89
+ }
90
+
91
+
92
+ /**
93
+ * Listener for CollectionEvent.COLLECTION_CHANGE events on the documents collection.
94
+ * Makes sure that the bindings of all properties that depend on the documents collection are triggered.
95
+ */
96
+ private function onDocumentsChanged( event:CollectionEvent ):void {
97
+ dispatchEvent(new Event("documentsChanged"));
98
+ }
99
+
100
+ /**
101
+ * Returns whether or not the specified document is open. Should be used by the view
102
+ * instead of querying the openDocuments collection directly.
103
+ */
104
+ public function isOpen( document:Document ):Boolean {
105
+ if ( openDocuments != null ) {
106
+ return openDocuments.contains(document);
107
+ } else {
108
+ return false;
109
+ }
110
+ }
111
+
112
+ /**
113
+ * Notifies the application that the user has requested that a document should be opened.
114
+ */
115
+ public function openDocument( document:Document ):void {
116
+ var event:DocumentEvent = new DocumentEvent(DocumentEvent.OPEN);
117
+
118
+ event.reference = document;
119
+
120
+ dispatcher.dispatchEvent(event);
121
+ }
122
+
123
+ /**
124
+ * Notifies the application that the user has requested the creation of a new plain document.
125
+ */
126
+ public function newPlainDocument():void {
127
+ var event:DocumentEvent = new DocumentEvent(DocumentEvent.CREATE_NEW);
128
+
129
+ event.documentType = DocumentType.PLAIN;
130
+
131
+ dispatcher.dispatchEvent(event);
132
+ }
133
+
134
+ /**
135
+ * Notifies the application that the user has requested the creation of a new rich text document.
136
+ */
137
+ public function newRichDocument():void {
138
+ var event:DocumentEvent = new DocumentEvent(DocumentEvent.CREATE_NEW);
139
+
140
+ event.documentType = DocumentType.RICH;
141
+
142
+ dispatcher.dispatchEvent(event);
143
+ }
144
+
145
+ /**
146
+ * Notifies the application that the user has requested that the current document should be deleted.
147
+ */
148
+ public function deleteCurrentDocument():void {
149
+ var event:DocumentEvent = new DocumentEvent(DocumentEvent.DELETE);
150
+
151
+ event.reference = currentDocument;
152
+
153
+ dispatcher.dispatchEvent(event);
154
+ }
155
+
156
+ /**
157
+ * Notifies the application that the user has requested that the current document should be closed.
158
+ */
159
+ public function closeCurrentDocument():void {
160
+ var event:DocumentEvent = new DocumentEvent(DocumentEvent.CLOSE);
161
+
162
+ event.reference = currentDocument;
163
+
164
+ dispatcher.dispatchEvent(event);
165
+ }
166
+
167
+ }
168
+
169
+ }
@@ -0,0 +1,23 @@
1
+ package <%= base_package %>.models.presentation {
2
+
3
+ import flash.events.Event;
4
+ import flash.events.IOErrorEvent;
5
+
6
+ import <%= base_package %>.models.presentation.ContentModel;
7
+ import <%= base_package %>.models.constant.Resource;
8
+ import <%= base_package %>.models.domain.Content;
9
+ import <%= base_package %>.models.domain.ContentAssignment;
10
+ import <%= base_package %>.models.domain.AssetAssignment;
11
+
12
+ import org.restfulx.utils.RxFileReference;
13
+
14
+ // Pages and components should extend this
15
+ public class HomeModel extends ContentModel {
16
+
17
+ public function HomeModel() {
18
+ target = new Content();
19
+ contentAssignment = new ContentAssignment();
20
+ assetAssignment = new AssetAssignment();
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,35 @@
1
+ package <%= base_package %>.models.presentation {
2
+
3
+ import flash.events.Event;
4
+ import flash.events.IOErrorEvent;
5
+
6
+ import <%= base_package %>.models.constant.Resource;
7
+ import <%= base_package %>.models.presentation.ResourceModel;
8
+ import <%= base_package %>.models.domain.Content;
9
+ import <%= base_package %>.models.domain.ContentAssignment;
10
+ import <%= base_package %>.models.domain.AssetAssignment;
11
+
12
+ import org.restfulx.utils.RxFileReference;
13
+
14
+ // Pages and components should extend this
15
+ public class MainModel extends ContentModel {
16
+
17
+ [Bindable] public var login:Boolean;
18
+ [Bindable] public var logout:Boolean;
19
+
20
+ private var _cmsMode:Boolean;
21
+ /** This property is injected by the application. */
22
+ public function set cmsMode(value:Boolean):void {
23
+ _cmsMode = value;
24
+
25
+ dispatchEvent(new Event("cmsModeChanged"));
26
+ }
27
+
28
+ [Bindable] public var gotoProfile:Boolean;
29
+
30
+ [Bindable] public var gotoAccount:Boolean;
31
+
32
+ public function MainModel() {
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,44 @@
1
+ package <%= base_package %>.models.presentation {
2
+
3
+ import flash.events.Event;
4
+ import flash.events.IOErrorEvent;
5
+
6
+ import mx.collections.ArrayCollection;
7
+ import mx.collections.ICollectionView;
8
+
9
+ import <%= base_package %>.models.presentation.ContentModel;
10
+ import <%= base_package %>.models.domain.Content;
11
+ import <%= base_package %>.models.domain.ContentAssignment;
12
+ import <%= base_package %>.models.domain.AssetAssignment;
13
+
14
+ import org.restfulx.utils.RxFileReference;
15
+
16
+ // Pages and components should extend this
17
+ public class PagesModel extends ContentModel {
18
+
19
+ private var _pages:ArrayCollection; [Bindable]
20
+ public function get pages():ArrayCollection { return _pages; }
21
+ public function set pages(value:ArrayCollection):void {
22
+ _pages = value;
23
+ }
24
+
25
+ /** This property is injected by the application. */
26
+ [Bindable]
27
+ public var openPages:ICollectionView;
28
+
29
+ private var _currentPage:Content;
30
+ /** This property is injected by the application. */
31
+ [Bindable(event="currentDocumentChanged")]
32
+ public function get currentPage():Content {
33
+ return _currentPage;
34
+ }
35
+
36
+ public function set currentPage(value:Content):void {
37
+ _currentPage = value;
38
+ dispatchEvent(new Event("currentDocumentChanged"));
39
+ }
40
+
41
+ public function PagesModel() {
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,99 @@
1
+ package <%= base_package %>.models.presentation {
2
+
3
+ import flash.events.Event;
4
+ import flash.events.IOErrorEvent;
5
+
6
+ import org.restfulx.utils.RxFileReference;
7
+
8
+ import <%= base_package %>.controllers.event.ResourceEvent;
9
+ import <%= base_package %>.models.constant.Resource;
10
+ import <%= base_package %>.models.presentation.ResourceModel;
11
+ import <%= base_package %>.models.domain.User;
12
+ import <%= base_package %>.models.domain.Account;
13
+ import <%= base_package %>.models.domain.Address;
14
+
15
+ public class ProfileModel extends ResourceModel {
16
+
17
+ /** Injector targets */
18
+ [Bindable] public var accountEvent:ResourceEvent;
19
+ [Bindable] public var addressEvent:ResourceEvent;
20
+ [Bindable] public var userEvent:ResourceEvent;
21
+
22
+ private var accountDirty:Boolean;
23
+ private var addressDirty:Boolean;
24
+ private var userDirty:Boolean;
25
+ private var profileDirty:Boolean;
26
+
27
+ [Bindable] public var profileInvalid:Boolean;
28
+
29
+ private var photo:RxFileReference;
30
+
31
+ private var _user:User; [Bindable]
32
+ public function get currentUser():User { return _user; }
33
+ public function set currentUser(value:User):void {
34
+ _user = value;
35
+ }
36
+
37
+ public function setAccountDirty():void {
38
+ accountDirty = true;
39
+ profileDirty = true;
40
+ }
41
+
42
+ public function setAddressDirty():void {
43
+ addressDirty = true;
44
+ profileDirty = true;
45
+ }
46
+
47
+ public function setUserDirty():void {
48
+ userDirty = true;
49
+ profileDirty = true;
50
+ }
51
+
52
+ [Bindable]
53
+ public function get submitButtonEnabled():Boolean {
54
+ return profileDirty;
55
+ }
56
+
57
+ public function ProfileModel() {
58
+ }
59
+
60
+ public function saveProfile():void {
61
+ if (photo)
62
+ if (addressDirty) {
63
+ save(currentUser.address, addressEvent);
64
+ }
65
+ if (accountDirty) {
66
+ save(currentUser.account, accountEvent);
67
+ }
68
+ if (userDirty) {
69
+ save(currentUser, userEvent);
70
+ }
71
+ }
72
+
73
+ public function chooseFile():void {
74
+ photo = new RxFileReference("avatar");
75
+ photo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler, false, 0, true);
76
+ photo.addEventListener(Event.SELECT, selectFile, false, 0, true);
77
+ photo.addEventListener(Event.CANCEL, cancelBrowse, false, 0, true);
78
+ photo.browse();
79
+ }
80
+
81
+ private function selectFile(event:Event):void {
82
+ fileSelected(event)
83
+ }
84
+
85
+ private function cancelBrowse(event:Event):void {
86
+ photo = null;
87
+ }
88
+
89
+ private function fileSelected(event:Event):void {
90
+ currentUser.account.attachment = photo;
91
+ accountDirty = true;
92
+ saveProfile();
93
+ }
94
+
95
+ private function ioErrorHandler(event:Event):void {
96
+ photo = null;
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,100 @@
1
+ package <%= base_package %>.models.presentation {
2
+
3
+ import <%= base_package %>.controllers.event.ResourceEvent;
4
+ import <%= base_package %>.models.constant.ResourceAction;
5
+
6
+ import flash.events.Event;
7
+ import flash.events.EventDispatcher;
8
+ import flash.events.IEventDispatcher;
9
+
10
+ import mx.events.CollectionEvent;
11
+
12
+ import org.restfulx.models.RxModel;
13
+
14
+ public class ResourceModel extends EventDispatcher {
15
+
16
+ /** This property is injected by the application. */
17
+ public var dispatcher:IEventDispatcher;
18
+
19
+ private var _model:RxModel; [Bindable]
20
+ public function get model():RxModel { return _model; }
21
+ public function set model(value:RxModel):void {
22
+ _model = value;
23
+ }
24
+
25
+ [Bindable]
26
+ public function get saveButtonEnabled():Boolean {
27
+ return _model != null;
28
+ }
29
+
30
+ [Bindable]
31
+ public function get destroyButtonEnabled():Boolean {
32
+ return _model != null;
33
+ }
34
+
35
+ public function ResourcesModel() {
36
+ }
37
+
38
+ public function open(resource:*, binder:*=null):void {
39
+ var event:ResourceEvent = new ResourceEvent(ResourceAction.OPEN);
40
+
41
+ event.data = resource;
42
+
43
+ binder = event;
44
+ //dispatcher.dispatchEvent(event);
45
+ }
46
+
47
+ public function newResource(binder:*=null):void {
48
+ var event:ResourceEvent = new ResourceEvent(ResourceAction.NEW);
49
+
50
+ binder = event;
51
+ //dispatcher.dispatchEvent(event);
52
+ }
53
+
54
+ public function save(resource:*, binder:*=null):void {
55
+ if (resource.id) {
56
+ update(resource, binder);
57
+ } else {
58
+ create(resource, binder);
59
+ }
60
+ }
61
+
62
+ public function create(resource:*, binder:*=null):void {
63
+ var event:ResourceEvent = new ResourceEvent(ResourceAction.CREATE);
64
+
65
+ event.data = resource;
66
+
67
+ inject(event, binder);
68
+ }
69
+
70
+ public function update(resource:*, binder:*=null):void {
71
+ var event:ResourceEvent = new ResourceEvent(ResourceAction.UPDATE);
72
+
73
+ event.data = resource;
74
+
75
+ inject(event, binder);
76
+ }
77
+
78
+ public function destroy(resource:*, binder:*=null):* {
79
+ var event:ResourceEvent = new ResourceEvent(ResourceAction.DESTROY);
80
+
81
+ event.data = resource;
82
+
83
+ inject(event, binder);
84
+ }
85
+
86
+ protected function inject(event:*, binder:*=null):void {
87
+ if (binder !== null) {
88
+ binder = event;
89
+ } else {
90
+ dispatcher.dispatchEvent(event);
91
+ }
92
+ }
93
+
94
+ //-Boolean Methods...
95
+
96
+ /* public function canDelete(resource:RxModel):Boolean {
97
+ return resource != null && resource.id != 0;
98
+ } */
99
+ }
100
+ }
@@ -0,0 +1,105 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <core:EmergentComponent xmlns:core="com.fourD.emergent.core.*"
3
+ xmlns="http://ns.adobe.com/mxml/2009"
4
+ xmlns:layouts="com.fourD.layouts.*"
5
+ xmlns:actions="com.fourD.actions.*"
6
+ xmlns:presentation="<%= base_package %>.models.presentation.*"
7
+ width="100%" height="100%" pivotX="center" pivotY="center">
8
+
9
+ <Script>
10
+ <![CDATA[
11
+ import flash.text.engine.TypographicCase;
12
+
13
+ ]]>
14
+ </Script>
15
+
16
+ <Declarations>
17
+ <presentation:AboutUsModel id="model"/>
18
+ <Array id="typoArray">
19
+ <Object label="{TypographicCase.CAPS}" />
20
+ <Object label="{TypographicCase.CAPS_AND_SMALL_CAPS}" />
21
+ <Object label="{TypographicCase.DEFAULT}" />
22
+ <Object label="{TypographicCase.LOWERCASE}" />
23
+ <Object label="{TypographicCase.SMALL_CAPS}" />
24
+ <Object label="{TypographicCase.TITLE}" />
25
+ <Object label="{TypographicCase.UPPERCASE}" />
26
+ </Array>
27
+ </Declarations>
28
+
29
+ <!-- States ___________________________________________________________________ -->
30
+
31
+ <core:states>
32
+ <State name="edit"/>
33
+ <State name="show"/>
34
+ </core:states>
35
+
36
+ <!-- GUI ______________________________________________________________________ -->
37
+
38
+ <FxPanel width="100%" height="100%">
39
+
40
+ <HBox borderStyle="solid" paddingTop="10" paddingBottom="10"
41
+ paddingLeft="10" paddingRight="10">
42
+ <Form styleName="plain" includeIn="edit">
43
+ <FormItem label="textAlign:">
44
+ <ComboBox id="textAlignComboBox"
45
+ dataProvider="[start,end,left,center,right,justify]"
46
+ selectedIndex="5" />
47
+ </FormItem>
48
+ <FormItem label="textAlignLast:">
49
+ <ComboBox id="textAlignLastComboBox"
50
+ dataProvider="[start,end,left,center,right,justify]" />
51
+ </FormItem>
52
+ <FormItem label="textJustify:">
53
+ <ComboBox id="textJustifyComboBox"
54
+ dataProvider="[distribute,interWord]" />
55
+ </FormItem>
56
+ <FormItem label="typographicCase:">
57
+ <ComboBox id="typographicCaseComboBox"
58
+ dataProvider="{typoArray}" selectedIndex="2" />
59
+ </FormItem>
60
+ <FormItem label="width:">
61
+ <HSlider id="textAreaWidthSlider"
62
+ minimum="50"
63
+ maximum="100"
64
+ value="100"
65
+ snapInterval="1"
66
+ tickInterval="2"
67
+ liveDragging="true" />
68
+ </FormItem>
69
+ <FormItem label="columnWidth:">
70
+ <HSlider id="columnWidthSlider"
71
+ minimum="100"
72
+ maximum="300"
73
+ value="200"
74
+ snapInterval="1"
75
+ tickInterval="10"
76
+ liveDragging="true" />
77
+ </FormItem>
78
+ <FormItem label="columnGap">
79
+ <HSlider id="columnGapSlider"
80
+ minimum="0"
81
+ maximum="100"
82
+ value="20"
83
+ snapInterval="1"
84
+ tickInterval="10"
85
+ liveDragging="true"/>
86
+ </FormItem>
87
+ </Form>
88
+
89
+ <FxTextArea id="textArea"
90
+ textAlign="{textAlignComboBox.selectedItem}"
91
+ textAlignLast="{textAlignLastComboBox.selectedItem}"
92
+ textJustify="{textJustifyComboBox.selectedItem}"
93
+ typographicCase="{typographicCaseComboBox.selectedItem.label}"
94
+ marginBottom="40"
95
+ percentWidth="{textAreaWidthSlider.value}"
96
+ columnWidth="{columnWidthSlider.value}"
97
+ columnGap="{columnGapSlider.value}"
98
+ height="100%">
99
+ <content>
100
+ <String source="assets/html/lorem.html" />
101
+ </content>
102
+ </FxTextArea>
103
+ </HBox>
104
+ </FxPanel>
105
+ </core:EmergentComponent>
@@ -0,0 +1,97 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <core:EmergentComponent xmlns:core="com.fourD.emergent.core.*"
3
+ xmlns="http://ns.adobe.com/mxml/2009"
4
+ xmlns:validators="org.restfulx.validators.*"
5
+ xmlns:layouts="com.fourD.layouts.*"
6
+ xmlns:actions="com.fourD.actions.*"
7
+ xmlns:presentation="<%= base_package %>.models.presentation.*"
8
+ width="100%" height="100%" pivotX="center" pivotY="center"
9
+ currentState="account">
10
+
11
+ <Script>
12
+ <![CDATA[
13
+ import org.restfulx.Rx;
14
+ ]]>
15
+ </Script>
16
+
17
+ <Declarations>
18
+ <presentation:AccountModel id="model"/>
19
+ <!-- Flex Validators -->
20
+ <StringValidator source="{signUpUsername}" property="text"
21
+ minLength="1" invalid="model.signUpFormDirty = true"/>
22
+ <EmailValidator source="{signUpEmail}" property="text" invalid="model.signUpFormDirty = true"/>
23
+ <RegExpValidator source="{signUpPasswordConfirmation}"
24
+ property="text" expression="{signUpPassword.text}" noMatchError="Passwords do not match"
25
+ invalid="model.signUpFormDirty = true" valid="model.signUpFormDirty = false"/>
26
+
27
+ <!-- Proxies for Rails Validators -->
28
+ <validators:ServiceErrorValidator id="signUpLoginNameValidator" field="login" listener="{signUpUsername}"
29
+ serviceErrors="{Rx.models.errors}"/>
30
+ <validators:ServiceErrorValidator id="signUpPasswordValidator" field="password" listener="{signUpPassword}"
31
+ serviceErrors="{Rx.models.errors}"/>
32
+ </Declarations>
33
+
34
+ <!-- States ___________________________________________________________________ -->
35
+
36
+ <core:states>
37
+ <State name="account"/>
38
+ <State name="accountConfirmation"/>
39
+ </core:states>
40
+
41
+ <!-- GUI ______________________________________________________________________ -->
42
+
43
+ <VBox width="100%" height="100%">
44
+ <Canvas id="signUpView" width="100%" height="100%">
45
+ <Form verticalCenter="0" horizontalCenter="0" id="signUpForm" borderStyle="solid">
46
+ <Canvas backgroundColor="#000000" width="100%" height="50">
47
+ <Label text="Pomodo / Sign Up" styleName="appTitle" x="4" y="2" selectable="false"/>
48
+ <Label text="Agile time tracking for everyone" styleName="appDescription" x="4" y="27" selectable="false"/>
49
+ </Canvas>
50
+ <FormItem label="Username" required="true">
51
+ <TextInput id="signUpUsername" width="190"
52
+ change="{model.account.login = signUpUsername.text}"/>
53
+ </FormItem>
54
+ <FormItem label="First Name" required="true">
55
+ <TextInput id="signUpFirstName" width="190"
56
+ change="{model.account.firstName = signUpFirstName.text}"/>
57
+ </FormItem>
58
+ <FormItem label="Last Name" required="true">
59
+ <TextInput id="signUpLastName" width="190"
60
+ change="{model.account.lastName = signUpLastName.text}"/>
61
+ </FormItem>
62
+ <FormItem label="Email" required="true">
63
+ <TextInput id="signUpEmail" width="190"
64
+ change="{model.account.email = signUpEmail.text}"/>
65
+ </FormItem>
66
+ <FormItem label="Password" required="true">
67
+ <TextInput id="signUpPassword" width="190" displayAsPassword="true"
68
+ change="{model.account.password = signUpPassword.text}"/>
69
+ </FormItem>
70
+ <FormItem label="Confirm" required="true">
71
+ <TextInput id="signUpPasswordConfirmation" width="190" displayAsPassword="true"
72
+ change="{model.account.passwordConfirmation = signUpPasswordConfirmation.text}"
73
+ keyDown="model.signUpOnEnter(event)"/>
74
+ </FormItem>
75
+ <FormItem label="Photo:" width="100%" id="photoChooser"
76
+ errorString="{model.photoErrorString}">
77
+ <Button label="Browse…" id="photoBrowseButton" click="model.chooseFile()" />
78
+ <Label text="{model.photoFileName}" maxWidth="190" />
79
+ </FormItem>
80
+ <FormItem label="">
81
+ <Button label="Sign Up" click="model.signUp()" keyDown="model.signUpOnEnter(event)" enabled="{!model.signUpFormDirty}"/>
82
+ </FormItem>
83
+ </Form>
84
+ </Canvas>
85
+ <Text text="Already have an account?"/>
86
+ <LinkButton label="Log In"/>
87
+ <Canvas id="signUpConfirmationView" width="20%" height="20%">
88
+ <Form verticalCenter="0" horizontalCenter="0" borderStyle="solid">
89
+ <Canvas backgroundColor="#000000" width="100%" height="50">
90
+ <Label text="Lance3 / Thank You" styleName="appTitle" x="4" y="2" selectable="false"/>
91
+ <Label text="The Emergent Vision" styleName="appDescription" x="4" y="27" selectable="false"/>
92
+ </Canvas>
93
+ <Text text="Thanks for signing up! We're sending you an email with your activation code." width="100%"/>
94
+ </Form>
95
+ </Canvas>
96
+ </VBox>
97
+ </core:EmergentComponent>