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,102 @@
1
+ /*
2
+ * Copyright 2008 (c) Lance Pollard
3
+ * www.systemsofseven.com/blog
4
+ * www.4ddesignlab.com
5
+ * LanceJPollard@gmail.com
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person
8
+ * obtaining a copy of this software and associated documentation
9
+ * files (the "Software"), to deal in the Software without
10
+ * restriction, including without limitation the rights to use,
11
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ * copies of the Software, and to permit persons to whom the
13
+ * Software is furnished to do so, subject to the following
14
+ * conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be
17
+ * included in all copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
21
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
23
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
26
+ * OTHER DEALINGS IN THE SOFTWARE.
27
+ */
28
+
29
+ package com.fourD.layouts
30
+ {
31
+ import com.fourD.animators.TweenMaxAnimator;
32
+
33
+ import flash.display.DisplayObject;
34
+ import flash.geom.Point;
35
+
36
+ import mx.components.baseClasses.GroupBase;
37
+ import mx.core.ILayoutElement;
38
+ import mx.core.IUIComponent;
39
+ import mx.layout.LayoutBase;
40
+
41
+ public class CircleLayout extends LayoutBase
42
+ {
43
+ public function CircleLayout() {
44
+ super();
45
+ }
46
+
47
+ public var rotate:Boolean = true;
48
+
49
+ public function findIndexAt(children:Array, x:Number, y:Number):int {
50
+ var hCenter:Number = target.width / 2;
51
+ var vCenter:Number = target.height / 2;
52
+ var angle:Number = Math.atan2(y-vCenter, x-hCenter) + Math.PI;
53
+ var index:Number = angle * children.length / (2 * Math.PI) + 1;
54
+
55
+ return index;
56
+ }
57
+
58
+ override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
59
+ {
60
+ super.updateDisplayList(unscaledWidth, unscaledHeight);
61
+ var layoutTarget:GroupBase = target;
62
+ var layoutElement:ILayoutElement;
63
+ var numOfItems:int = layoutTarget.numLayoutElements;
64
+
65
+ var radius:Number = target.width - 10;
66
+ var anglePer:Number = (Math.PI * 2) / numOfItems;
67
+
68
+ var width:Number = target.width/2;
69
+ var height:Number = target.height/2;
70
+ var offset:Number = 180*(Math.PI/180);
71
+ var rad:Number;
72
+
73
+ var token:Object;
74
+
75
+ for(var i:uint=0; i<numOfItems; i++) {
76
+
77
+ layoutElement = layoutTarget.getLayoutElementAt(i);
78
+ token = new Object();
79
+ token.width = layoutElement.getPreferredBoundsWidth();
80
+ token.height = layoutElement.getPreferredBoundsHeight();
81
+
82
+ var w:Number = width-layoutElement.getPreferredBoundsWidth();
83
+ var h:Number = height-layoutElement.getPreferredBoundsHeight();
84
+
85
+
86
+ rad = ((Math.PI*i)/(numOfItems/2))+offset;
87
+ token.x = (w*Math.cos(rad))+w;
88
+ token.y = (h*Math.sin(rad))+h;
89
+
90
+ if(rotate) {
91
+ token.rotationY = ((360/length)*i);
92
+ while(token.rotationY > 180) {
93
+ token.rotationY -= 360;
94
+ }
95
+ }
96
+ animator.moveItem(layoutElement as DisplayObject, token);
97
+ }
98
+ //animator.end();
99
+ }
100
+
101
+ }
102
+ }
@@ -0,0 +1,136 @@
1
+ /*
2
+ * Copyright 2008 (c) Lance Pollard
3
+ * www.systemsofseven.com/blog
4
+ * www.4ddesignlab.com
5
+ * LanceJPollard@gmail.com
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person
8
+ * obtaining a copy of this software and associated documentation
9
+ * files (the "Software"), to deal in the Software without
10
+ * restriction, including without limitation the rights to use,
11
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ * copies of the Software, and to permit persons to whom the
13
+ * Software is furnished to do so, subject to the following
14
+ * conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be
17
+ * included in all copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
21
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
23
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
26
+ * OTHER DEALINGS IN THE SOFTWARE.
27
+ */
28
+
29
+ package com.fourD.layouts
30
+ {
31
+ import mx.core.ILayoutElement;
32
+ import mx.core.UIComponent;
33
+
34
+ public class CoverFlowLayout extends FourDLayout
35
+ {
36
+ public function CoverFlowLayout()
37
+ {
38
+ super();
39
+ }
40
+
41
+ private var _angle:Number = 70; [Bindable]
42
+ public function get angle():Number { return _angle; }
43
+ public function set angle(value:Number):void {
44
+ _angle = value;
45
+ if (target) target.invalidateDisplayList();
46
+ }
47
+
48
+ private var _gap:Number = 0;
49
+ [Bindable]
50
+ public function get gap():Number { return _gap; }
51
+ public function set gap(value:Number):void {
52
+ _gap = value;
53
+ if (target) target.invalidateDisplayList();
54
+ }
55
+
56
+ private var _distance:Number = 10;
57
+ [Bindable]
58
+ public function get distance():Number { return _distance; }
59
+ public function set distance(value:Number):void {
60
+ _distance = value;
61
+ if (target) target.invalidateDisplayList();
62
+ }
63
+
64
+ private var _direction:String = "horizontal"; [Bindable]
65
+ [Inspectable(defaultValue="horizontal", enumeration="horizontal,vertical,null")]
66
+ public function get direction():String { return _direction; }
67
+ public function set direction(value:String):void {
68
+ _direction = value;
69
+ if (target) target.invalidateDisplayList();
70
+ }
71
+
72
+ private var init:Boolean = false;
73
+
74
+ protected var maxChildHeight:Number;
75
+ protected var maxChildWidth:Number;
76
+ protected var abs:Number;
77
+ protected var offset:Number=0;
78
+
79
+ [Bindable] public var radius:Number;
80
+ [Bindable] public var anglePer:Number;
81
+
82
+ override public function initializeLayoutEquation():void {
83
+ selectedChild = target.getLayoutElementAt(selectedIndex) as UIComponent;
84
+ maxChildHeight = Number((selectedChild as ILayoutElement).getPreferredBoundsWidth());
85
+ maxChildWidth = Number((selectedChild as ILayoutElement).getPreferredBoundsHeight());
86
+ if (!gap) {
87
+ if (direction == "horizontal") {
88
+ gap = maxChildHeight / 3;
89
+ }
90
+ }
91
+ if (!radius) {
92
+ radius = target.width/2;
93
+ }
94
+ if (!anglePer) {
95
+ anglePer = (Math.PI * 2) / numOfItems;
96
+ }
97
+ preferredLayoutElementWidth = 120;
98
+ preferredLayoutElementHeight = 120;
99
+ }
100
+
101
+ override public function getLayoutElementToken(layoutElement:ILayoutElement, index:int):Object {
102
+ var token:Object = new Object();
103
+
104
+ // must do this to set the element width and height before anything else
105
+ setLayoutElementWidth(layoutElement, preferredLayoutElementWidth, token, target.width);
106
+ setLayoutElementHeight(layoutElement, preferredLayoutElementHeight, token, target.height);
107
+
108
+ // then this is the equation for each item
109
+ abs = Math.abs(selectedIndex - index);
110
+ offset += token.width;
111
+ token.x = (selectedChild as ILayoutElement).getPreferredBoundsWidth() + ((abs - 1) * gap)// + offset;
112
+ if (_gap > 0) token.x += (abs - 1) * (_gap + token.width);
113
+ token.y = -(maxChildHeight - layoutElement.getPreferredBoundsHeight()) / 2;
114
+ token.z = (selectedChild as ILayoutElement).getPreferredBoundsWidth() + abs * 5;
115
+
116
+ (layoutElement as UIComponent).includeInLayout = false;
117
+
118
+ token.rotationY = angle;
119
+ if(index < selectedIndex) {
120
+ token.x = -token.x + token.width/2;
121
+ token.rotationY *= -1;
122
+ } else if(index == selectedIndex) {
123
+ token.x = 0;
124
+ token.z = -200 / 2;
125
+ token.rotationY = 0;
126
+ offset = 0;
127
+ }
128
+
129
+ token.x = token.x + target.width/2 - token.width/2;
130
+ token.y = (token.y*-1) + target.height/2 - token.height/2;
131
+
132
+ return token;
133
+ }
134
+
135
+ }
136
+ }
@@ -0,0 +1,272 @@
1
+ /*
2
+ * Copyright 2008 (c) Lance Pollard
3
+ * www.systemsofseven.com/blog
4
+ * www.4ddesignlab.com
5
+ * LanceJPollard@gmail.com
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person
8
+ * obtaining a copy of this software and associated documentation
9
+ * files (the "Software"), to deal in the Software without
10
+ * restriction, including without limitation the rights to use,
11
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ * copies of the Software, and to permit persons to whom the
13
+ * Software is furnished to do so, subject to the following
14
+ * conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be
17
+ * included in all copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
21
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
23
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
26
+ * OTHER DEALINGS IN THE SOFTWARE.
27
+ */
28
+
29
+ package com.fourD.layouts
30
+ {
31
+ import com.fourD.actions.LayoutAction;
32
+ import com.fourD.actions.SimpleLayoutAction;
33
+ import com.fourD.animators.IAnimator;
34
+ import com.fourD.animators.TweenMaxAnimator;
35
+ import com.fourD.core.FourDComponent;
36
+ import com.fourD.core.SimpleZSorter;
37
+
38
+ import flash.display.DisplayObject;
39
+ import flash.events.MouseEvent;
40
+ import flash.events.TimerEvent;
41
+ import flash.geom.Point;
42
+ import flash.utils.Timer;
43
+
44
+ import mx.components.DataGroup;
45
+ import mx.components.Group;
46
+ import mx.components.ResizeMode;
47
+ import mx.components.baseClasses.GroupBase;
48
+ import mx.core.ILayoutElement;
49
+ import mx.core.IVisualElement;
50
+ import mx.core.UIComponent;
51
+ import mx.core.mx_internal;
52
+ import mx.events.FlexEvent;
53
+ import mx.events.IndexChangedEvent;
54
+ import mx.events.ItemExistenceChangedEvent;
55
+ import mx.layout.LayoutBase;
56
+ import mx.layout.LayoutElementHelper;
57
+ use namespace mx_internal;
58
+
59
+ public class FourDLayout extends LayoutBase
60
+ {
61
+ // Commonly used variables in layout algorithms:
62
+ public var selectedIndex:int;
63
+ public var selectedChild:DisplayObject;
64
+ protected var currentIndex:int; // like a "proposed" index
65
+ protected var numOfItems:int;
66
+
67
+ [Inspectable(defaultValue="true", enumeration="true,false")]
68
+ [Bindable] public var zSort:Boolean = true;
69
+ private var zSortStartTimer:Timer;
70
+
71
+ [Bindable] public var hitAreaX1:Number;
72
+ [Bindable] public var hitAreaX2:Number;
73
+ private var elementToGlobalPoint:Point;
74
+
75
+ [Bindable] public var preferredLayoutElementWidth:Number;
76
+ [Bindable] public var preferredLayoutElementHeight:Number;
77
+
78
+ [Inspectable(defaultValue="false", enumeration="true,false")]
79
+ [Bindable] public var selectedIndexHitTest:Boolean;
80
+
81
+ // hack to establish the actions slightly after onCreationComplete...
82
+ private var actionInstantiator:Timer;
83
+
84
+ private var _action:LayoutAction; [Bindable]
85
+ public function get action():LayoutAction { return _action; }
86
+ public function set action(value:LayoutAction):void {
87
+ _action = value;
88
+ }
89
+
90
+ // must do this because you can't easily access the containerBases parent container
91
+ // in the default case, it is group.parent.parent.parent.parent, but that may change with skinning
92
+ override public function set target(value:GroupBase):void {
93
+ super.target = value;
94
+ target.resizeMode = ResizeMode.SCALE;
95
+ attachHandlers();
96
+ }
97
+
98
+ private var _animator:IAnimator; [Bindable]
99
+ public function get animator():IAnimator { return _animator; }
100
+ public function set animator(value:IAnimator):void {
101
+ _animator = value;
102
+ }
103
+
104
+ // VERY IMPORTANT: Any rotation of the whole layout must be done using
105
+ // "container", not "target" (group). This is because the FourDComponent
106
+ // gives you much more freedom in setting pivot points and tweens
107
+ private var _container:FourDComponent; [Bindable]
108
+ public function get container():FourDComponent { return _container; }
109
+ public function set container(value:FourDComponent):void {
110
+ _container = value;
111
+ // increases frame rate because includeInLayout calls invalidateProperties();
112
+ _container.includeInLayout = false;
113
+ if (_container.initialized == true)
114
+ {
115
+ onCreationComplete(new FlexEvent(""));
116
+ }
117
+ else
118
+ {
119
+ _container.addEventListener(FlexEvent.CREATION_COMPLETE, onCreationComplete);
120
+ }
121
+ }
122
+
123
+ public function FourDLayout() {
124
+ if (animator == null) {
125
+ animator = new TweenMaxAnimator();
126
+ }
127
+ if (action == null) {
128
+ action = new SimpleLayoutAction();
129
+ }
130
+ }
131
+
132
+ /** Handler Functions for Group and containerItem (Layout and LayoutItem)
133
+ * Override these handlers in the subclasses if you would like! */
134
+ protected function attachHandlers():void {
135
+ target.addEventListener(IndexChangedEvent.CHILD_INDEX_CHANGE, groupHandler);
136
+ target.addEventListener(ItemExistenceChangedEvent.ITEM_ADD, groupHandler);
137
+ target.addEventListener(ItemExistenceChangedEvent.ITEM_REMOVE, groupHandler);
138
+ }
139
+
140
+ protected function onCreationComplete(event:FlexEvent):void {
141
+ actionInstantiator = new Timer(1000, 0);
142
+ actionInstantiator.addEventListener(TimerEvent.TIMER, instantiateAction);
143
+ actionInstantiator.start();
144
+ }
145
+
146
+ private function instantiateAction(event:TimerEvent):void {
147
+ actionInstantiator.stop();
148
+ actionInstantiator = null;
149
+ action.layout = this;
150
+ action.container = container;
151
+ action.target = target;
152
+ action.animator = animator;
153
+
154
+ if (action.usedActions == null) {
155
+ action.usedActions = [action.INTRO,
156
+ action.AMBIENT,
157
+ action.ITEM_SELECTED,
158
+ action.ITEM_DESELECTED];
159
+ }
160
+
161
+ action.layoutStart();
162
+
163
+ if (zSort && container.visible) {
164
+ zSortStartTimer = new Timer(500, 0);
165
+ zSortStartTimer.start();
166
+ zSortStartTimer.addEventListener(TimerEvent.TIMER, zSortStart);
167
+ }
168
+ }
169
+
170
+ private function zSortStart(event:TimerEvent):void {
171
+ zSortStartTimer.stop();
172
+ zSortStartTimer = null;
173
+ container.addEventListener(Event.ENTER_FRAME, zSortGroup);
174
+ }
175
+
176
+ private function zSortGroup(event:Event):void {
177
+ SimpleZSorter.sortClips(target);
178
+ }
179
+
180
+ protected function groupHandler(event:*):void {
181
+ var item:DisplayObject;
182
+ if (event.type == ItemExistenceChangedEvent.ITEM_ADD) {
183
+ if (target is DataGroup) {
184
+ item = event.renderer;
185
+ } else if (target is Group) {
186
+ item = event.relatedObject;
187
+ }
188
+ item.addEventListener(MouseEvent.CLICK, itemClickHandler);
189
+ }
190
+ }
191
+
192
+ protected function itemClickHandler(event:MouseEvent):void {
193
+ var layoutElement:DisplayObject = event.target as DisplayObject;
194
+ if (target is DataGroup) {
195
+ selectedIndex = (target as DataGroup).mx_internal::getItemIndexForRenderer(event.currentTarget as IVisualElement);
196
+ } else if (target is Group) {
197
+ selectedIndex = (target as Group).getElementIndex(event.currentTarget as IVisualElement);
198
+ }
199
+ action.itemSelected();
200
+ }
201
+
202
+ // put this into an Action.update class. LayoutAction classes!
203
+ public function handleSelectedIndexHitTest():void {
204
+ var layoutElement:DisplayObject;
205
+ numOfItems = target.numLayoutElements;
206
+ var i:int=0;
207
+ for (i; i < numOfItems; i++) {
208
+ layoutElement = target.getLayoutElementAt(i) as UIComponent;
209
+ elementToGlobalPoint = layoutElement.localToGlobal(
210
+ new Point(layoutElement.x, layoutElement.y));
211
+ if (elementToGlobalPoint.x > hitAreaX1 && elementToGlobalPoint.x < hitAreaX2) {
212
+ selectedIndex = (target as Group).getElementIndex(layoutElement as IVisualElement);
213
+ }
214
+ }
215
+ }
216
+
217
+ /** initializeLayoutEquation is where you set up your layout */
218
+ public function initializeLayoutEquation():void {}
219
+
220
+ /** getLayoutElementToken is where you place the logic to place each item in the layout */
221
+ public function getLayoutElementToken(layoutElement:ILayoutElement, index:int):Object {
222
+ return new Object();
223
+ }
224
+
225
+ public function calculatePercentWidth(layoutElement:ILayoutElement, width:Number):Number {
226
+ var percentWidth:Number = LayoutElementHelper.pinBetween(layoutElement.percentWidth * 0.01 * width,
227
+ layoutElement.getMinBoundsWidth(),
228
+ layoutElement.getMaxBoundsWidth());
229
+ return percentWidth < width ? percentWidth : width;
230
+ }
231
+
232
+ public function calculatePercentHeight(layoutElement:ILayoutElement, height:Number):Number {
233
+ var percentHeight:Number = LayoutElementHelper.pinBetween(layoutElement.percentHeight * 0.01 * height,
234
+ layoutElement.getMinBoundsHeight(),
235
+ layoutElement.getMaxBoundsHeight());
236
+ return percentHeight < height ? percentHeight : height;
237
+ }
238
+
239
+ public function hasPercentWidth(layoutElement:ILayoutElement):Boolean {
240
+ return !isNaN(layoutElement.percentWidth);
241
+ }
242
+
243
+ public function hasPercentHeight(layoutElement:ILayoutElement):Boolean {
244
+ return !isNaN(layoutElement.percentHeight);
245
+ }
246
+
247
+ protected function setLayoutElementWidth(layoutElement:ILayoutElement, preferredWidth:Number, token:*, unscaledWidth:Number):void {
248
+ if (hasPercentWidth(layoutElement)) {
249
+ token.width = calculatePercentWidth(layoutElement, unscaledWidth);
250
+ } else {
251
+ token.width = layoutElement.getPreferredBoundsWidth();
252
+ }
253
+
254
+ if (token.width > preferredWidth) {
255
+ token.width = preferredWidth;
256
+ }
257
+ }
258
+
259
+ protected function setLayoutElementHeight(layoutElement:ILayoutElement, preferredHeight:Number, token:*, unscaledHeight:Number):void {
260
+ if (hasPercentHeight(layoutElement)) {
261
+ token.height = calculatePercentHeight(layoutElement, unscaledHeight);
262
+ } else {
263
+ token.height = layoutElement.getPreferredBoundsHeight();
264
+ }
265
+
266
+ if (token.height > preferredHeight) {
267
+ token.height = preferredHeight;
268
+ }
269
+ }
270
+
271
+ }
272
+ }
@@ -0,0 +1,110 @@
1
+ /*
2
+ * Copyright 2008 (c) Lance Pollard
3
+ * www.systemsofseven.com/blog
4
+ * www.4ddesignlab.com
5
+ * LanceJPollard@gmail.com
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person
8
+ * obtaining a copy of this software and associated documentation
9
+ * files (the "Software"), to deal in the Software without
10
+ * restriction, including without limitation the rights to use,
11
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ * copies of the Software, and to permit persons to whom the
13
+ * Software is furnished to do so, subject to the following
14
+ * conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be
17
+ * included in all copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
21
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
23
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
26
+ * OTHER DEALINGS IN THE SOFTWARE.
27
+ */
28
+
29
+ package com.fourD.utils
30
+ {
31
+
32
+ import com.fourD.core.FourDComponent;
33
+
34
+ import mx.containers.ApplicationControlBar;
35
+ import mx.containers.Canvas;
36
+ import mx.containers.Panel;
37
+ import mx.core.UIComponent;
38
+
39
+ public class TweenUtil
40
+ {
41
+
42
+ public static function resolveAnimationType(animationType:String, target:Object):void {
43
+
44
+ }
45
+
46
+ public static function resolveParams(tweens:Array, tweenParams:Array, animator:Object):Array {
47
+ trace("resolve tween params");
48
+ var tmpArray:Array = new Array();
49
+ for (var i:int=0; i < tweenParams.length; i++) {
50
+ for (var j:int=0; j < tweens.length; j++) {
51
+ if (tweenParams[i].tween == tweens[j]) {
52
+ if (tweenParams[i].when == "onComplete") {
53
+ tweens[j].onComplete = animator.onTweenComplete;
54
+ tweens[j].onCompleteParams = [tweenParams[i]]; // as Object;
55
+ }
56
+ if (tweenParams[i].when == "onStart" || undefined) {
57
+ tweens[j].onStart = animator.onTweenStart;
58
+ //var al:Alert = Alert.show("tween: " + value[i].tween.rotationY);
59
+ tweens[j].onStartParams = [tweenParams[i]]//[value[i]];
60
+ }
61
+ tmpArray.push(tweenParams[i] as Object);
62
+ }
63
+ }
64
+ }
65
+ tweenParams = tmpArray;
66
+ return tweenParams;
67
+ }
68
+
69
+ public static function validateTweenTarget(target:Object, fourDComponent:UIComponent):Boolean {
70
+ // Hack to get parent if the direct parent is a Skin!
71
+ var valid:Boolean;
72
+ if (fourDComponent is FourDComponent) {
73
+ var plane:FourDComponent = fourDComponent as FourDComponent;
74
+ if (target.parent != plane.front) {
75
+ if (target.parent == plane.back || target == plane.front || target == plane.back) {
76
+ valid = true;
77
+ }
78
+ }
79
+ if (target.parent != plane.back) {
80
+ if (target.parent == plane.front || target == plane.front || target == plane.back) {
81
+ valid = true;
82
+ }
83
+ }
84
+ if (target != plane.front) {
85
+ if (target.parent == plane.back || target.parent == plane.front || target == plane.back) {
86
+ valid = true;
87
+ }
88
+ }
89
+ if (target != plane.back) {
90
+ if (target.parent == plane.back || target.parent == plane.front || target == plane.front) {
91
+ valid = true;
92
+ }
93
+ }
94
+ }
95
+
96
+ if (target is Panel || target.parent is Panel) {
97
+ valid = true
98
+ }
99
+ if (target is ApplicationControlBar || target.parent is ApplicationControlBar) {
100
+ valid = true
101
+ }
102
+ if (target is Canvas || target.parent is Canvas) {
103
+ valid = true
104
+ }
105
+
106
+ return valid;
107
+ }
108
+
109
+ }
110
+ }