emergent-core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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>