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,25 @@
1
+ package <%= base_package %>.controllers.manager {
2
+
3
+ import <%= base_package %>.models.domain.Content;
4
+
5
+ import org.restfulx.Rx;
6
+ import org.restfulx.collections.ModelsCollection;
7
+
8
+ public class SiteManager extends ContentManager {
9
+
10
+ override public function set contentTree(value:ModelsCollection):void {
11
+ super.contentTree = Rx.models.index(Content);
12
+ }
13
+
14
+ public function SiteManager() {
15
+ }
16
+
17
+ override public function route(action:String, resource:Object, contentNode:String=null):void {
18
+ if (!contentNode) {
19
+ dispatchContentToManager(resource, action, contentNode);
20
+ } else {
21
+ super.route(action, resource, contentNode);
22
+ }
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,143 @@
1
+ /* Copyright 2008 Theo Hultberg/Iconara */
2
+
3
+ package <%= base_package %>.controllers.manager {
4
+
5
+ import flash.events.Event;
6
+ import flash.events.EventDispatcher;
7
+
8
+ import <%= base_package %>.controllers.command.Undoable;
9
+
10
+
11
+ /**
12
+ * The UndoManager keeps a stack of all the (undoable) commands that have
13
+ * been executed, and provides an interface for interacting with this
14
+ * command history.
15
+ *
16
+ * Once a command is undone it is placed on the redo stack, and vice-versa. If
17
+ * a command is undone and another command is added to the undo stack before
18
+ * redo is called the redo stack is cleared.
19
+ *
20
+ * The current implementation keeps an infinite history, which probably isn't
21
+ * a very good idea in the long run.
22
+ *
23
+ * The current implementation also ignores the timestamp property of Undoable,
24
+ * which is unfortunate. The timestamp makes it possible to group undoables so
25
+ * that those that were performed at almost the same time, just milliseconds
26
+ * apart, could be undone at the same time. Take typing a text as an example:
27
+ * each keystroke is an undoable action, but the user may not expect or want
28
+ * to have to undo each keystroke separately. Instead of implementing an
29
+ * algorithm that only creates an undoable command at certain intervals, this
30
+ * could be done automatically here in the undo manager by undoing all commands
31
+ * that were executed within the x milliseconds of the command that is being
32
+ * undone.
33
+ */
34
+ public class UndoManager extends EventDispatcher {
35
+
36
+ private var undoStack : Array;
37
+ private var redoStack : Array;
38
+
39
+
40
+ /** Undo is possible if there are undoable commands in the stack. */
41
+ [Bindable(event="undoChanged")]
42
+ public function get undoPossible( ) : Boolean {
43
+ return undoStack.length > 0;
44
+ }
45
+
46
+ /**
47
+ * Redo is possible if there are undoable commands in the redo stack,
48
+ * i.e. if any command have been undone.
49
+ */
50
+ [Bindable(event="undoChanged")]
51
+ public function get redoPossible( ) : Boolean {
52
+ return redoStack.length > 0;
53
+ }
54
+
55
+ /**
56
+ * Returns a copy of the undo stack. This can be used to display the undo
57
+ * history and provide a way to jump multiple steps back in the undo history at once.
58
+ *
59
+ * The commands in the history are sorted from the oldest to the newest.
60
+ */
61
+ [Bindable(event="undoChanged")]
62
+ public function get history( ) : Array {
63
+ return undoStack.slice();
64
+ }
65
+
66
+
67
+ public function UndoManager( ) {
68
+ undoStack = [ ];
69
+ redoStack = [ ];
70
+ }
71
+
72
+ private function dispatchUndoChanged( ) : void {
73
+ dispatchEvent(new Event("undoChanged"));
74
+ }
75
+
76
+ /**
77
+ * Once an undoable command is executed it should be added to the undo manager using
78
+ * this method.
79
+ *
80
+ * This method clears the redo stack, because adding a new undoable after and undo forks
81
+ * the undo history, and the state of the application is no longer the same as it was when
82
+ * the commands on the redo stack were executed originally.
83
+ */
84
+ public function addUndoable( undoable : Undoable ) : void {
85
+ undoStack.push(undoable);
86
+ redoStack = [ ];
87
+
88
+ dispatchUndoChanged();
89
+ }
90
+
91
+ /**
92
+ * This method provides a way to jump an arbitrary number of steps back in the undo history.
93
+ */
94
+ public function restore( undoable : Undoable ) : void {
95
+ if ( undoStack.indexOf(undoable) > -1 ) {
96
+ while ( redoStack[redoStack.length - 1] != undoable ) {
97
+ // undo until the newest command on the redo stack is the target command
98
+
99
+ undo();
100
+
101
+ // this could most certainly be implemented more efficiently, for example
102
+ // placing all commands on the undo stack on the redo stack until the
103
+ // target undoable was found, call undo on that command and place it on
104
+ // the redo stack, but we'll save that for when we see the need
105
+ }
106
+ } else {
107
+ throw new ArgumentError("Cannot restore because the undoable object specified is not part of the undo history");
108
+ }
109
+ }
110
+
111
+ /**
112
+ * Undo the most recently added command. The command is placed on the redo stack.
113
+ */
114
+ public function undo( ) : void {
115
+ if ( undoPossible ) {
116
+ var command : Undoable = undoStack.pop();
117
+
118
+ command.undo();
119
+
120
+ redoStack.push(command);
121
+
122
+ dispatchUndoChanged();
123
+ }
124
+ }
125
+
126
+ /**
127
+ * Redo the most recently undone command. The command is placed on the undo stack.
128
+ */
129
+ public function redo( ) : void {
130
+ if ( redoPossible ) {
131
+ var command : Undoable = redoStack.pop();
132
+
133
+ command.redo();
134
+
135
+ undoStack.push(command);
136
+
137
+ dispatchUndoChanged();
138
+ }
139
+ }
140
+
141
+ }
142
+
143
+ }
@@ -0,0 +1,123 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+
3
+ <!-- Copyright 2008 Theo Hultberg/Iconara -->
4
+
5
+ <LocalEventMap xmlns="http://mate.asfusion.com/" xmlns:mx="http://www.adobe.com/2006/mxml">
6
+
7
+ <mx:Script>
8
+ <![CDATA[
9
+
10
+ import mx.events.FlexEvent;
11
+
12
+ import com.asfusion.mate.actionLists.IScope;
13
+
14
+
15
+ import <%= base_package %>.models.domain.Document;
16
+ import <%= base_package %>.models.presentation.DocumentModel;
17
+
18
+ import <%= base_package %>.views.document.PlainDocumentView;
19
+ import <%= base_package %>.views.document.RichDocumentView;
20
+ import <%= base_package %>.views.document.DocumentView;
21
+
22
+ import <%= base_package %>.controllers.event.DocumentEvent;
23
+ import <%= base_package %>.controllers.event.UndoEvent;
24
+ import <%= base_package %>.controllers.manager.DocumentManager;
25
+ import <%= base_package %>.controllers.manager.UndoManager;
26
+
27
+ [Bindable] public var doc:Document;
28
+
29
+ ]]>
30
+ </mx:Script>
31
+
32
+ <Debugger level="{Debugger.ALL}"/>
33
+
34
+ <!--
35
+ This is a local event map, which is different from regular event maps in some small, but crucial aspects:
36
+
37
+ - A local event map only hears events comming from the part of the application where it is defined, i.e.
38
+ from the view that declares it and all children of that view.
39
+ - By default all objects created by ObjectBuilder, MethodInvoker and other tags are local to this event map.
40
+
41
+ The reason I use a local event map here is that it makes each DocumentView into a mini-application within
42
+ the application. This is the controller for this mini-application, and the only thing it knows about is how
43
+ to manage a Document instance. The application controller has to worry about all documents, which of them are
44
+ open, which is the current, etc. but this sub-controller only needs to know about its specific document. This
45
+ makes the code here much simpler.
46
+
47
+ The events that this event map handles are also heard by the top-level event map, unless you stop their
48
+ propagation explicitly. For example the DocumentEvent.SAVE event is handled both here and in the top-level
49
+ event map. Most other events are only handled here.
50
+ -->
51
+
52
+ <EventHandlers type="{FlexEvent.PREINITIALIZE}">
53
+ <!--
54
+ A MethodInvoker is a kind of ObjectBuilder, so this creates a DocumentManager,
55
+ sets its "dispatcher" property and calls the setDocument method.
56
+ -->
57
+ <MethodInvoker generator="{DocumentManager}" method="setDocument" arguments="{[doc]}">
58
+ <Properties dispatcher="{scope.dispatcher}"/>
59
+ </MethodInvoker>
60
+
61
+ <ObjectBuilder generator="{UndoManager}"/>
62
+ </EventHandlers>
63
+
64
+ <EventHandlers type="{DocumentEvent.UPDATE}">
65
+ <MethodInvoker generator="{DocumentManager}" method="update" arguments="{[event.reference]}"/>
66
+ </EventHandlers>
67
+
68
+ <EventHandlers type="{DocumentEvent.SAVED}" dispatcherType="global">
69
+ <!--
70
+ This just tells the DocumentManager instance to remove the dirty flag for the document.
71
+
72
+ The event is dispatched by the top-level event map when the document has been successfully saved.
73
+ Notice the dispatcherType property that is set to "global", it makes it possible to listen to
74
+ events in the same way as top-level event maps can, and it makes it possible to communicate from
75
+ a top-level event map to local event maps.
76
+
77
+ To avoid reacting to events dispatched because other documents were saved there is a StopHandlers
78
+ that checks the document reference in the event and compares it to the local document, unless
79
+ they are the same the event handling will stop.
80
+ -->
81
+
82
+ <StopHandlers eventPropagation="noStop">
83
+ <stopFunction>{function( scope : IScope ) : Boolean {
84
+ return DocumentEvent(scope.event).reference != DocumentMap(scope.eventMap).doc;
85
+ }}</stopFunction>
86
+ </StopHandlers>
87
+
88
+ <MethodInvoker generator="{DocumentManager}" method="documentSaved"/>
89
+ </EventHandlers>
90
+
91
+ <EventHandlers type="{UndoEvent.UNDO}">
92
+ <MethodInvoker generator="{UndoManager}" method="undo"/>
93
+ </EventHandlers>
94
+
95
+ <EventHandlers type="{UndoEvent.REDO}">
96
+ <MethodInvoker generator="{UndoManager}" method="redo"/>
97
+ </EventHandlers>
98
+
99
+ <EventHandlers type="{UndoEvent.RESTORE}">
100
+ <MethodInvoker generator="{UndoManager}" method="restore" arguments="{event.undoable}"/>
101
+ </EventHandlers>
102
+
103
+ <EventHandlers type="{UndoEvent.ADD_UNDOABLE}">
104
+ <MethodInvoker generator="{UndoManager}" method="addUndoable" arguments="{event.undoable}"/>
105
+ </EventHandlers>
106
+
107
+
108
+ <Injectors targets="{[PlainDocumentView, RichDocumentView, DocumentView]}">
109
+ <ObjectBuilder generator="{DocumentModel}" registerTarget="true"/>
110
+
111
+ <PropertyInjector targetKey="model" source="{lastReturn}" />
112
+ </Injectors>
113
+
114
+ <Injectors target="{DocumentModel}">
115
+ <PropertyInjector targetKey="dispatcher" source="{scope.dispatcher}"/>
116
+ <PropertyInjector targetKey="document" source="{DocumentManager}" sourceKey="document"/>
117
+ <PropertyInjector targetKey="documentDirty" source="{DocumentManager}" sourceKey="documentDirty"/>
118
+ <PropertyInjector targetKey="undoPossible" source="{UndoManager}" sourceKey="undoPossible"/>
119
+ <PropertyInjector targetKey="redoPossible" source="{UndoManager}" sourceKey="redoPossible"/>
120
+ <PropertyInjector targetKey="undoHistory" source="{UndoManager}" sourceKey="history"/>
121
+ </Injectors>
122
+
123
+ </LocalEventMap>
@@ -0,0 +1,134 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+
3
+ <!-- Copyright 2008 Theo Hultberg/Iconara -->
4
+
5
+ <EventMap xmlns="http://mate.asfusion.com/" xmlns:mx="http://www.adobe.com/2006/mxml">
6
+
7
+ <mx:Script>
8
+ <![CDATA[
9
+
10
+ import mx.events.FlexEvent;
11
+
12
+ import <%= base_package %>.controllers.event.DocumentEvent;
13
+
14
+ import <%= base_package %>.controllers.manager.DocumentsManager;
15
+
16
+ import <%= base_package %>.views.document.DocumentsView;
17
+ import <%= base_package %>.models.factory.DocumentViewFactory;
18
+
19
+ import <%= base_package %>.models.presentation.DocumentsModel;
20
+
21
+ import <%= base_package %>.models.factory.DocumentFactory;
22
+
23
+ ]]>
24
+ </mx:Script>
25
+
26
+ <Debugger level="{Debugger.ALL}"/>
27
+
28
+ <!--
29
+ This is the main event map for the application, think of it as the application controller.
30
+ -->
31
+
32
+ <EventHandlers type="{FlexEvent.PREINITIALIZE}">
33
+ <!--
34
+ The FlexEvent.PREINITIALIZE event is a good place for creating and initializing managers.
35
+ -->
36
+
37
+ <ObjectBuilder generator="{DocumentFactory}"/>
38
+
39
+ <ObjectBuilder generator="{DocumentsManager}">
40
+ <!--
41
+ "lastReturn" refers to the return value of the last action, in this case the object
42
+ created by the ObjectBuilder tag above
43
+ -->
44
+ <Properties documentFactory="{lastReturn}"/>
45
+ </ObjectBuilder>
46
+ </EventHandlers>
47
+
48
+ <EventHandlers type="{FlexEvent.APPLICATION_COMPLETE}">
49
+ <!--
50
+ The FlexEvent.APPLICATION_COMPLETE is a good place to do things that need to be done just
51
+ when the application setup is finished. Think of it as the FlexEvent.CREATION_COMPLETE of
52
+ the whole application. It's a good place to load data that needs to be loaded early and
53
+ set the default navigation state.
54
+
55
+ This application doesn't load anything and has only one view, so it doesn't need to do
56
+ anything here. I have declared this EventHandlers just to add these tips.
57
+ -->
58
+ </EventHandlers>
59
+
60
+ <EventHandlers type="{DocumentEvent.CREATE_NEW}">
61
+ <MethodInvoker generator="{DocumentsManager}" method="newDocument" arguments="{event.documentType}"/>
62
+ </EventHandlers>
63
+
64
+ <EventHandlers type="{DocumentEvent.OPEN}">
65
+ <MethodInvoker generator="{DocumentsManager}" method="openDocument" arguments="{[event.reference]}"/>
66
+ </EventHandlers>
67
+
68
+ <EventHandlers type="{DocumentEvent.CLOSE}">
69
+ <MethodInvoker generator="{DocumentsManager}" method="closeDocument" arguments="{[event.reference]}"/>
70
+ </EventHandlers>
71
+
72
+ <EventHandlers type="{DocumentEvent.DELETE}">
73
+ <MethodInvoker generator="{DocumentsManager}" method="deleteDocument" arguments="{[event.reference]}"/>
74
+ </EventHandlers>
75
+
76
+ <EventHandlers type="{DocumentEvent.SAVE}">
77
+ <MethodInvoker generator="{DocumentsManager}" method="save" arguments="{[event.reference]}"/>
78
+ <!--
79
+ This application doesn't actually save documents, but if it had this would be the place to do it.
80
+
81
+ When the save is successfully completed (or just not done at all, in this case), I dispatch an
82
+ event telling anyone who listens that a document has been saved.
83
+ -->
84
+ <EventAnnouncer generator="{DocumentEvent}" type="{DocumentEvent.SAVED}">
85
+ <Properties reference="{event.reference}"/>
86
+ </EventAnnouncer>
87
+ </EventHandlers>
88
+
89
+
90
+ <Injectors target="{DocumentsView}">
91
+ <!--
92
+ This creates the Presentation Model object for the MainView, notice the registerTarget
93
+ property, which makes it possible to use Injectors that target this object, something that
94
+ otherwise is only possible with view objects.
95
+ -->
96
+ <ObjectBuilder generator="{DocumentsModel}" registerTarget="true" />
97
+
98
+ <!-- This injects the DocumentsModel instance created by the last tag into the MainView instance -->
99
+ <PropertyInjector targetKey="model" source="{lastReturn}" />
100
+
101
+ <!--
102
+ This creates a DocumentViewFactory and injects it into MainView. If more than one MainView
103
+ were to be created the same DocumentViewFactory instance would be reused, because Mate caches
104
+ all objects that are created by the EventMap, unless you tell it not to.
105
+ -->
106
+ <PropertyInjector targetKey="documentViewFactory" source="{DocumentViewFactory}"/>
107
+ </Injectors>
108
+
109
+ <Injectors target="{DocumentsModel}">
110
+ <!--
111
+ DocumentModel is not a view class, but can be used as a target for injection because an instance
112
+ of the class was created with an ObjectBuilder that had the registerTarget property set to true,
113
+ see the Injectors for DocumentView.
114
+ -->
115
+
116
+ <!--
117
+ "scope.dispatcher" refers to the event dispatcher used by the event map. Events dispatched using this
118
+ dispatcher will be heard by this event map. The reason why I inject this dispatcher into the DocumentsModel
119
+ object is that since it's not a view class events that it dispatches don't bubble up, and so it needs
120
+ a way to dispatch events that can be heard by this event map.
121
+ -->
122
+ <PropertyInjector targetKey="dispatcher" source="{scope.dispatcher}"/>
123
+
124
+ <!--
125
+ This injects some objects into the DocumentsModel instance, but also sets up bindings so that when the
126
+ "documents", "openDocuments" or "currentDocument" properties on the DocumentsManager instance change
127
+ they will automatically be updated in the DocumentsModel instance too.
128
+ -->
129
+ <PropertyInjector targetKey="documents" source="{DocumentsManager}" sourceKey="documents"/>
130
+ <PropertyInjector targetKey="openDocuments" source="{DocumentsManager}" sourceKey="openDocuments"/>
131
+ <PropertyInjector targetKey="currentDocument" source="{DocumentsManager}" sourceKey="currentDocument"/>
132
+ </Injectors>
133
+
134
+ </EventMap>
@@ -0,0 +1,59 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <EventMap xmlns="http://mate.asfusion.com/" xmlns:mx="http://www.adobe.com/2006/mxml">
3
+
4
+ <!--
5
+ This is the main event map for the application, think of it as the application controller.
6
+ -->
7
+
8
+ <mx:Script>
9
+ <![CDATA[
10
+
11
+ import mx.events.FlexEvent;
12
+
13
+ import <%= base_package %>.models.presentation.*;
14
+ import <%= base_package %>.controllers.manager.*;
15
+
16
+ import <%= base_package %>.views.navigation.NavigationBarLeftView;
17
+
18
+ ]]>
19
+ </mx:Script>
20
+
21
+ <!-- <Debugger level="{Debugger.ALL}"/> -->
22
+
23
+ <EventHandlers type="{FlexEvent.PREINITIALIZE}">
24
+ </EventHandlers>
25
+
26
+ <EventHandlers type="{FlexEvent.APPLICATION_COMPLETE}">
27
+
28
+ </EventHandlers>
29
+
30
+ <Injectors targets="{[AuthenticationManager, HomeManager, AboutUsManager, SiteManager]}">
31
+ <PropertyInjector targetKey="dispatcher" source="{scope.dispatcher}"/>
32
+ </Injectors>
33
+
34
+ <Injectors target="{MainManager}">
35
+ <PropertyInjector targetKey="cmsMode" source="{NavigationBarTopModel}" sourceKey="cmsMode"/>
36
+ </Injectors>
37
+
38
+ <Injectors target="{ProfileModel}">
39
+ <PropertyInjector targetKey="currentUser" source="{AuthenticationManager}" sourceKey="currentUser"/>
40
+ </Injectors>
41
+
42
+ <Injectors target="{MainModel}">
43
+ <PropertyInjector targetKey="currentUser" source="{AuthenticationManager}" sourceKey="currentUser"/>
44
+ <PropertyInjector targetKey="login" source="{AuthenticationManager}" sourceKey="login"/>
45
+ <PropertyInjector targetKey="logout" source="{AuthenticationManager}" sourceKey="logout"/>
46
+ <PropertyInjector targetKey="cmsMode" source="{MainManager}" sourceKey="cmsMode"/>
47
+ </Injectors>
48
+
49
+ <Injectors target="{AboutUsModel}">
50
+ <PropertyInjector targetKey="target" source="{AboutUsManager}" sourceKey="target"/>
51
+ <PropertyInjector targetKey="parent" source="{AboutUsManager}" sourceKey="parent"/>
52
+ <PropertyInjector targetKey="children" source="{AboutUsManager}" sourceKey="children"/>
53
+ </Injectors>
54
+
55
+ <Injectors target="{NavigationBarLeftView}">
56
+ <PropertyInjector targetKey="contentTree" source="{SiteManager}" sourceKey="contentTree"/>
57
+ </Injectors>
58
+
59
+ </EventMap>
@@ -0,0 +1,75 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <EventMap xmlns="http://mate.asfusion.com/" xmlns:mx="http://www.adobe.com/2006/mxml">
3
+
4
+ <mx:Script>
5
+ <![CDATA[
6
+
7
+ import mx.events.FlexEvent;
8
+
9
+ import <%= base_package %>.models.presentation.*;
10
+
11
+ import <%= base_package %>.controllers.manager.*;
12
+
13
+ import <%= base_package %>.views.aboutUs.*;
14
+ import <%= base_package %>.views.account.*;
15
+ import <%= base_package %>.views.login.*;
16
+ import <%= base_package %>.views.profile.*;
17
+ import <%= base_package %>.views.contactUs.*;
18
+ import <%= base_package %>.views.main.*;
19
+ import <%= base_package %>.views.pages.*;
20
+ import <%= base_package %>.views.navigation.*;
21
+
22
+ import <%= base_package %>.models.factory.ResourceFactory;
23
+
24
+ ]]>
25
+ </mx:Script>
26
+
27
+ <!-- <Debugger level="{Debugger.ALL}"/> -->
28
+
29
+ <EventHandlers type="{FlexEvent.PREINITIALIZE}">
30
+ <!-- Views -->
31
+ <ObjectBuilder generator="{AccountView}"/>
32
+ <ObjectBuilder generator="{LoginView}"/>
33
+ <ObjectBuilder generator="{ProfileView}"/>
34
+ <ObjectBuilder generator="{ContactUsView}"/>
35
+ <ObjectBuilder generator="{PagesView}"/>
36
+ <ObjectBuilder generator="{NavigationBarLeftView}"/>
37
+ <ObjectBuilder generator="{NavigationBarRightView}"/>
38
+ <ObjectBuilder generator="{NavigationBarTopView}"/>
39
+ <ObjectBuilder generator="{NavigationBarBottomView}"/>
40
+ <ObjectBuilder generator="{NavigationBarsView}"/>
41
+
42
+ <!-- Presenters -->
43
+ <ObjectBuilder generator="{PagesPresenter}"/>
44
+ <ObjectBuilder generator="{NavigationBarLeftPresenter}"/>
45
+ <ObjectBuilder generator="{NavigationBarRightPresenter}"/>
46
+ <ObjectBuilder generator="{NavigationBarTopPresenter}"/>
47
+ <ObjectBuilder generator="{NavigationBarBottomPresenter}"/>
48
+ <ObjectBuilder generator="{NavigationBarsPresenter}"/>
49
+
50
+ <!-- Managers -->
51
+ <ObjectBuilder generator="{AccountManager}"/>
52
+ <ObjectBuilder generator="{ResourceManager}"/>
53
+ <ObjectBuilder generator="{PagesManager}"/>
54
+ <ObjectBuilder generator="{AuthenticationManager}"/>
55
+ <ObjectBuilder generator="{SiteManager}"/>
56
+
57
+ <!-- Presentation Models -->
58
+ <ObjectBuilder generator="{AccountModel}"/>
59
+ <ObjectBuilder generator="{ResourceModel}"/>
60
+ <ObjectBuilder generator="{PagesModel}"/>
61
+ <ObjectBuilder generator="{MainModel}"/>
62
+ <ObjectBuilder generator="{ContactUsModel}"/>
63
+ <ObjectBuilder generator="{ProfileModel}"/>
64
+ <ObjectBuilder generator="{AuthenticationModel}"/>
65
+ <ObjectBuilder generator="{NavigationBarLeftModel}"/>
66
+ <ObjectBuilder generator="{NavigationBarRightModel}"/>
67
+ <ObjectBuilder generator="{NavigationBarTopModel}"/>
68
+ <ObjectBuilder generator="{NavigationBarBottomModel}"/>
69
+ <ObjectBuilder generator="{NavigationBarsModel}"/>
70
+
71
+ <!-- Factories -->
72
+ <ObjectBuilder generator="{ResourceFactory}"/>
73
+ </EventHandlers>
74
+
75
+ </EventMap>
@@ -0,0 +1,81 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <EventMap xmlns="http://mate.asfusion.com/" xmlns:mx="http://www.adobe.com/2006/mxml">
3
+
4
+ <mx:Script>
5
+ <![CDATA[
6
+
7
+ import mx.events.FlexEvent;
8
+
9
+ import <%= base_package %>.models.presentation.AccountModel;
10
+ import <%= base_package %>.models.presentation.ProfileModel;
11
+ import <%= base_package %>.models.presentation.ContactUsModel;
12
+ import <%= base_package %>.models.presentation.AuthenticationModel;
13
+ import <%= base_package %>.models.presentation.HomeModel;
14
+ import <%= base_package %>.models.presentation.AboutUsModel;
15
+ import <%= base_package %>.models.presentation.MainModel;
16
+
17
+ import <%= base_package %>.views.account.AccountView;
18
+ import <%= base_package %>.views.login.LoginView;
19
+ import <%= base_package %>.views.profile.ProfileView;
20
+ import <%= base_package %>.views.contactUs.ContactUsView;
21
+ import <%= base_package %>.views.home.HomeView;
22
+ import <%= base_package %>.views.aboutUs.AboutUsView;
23
+ import <%= base_package %>.views.main.MainView;
24
+
25
+ ]]>
26
+ </mx:Script>
27
+
28
+ <!-- <Debugger level="{Debugger.ALL}"/> -->
29
+
30
+ <EventHandlers type="{FlexEvent.PREINITIALIZE}">
31
+ </EventHandlers>
32
+
33
+ <EventHandlers type="{FlexEvent.APPLICATION_COMPLETE}">
34
+ </EventHandlers>
35
+
36
+ <Injectors target="{MainView}">
37
+ <PropertyInjector targetKey="model" source="{MainModel}" />
38
+ </Injectors>
39
+
40
+ <!-- Pages -->
41
+ <Injectors target="{HomeView}">
42
+ <PropertyInjector targetKey="model" source="{HomeModel}" />
43
+ </Injectors>
44
+
45
+ <Injectors target="{LoginView}">
46
+ <PropertyInjector targetKey="model" source="{AuthenticationModel}" />
47
+ </Injectors>
48
+
49
+ <Injectors target="{AccountView}">
50
+ <PropertyInjector targetKey="model" source="{AccountModel}" />
51
+ </Injectors>
52
+
53
+ <Injectors target="{ProfileView}">
54
+ <PropertyInjector targetKey="model" source="{ProfileModel}" />
55
+ </Injectors>
56
+
57
+ <Injectors target="{ContactUsView}">
58
+ <PropertyInjector targetKey="model" source="{ContactUsModel}" />
59
+ </Injectors>
60
+
61
+ <Injectors target="{NavigationBarLeftView}">
62
+ <PropertyInjector targetKey="model" source="{NavigationBarLeftModel}" />
63
+ </Injectors>
64
+
65
+ <Injectors target="{NavigationBarRightView}">
66
+ <PropertyInjector targetKey="model" source="{NavigationBarRightModel}" />
67
+ </Injectors>
68
+
69
+ <Injectors target="{NavigationBarTopView}">
70
+ <PropertyInjector targetKey="model" source="{NavigationBarTopModel}" />
71
+ </Injectors>
72
+
73
+ <Injectors target="{NavigationBarBottomView}">
74
+ <PropertyInjector targetKey="model" source="{NavigationBarBottomModel}" />
75
+ </Injectors>
76
+
77
+ <Injectors targets="{[AccountModel, AuthenticationModel, ContactUsModel, ProfileModel]}">
78
+ <PropertyInjector targetKey="dispatcher" source="{scope.dispatcher}"/>
79
+ </Injectors>
80
+
81
+ </EventMap>