emergent-core 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.bnsignore +16 -0
- data/History.txt +4 -0
- data/Manifest.txt +348 -0
- data/README.rdoc +47 -0
- data/Rakefile +39 -0
- data/app_generators/emergent_core/USAGE +5 -0
- data/app_generators/emergent_core/emergent_core_generator.rb +73 -0
- data/app_generators/emergent_core/templates/core/actionscript.properties +16 -0
- data/app_generators/emergent_core/templates/core/actionscriptair.properties +16 -0
- data/app_generators/emergent_core/templates/core/app.yaml.erb +12 -0
- data/app_generators/emergent_core/templates/core/default_tasks.rake +51 -0
- data/app_generators/emergent_core/templates/core/empty.txt +0 -0
- data/app_generators/emergent_core/templates/core/expressInstall.swf +0 -0
- data/app_generators/emergent_core/templates/core/flex.properties +2 -0
- data/app_generators/emergent_core/templates/core/generate.rb +17 -0
- data/app_generators/emergent_core/templates/core/html-template/AC_OETags.js +276 -0
- data/app_generators/emergent_core/templates/core/html-template/history/history.css +6 -0
- data/app_generators/emergent_core/templates/core/html-template/history/history.js +645 -0
- data/app_generators/emergent_core/templates/core/html-template/history/historyFrame.html +29 -0
- data/app_generators/emergent_core/templates/core/html-template/index.template.html +121 -0
- data/app_generators/emergent_core/templates/core/html-template/playerProductInstall.swf +0 -0
- data/app_generators/emergent_core/templates/core/index.html.erb +18 -0
- data/app_generators/emergent_core/templates/core/index.yaml +11 -0
- data/app_generators/emergent_core/templates/core/mainair-app.xml +134 -0
- data/app_generators/emergent_core/templates/core/mainapp-config.xml +21 -0
- data/app_generators/emergent_core/templates/core/mainapp.mxml +106 -0
- data/app_generators/emergent_core/templates/core/project-textmate.erb +52 -0
- data/app_generators/emergent_core/templates/core/project.properties +18 -0
- data/app_generators/emergent_core/templates/core/projectair.properties +24 -0
- data/app_generators/emergent_core/templates/core/swfobject.js +5 -0
- data/bin/emergent +17 -0
- data/lib/emergent_core.rb +49 -0
- data/lib/restfulx/active_foo.rb +194 -0
- data/lib/restfulx/active_record_tasks.rb +81 -0
- data/lib/restfulx/configuration.rb +76 -0
- data/lib/restfulx/datamapper_foo.rb +31 -0
- data/lib/restfulx/rails/recipes.rb +60 -0
- data/lib/restfulx/rails/swf_helper.rb +60 -0
- data/lib/restfulx/tasks.rb +85 -0
- data/lib/restfulx.rb +117 -0
- data/rails_generators/emergent_cms/USAGE +5 -0
- data/rails_generators/emergent_cms/emergent_cms_generator.rb +21 -0
- data/rails_generators/emergent_cms/templates/PagesEditModel.as +114 -0
- data/rails_generators/emergent_cms/templates/PagesEditView.mxml +102 -0
- data/rails_generators/emergent_config/USAGE +5 -0
- data/rails_generators/emergent_config/emergent_config_generator.rb +330 -0
- data/rails_generators/emergent_config/templates/app/controllers/accounts_controller.rb +104 -0
- data/rails_generators/emergent_config/templates/app/controllers/addresses_controller.rb +97 -0
- data/rails_generators/emergent_config/templates/app/controllers/application.rb +26 -0
- data/rails_generators/emergent_config/templates/app/controllers/assets_controller.rb +1 -0
- data/rails_generators/emergent_config/templates/app/controllers/content_assignments_controller.rb +97 -0
- data/rails_generators/emergent_config/templates/app/controllers/contents_controller.rb +114 -0
- data/rails_generators/emergent_config/templates/app/controllers/sessions_controller.rb +72 -0
- data/rails_generators/emergent_config/templates/app/controllers/sites_controller.rb +1 -0
- data/rails_generators/emergent_config/templates/app/controllers/users_controller.rb +97 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/command/ICommand.as +16 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/command/Undoable.as +46 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/command/UpdateDocumentCommand.as +73 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/DocumentEvent.as +46 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/NavigationEvent.as +31 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/ResourceEvent.as +27 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/UndoEvent.as +36 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/AboutUsManager.as +15 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/AccountManager.as +31 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/AuthenticationManager.as +76 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/ContentManager.as +92 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/DocumentManager.as +131 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/DocumentsManager.as +156 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/HomeManager.as +18 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/MainManager.as +23 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/PagesManager.as +71 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/ResourceManager.as +195 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/SiteManager.as +25 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/UndoManager.as +143 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/DocumentMap.mxml +123 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/DocumentsMap.mxml +134 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/ManagerPresentationModelMap.mxml +59 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/ObjectMap.mxml +75 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/PresentationModelViewMap.mxml +81 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/PresenterViewMap.mxml +67 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/constant/DocumentType.as +52 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/constant/Resource.as +25 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/constant/ResourceAction.as +28 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/constant/ResourceResult.as +8 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Account.as +32 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Address.as +26 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Asset.as +25 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/AssetAssignment.as +25 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Content.as +46 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/ContentAssignment.as +33 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Document.as +131 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/PlainDocument.as +19 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/RichDocument.as +19 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Session.as +13 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Snapshot.as +21 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/User.as +28 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/factory/DocumentFactory.as +61 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/factory/DocumentViewFactory.as +59 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/factory/ResourceFactory.as +28 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/AboutUsModel.as +22 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/AccountModel.as +68 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/AuthenticationModel.as +44 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ContactUsModel.as +45 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ContentModel.as +70 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/DocumentModel.as +235 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/DocumentsModel.as +169 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/HomeModel.as +23 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/MainModel.as +35 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/PagesModel.as +44 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ProfileModel.as +99 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ResourceModel.as +100 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/about_us/about_us.mxml +105 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/account/account.mxml +97 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/contact_us/contact_us.mxml +65 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/document/document.mxml +71 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/document/documents.mxml +201 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/document/plain_document.mxml +9 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/document/rich_document.mxml +12 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/gallery/gallery.mxml +37 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/home/home.mxml +58 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/home/home_presenter.as +81 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/home/home_troparchy.mxml +71 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/login/login.mxml +50 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/main/main.mxml +131 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/main/main_presenter.as +166 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/main/main_troparchy.mxml +74 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_bottom_model.as +13 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_bottom_presenter.as +10 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_bottom_view.mxml +48 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_left_model.as +13 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_left_presenter.as +10 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_left_view.mxml +43 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_right_model.as +13 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_right_presenter.as +10 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_right_view.mxml +47 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_top_model.as +13 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_top_presenter.as +10 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_top_view.mxml +49 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bars_presenter.as +63 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bars_troparchy.mxml +63 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bars_view.mxml +59 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/pages/pages.mxml +44 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/pages/pages_presenter.as +83 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/pages/pages_troparchy.mxml +62 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/profile/profile.mxml +73 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/fonts/MyriadPro-Bold.otf +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/fonts/MyriadPro-Regular.otf +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/html/lorem.html +3 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture10.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture11.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture12.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture13.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture14.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture3.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture4.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture5.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture6.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture7.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture8.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture9.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_0.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_180.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_270.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_90.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_bottom.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_top.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/styles/itunes7Bg.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/styles/jukebox.css +764 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/styles/jukeboxGfx.swf +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/styles/obsidian.css +734 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/styles/obsidianBg.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/styles/obsidianGfx.swf +0 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/actions/LayoutAction.as +377 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/actions/SimpleLayoutAction.as +210 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/animators/FourDTweenCollection.mxml +50 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/animators/IAnimator.as +39 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/animators/TweenMaxAnimator.as +269 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/cameras/AstroCamera.as +177 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/components/FourDDataGrid.mxml +105 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/components/FourDItemRenderer.mxml +54 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/CenterPerspectiveProjection.as +72 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/ComplexCondition.as +44 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/ConditionsUtil.as +82 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/FourDComponent.as +309 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/InstanceMethodInvoker.as +50 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/InstancePropertyInjector.as +43 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/MethodCaller.as +51 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Pathway.as +10 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/PathwayEvent.as +28 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Pheron.as +34 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Pheron2.as +41 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/PheronReceptor.as +125 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Properties.as +57 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Router.as +50 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/RouterUtil.as +70 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/SimpleCondition.as +42 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/SimpleZSortVO.as +1 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/SimpleZSorter.as +1 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Tecton.as +70 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Tecton2.as +234 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonCache.as +111 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonEvent.as +39 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonMap.as +515 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonMap2.as +289 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonMapSample.mxml +73 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonReceptor.as +43 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonScope.as +38 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonScopeProperties.as +18 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonUtils.as +51 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/events/LayoutActionEvent.as +75 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/CarouselLayout.as +85 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/CircleLayout.as +102 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/CoverFlowLayout.as +136 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/FourDLayout.as +272 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/utils/TweenUtil.as +110 -0
- data/rails_generators/emergent_config/templates/app/helpers/accounts_helper.rb +93 -0
- data/rails_generators/emergent_config/templates/app/helpers/application_helper.rb +3 -0
- data/rails_generators/emergent_config/templates/app/models/account.rb +84 -0
- data/rails_generators/emergent_config/templates/app/models/account_mailer.rb +24 -0
- data/rails_generators/emergent_config/templates/app/models/account_observer.rb +17 -0
- data/rails_generators/emergent_config/templates/app/models/address.rb +2 -0
- data/rails_generators/emergent_config/templates/app/models/asset.rb +6 -0
- data/rails_generators/emergent_config/templates/app/models/asset_assignment.rb +4 -0
- data/rails_generators/emergent_config/templates/app/models/category.rb +35 -0
- data/rails_generators/emergent_config/templates/app/models/comment.rb +98 -0
- data/rails_generators/emergent_config/templates/app/models/content.rb +89 -0
- data/rails_generators/emergent_config/templates/app/models/content_assignment.rb +21 -0
- data/rails_generators/emergent_config/templates/app/models/image.rb +3 -0
- data/rails_generators/emergent_config/templates/app/models/post.rb +76 -0
- data/rails_generators/emergent_config/templates/app/models/section.rb +97 -0
- data/rails_generators/emergent_config/templates/app/models/site.rb +1 -0
- data/rails_generators/emergent_config/templates/app/models/tag.rb +1 -0
- data/rails_generators/emergent_config/templates/app/models/user.rb +4 -0
- data/rails_generators/emergent_config/templates/app/views/account_mailer/activation.erb +3 -0
- data/rails_generators/emergent_config/templates/app/views/account_mailer/signup_notification.erb +8 -0
- data/rails_generators/emergent_config/templates/config/Capfile +4 -0
- data/rails_generators/emergent_config/templates/config/README.txt +18 -0
- data/rails_generators/emergent_config/templates/config/deploy.rb +36 -0
- data/rails_generators/emergent_config/templates/config/routes.rb +72 -0
- data/rails_generators/emergent_config/templates/core/actionscript.properties +16 -0
- data/rails_generators/emergent_config/templates/core/actionscriptair.properties +16 -0
- data/rails_generators/emergent_config/templates/core/app.yaml.erb +12 -0
- data/rails_generators/emergent_config/templates/core/default_tasks.rake +51 -0
- data/rails_generators/emergent_config/templates/core/emergent_tasks.rake +42 -0
- data/rails_generators/emergent_config/templates/core/empty.txt +0 -0
- data/rails_generators/emergent_config/templates/core/expressInstall.swf +0 -0
- data/rails_generators/emergent_config/templates/core/flex.properties +2 -0
- data/rails_generators/emergent_config/templates/core/generate.rb +17 -0
- data/rails_generators/emergent_config/templates/core/html-template/AC_OETags.js +276 -0
- data/rails_generators/emergent_config/templates/core/html-template/history/history.css +6 -0
- data/rails_generators/emergent_config/templates/core/html-template/history/history.js +645 -0
- data/rails_generators/emergent_config/templates/core/html-template/history/historyFrame.html +29 -0
- data/rails_generators/emergent_config/templates/core/html-template/index.template.html +121 -0
- data/rails_generators/emergent_config/templates/core/html-template/playerProductInstall.swf +0 -0
- data/rails_generators/emergent_config/templates/core/index.html.erb +18 -0
- data/rails_generators/emergent_config/templates/core/index.yaml +11 -0
- data/rails_generators/emergent_config/templates/core/mainair-app.xml +134 -0
- data/rails_generators/emergent_config/templates/core/mainapp-config.xml +21 -0
- data/rails_generators/emergent_config/templates/core/mainapp.mxml +101 -0
- data/rails_generators/emergent_config/templates/core/project-textmate.erb +52 -0
- data/rails_generators/emergent_config/templates/core/project.properties +18 -0
- data/rails_generators/emergent_config/templates/core/projectair.properties +24 -0
- data/rails_generators/emergent_config/templates/core/restfulx.yml +14 -0
- data/rails_generators/emergent_config/templates/core/restfulx_tasks.rake +6 -0
- data/rails_generators/emergent_config/templates/core/swfobject.js +5 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_accounts.rb +40 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_addresses.rb +18 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_asset_assignments.rb +19 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_assets.rb +20 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_content_assignments.rb +26 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_contents.rb +21 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_sessions.rb +16 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_sites.rb +27 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_users.rb +15 -0
- data/rails_generators/emergent_config/templates/lib/analytics.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/app_controller.rb.erb +26 -0
- data/rails_generators/emergent_config/templates/lib/as3corelib-0.92.1.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/as3crypto-1.3patched.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/as3crypto.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/as3ds-1.04.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/as3httpclientlib-1.0.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/authenticated_system.rb +189 -0
- data/rails_generators/emergent_config/templates/lib/authenticated_test_helper.rb +11 -0
- data/rails_generators/emergent_config/templates/lib/containerEx.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/flare.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/flash_session_hack.rb +27 -0
- data/rails_generators/emergent_config/templates/lib/flex2BrowserManager.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/flexlib.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/fluint.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/mate_0_8_6_enhanced.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/openflux.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/pv3d.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/restfulx.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/site_keys.rb +38 -0
- data/rails_generators/emergent_config/templates/lib/tweenMax.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/urlkitFlex3.swc +0 -0
- data/rails_generators/emergent_config/templates/shell_script +31 -0
- data/rails_generators/emergent_controller/USAGE +5 -0
- data/rails_generators/emergent_controller/emergent_controller_generator.rb +25 -0
- data/rails_generators/emergent_controller/templates/controller.as.erb +37 -0
- data/rails_generators/emergent_core/USAGE +5 -0
- data/rails_generators/emergent_core/emergent_core_generator.rb +157 -0
- data/rails_generators/emergent_iphone/USAGE +5 -0
- data/rails_generators/emergent_iphone/emergent_iphone_generator.rb +27 -0
- data/rails_generators/emergent_scaffold/USAGE +5 -0
- data/rails_generators/emergent_scaffold/emergent_scaffold_generator.rb +157 -0
- data/rails_generators/emergent_scaffold/templates/component.mxml.erb +101 -0
- data/rails_generators/emergent_scaffold/templates/controller.rb.erb +101 -0
- data/rails_generators/emergent_scaffold/templates/edit_index_view.mxml.erb +114 -0
- data/rails_generators/emergent_scaffold/templates/edit_show_view.mxml.erb +84 -0
- data/rails_generators/emergent_scaffold/templates/filter_view.mxml.erb +1 -0
- data/rails_generators/emergent_scaffold/templates/fixtures.yml.erb +128 -0
- data/rails_generators/emergent_scaffold/templates/index_view.mxml.erb +58 -0
- data/rails_generators/emergent_scaffold/templates/item_renderer.mxml.erb +53 -0
- data/rails_generators/emergent_scaffold/templates/manager.as.erb +31 -0
- data/rails_generators/emergent_scaffold/templates/migration.rb.erb +22 -0
- data/rails_generators/emergent_scaffold/templates/model.as.erb +42 -0
- data/rails_generators/emergent_scaffold/templates/model.rb.erb +11 -0
- data/rails_generators/emergent_scaffold/templates/presentation_model.as.erb +33 -0
- data/rails_generators/emergent_scaffold/templates/presenter.as.erb +98 -0
- data/rails_generators/emergent_scaffold/templates/show_view.mxml.erb +50 -0
- data/rails_generators/emergent_scaffold/templates/view_map.mxml.erb +40 -0
- data/rails_generators/emergent_scaffold/templates/views_panel.mxml.erb +64 -0
- data/rails_generators/emergent_styler/USAGE +5 -0
- data/rails_generators/emergent_styler/emergent_styler_generator.rb +21 -0
- data/rails_generators/rx_yaml_scaffold/USAGE +51 -0
- data/rails_generators/rx_yaml_scaffold/rx_yaml_scaffold_generator.rb +49 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/spec/emergent_core_spec.rb +7 -0
- data/spec/spec_helper.rb +16 -0
- data/tasks/ann.rake +80 -0
- data/tasks/bones.rake +20 -0
- data/tasks/gem.rake +201 -0
- data/tasks/git.rake +40 -0
- data/tasks/manifest.rake +48 -0
- data/tasks/notes.rake +27 -0
- data/tasks/post_load.rake +39 -0
- data/tasks/rdoc.rake +50 -0
- data/tasks/rubyforge.rake +55 -0
- data/tasks/setup.rb +279 -0
- data/tasks/spec.rake +54 -0
- data/tasks/svn.rake +47 -0
- data/tasks/test.rake +40 -0
- data/test/test_emergent_core.rb +0 -0
- data/test/test_emergent_iphone_generator.rb +46 -0
- data/test/test_generator_helper.rb +29 -0
- metadata +437 -0
@@ -0,0 +1,92 @@
|
|
1
|
+
package <%= base_package %>.controllers.manager {
|
2
|
+
|
3
|
+
import <%= base_package %>.models.constant.ResourceResult;
|
4
|
+
import <%= base_package %>.models.constant.ResourceAction;
|
5
|
+
import <%= base_package %>.models.domain.Content;
|
6
|
+
import <%= base_package %>.models.domain.ContentAssignment;
|
7
|
+
import <%= base_package %>.controllers.event.ResourceEvent;
|
8
|
+
|
9
|
+
import org.restfulx.Rx;
|
10
|
+
import org.restfulx.collections.ModelsCollection;
|
11
|
+
|
12
|
+
public class ContentManager extends ResourceManager {
|
13
|
+
|
14
|
+
protected var contentAssignment:ContentAssignment;
|
15
|
+
|
16
|
+
private var _contentTree:ModelsCollection; [Bindable]
|
17
|
+
public function get contentTree():ModelsCollection { return _contentTree; }
|
18
|
+
public function set contentTree(value:ModelsCollection):void {
|
19
|
+
_contentTree = value;
|
20
|
+
}
|
21
|
+
|
22
|
+
// e.g. Site
|
23
|
+
private var _parent:Content; [Bindable]
|
24
|
+
public function get parent():Content { return _parent; }
|
25
|
+
public function set parent(value:Content):void {
|
26
|
+
_parent = value;
|
27
|
+
}
|
28
|
+
|
29
|
+
// e.g. HomePage
|
30
|
+
private var _target:Content; [Bindable]
|
31
|
+
public function get target():Content { return _target; }
|
32
|
+
public function set target(value:Content):void {
|
33
|
+
_target = value;
|
34
|
+
}
|
35
|
+
|
36
|
+
// e.g. [BlurbA, BlurbB, BlurbC, ImageA, ImageB]
|
37
|
+
private var _children:ModelsCollection; [Bindable]
|
38
|
+
public function get children():ModelsCollection { return _children; }
|
39
|
+
public function set children(value:ModelsCollection):void {
|
40
|
+
_children = value;
|
41
|
+
}
|
42
|
+
|
43
|
+
public function ContentManager() {
|
44
|
+
setModel(target);
|
45
|
+
}
|
46
|
+
|
47
|
+
protected function dispatchContentToManager(resource:Object, action:String, nameOfContent:String):void {
|
48
|
+
|
49
|
+
var event:ResourceEvent = new ResourceEvent(nameOfContent);
|
50
|
+
event.data = resource;
|
51
|
+
event.action = action;
|
52
|
+
|
53
|
+
dispatcher.dispatchEvent(event);
|
54
|
+
}
|
55
|
+
|
56
|
+
override protected function setModel(resource:Object, binder:*=null, action:String=null):void {
|
57
|
+
super.setModel(resource, binder, action);
|
58
|
+
|
59
|
+
if (resource is Content) {
|
60
|
+
target = model as Content;
|
61
|
+
// parent = target.parent;
|
62
|
+
// children = target.children;
|
63
|
+
} else if (resource is ContentAssignment) {
|
64
|
+
contentAssignment = model as ContentAssignment;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
override protected function beforeCreate(resource:Object):void {
|
69
|
+
|
70
|
+
}
|
71
|
+
|
72
|
+
override protected function beforeUpdate(resource:Object):void {
|
73
|
+
// children = Rx.models.index(Content);
|
74
|
+
}
|
75
|
+
|
76
|
+
override protected function beforeDestroy(resource:Object):void {
|
77
|
+
// children = Rx.models.index(Content);
|
78
|
+
}
|
79
|
+
|
80
|
+
override protected function afterCreate(resource:Object):void {
|
81
|
+
setModel(resource, ResourceAction.CREATE);
|
82
|
+
}
|
83
|
+
|
84
|
+
override protected function afterUpdate(resource:Object):void {
|
85
|
+
setModel(resource, ResourceAction.UPDATE);
|
86
|
+
}
|
87
|
+
|
88
|
+
override protected function afterDestroy(resource:Object):void {
|
89
|
+
setModel(resource, ResourceAction.DESTROY);
|
90
|
+
}
|
91
|
+
}
|
92
|
+
}
|
@@ -0,0 +1,131 @@
|
|
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
|
+
import flash.events.IEventDispatcher;
|
8
|
+
|
9
|
+
import <%= base_package %>.models.domain.Document;
|
10
|
+
|
11
|
+
import <%= base_package %>.controllers.event.UndoEvent;
|
12
|
+
import <%= base_package %>.controllers.command.ICommand;
|
13
|
+
import <%= base_package %>.controllers.command.Undoable;
|
14
|
+
import <%= base_package %>.controllers.command.UpdateDocumentCommand;
|
15
|
+
|
16
|
+
/**
|
17
|
+
* The DocumentManager manages a single document. It provides a transactional interface
|
18
|
+
* for manipulating that document, making sure that actions are undoable, and keeping
|
19
|
+
* track of whether or not the document needs saving or not (i.e. if it's "dirty").
|
20
|
+
*
|
21
|
+
* All modifications of the managed document are done in commands, and a change is
|
22
|
+
* undoable the particular command implements the Undoable interface. After an undoable
|
23
|
+
* command has been executed it is reported to the undo system.
|
24
|
+
*
|
25
|
+
* Currently there is only one action that modifies the document: update, which has the
|
26
|
+
* corresponding command UpdateDocumentCommand.
|
27
|
+
*/
|
28
|
+
public class DocumentManager extends EventDispatcher {
|
29
|
+
|
30
|
+
/*
|
31
|
+
* All methods on the Document class that are destructive (i.e. changes the object's state)
|
32
|
+
* are marked with the app_internal namespace. This means that any code that wants to modify
|
33
|
+
* a document needs to open that namespace somehow. This makes it easier to keep track on
|
34
|
+
* where destructive changes are made.
|
35
|
+
*/
|
36
|
+
private var _document:Document;
|
37
|
+
|
38
|
+
private var _documentDirty:Boolean;
|
39
|
+
|
40
|
+
private var _dispatcher:IEventDispatcher;
|
41
|
+
public function set dispatcher( value : IEventDispatcher ) : void {
|
42
|
+
_dispatcher = value;
|
43
|
+
}
|
44
|
+
|
45
|
+
[Bindable(event="documentChanged")]
|
46
|
+
public function get document():Document {
|
47
|
+
return _document;
|
48
|
+
}
|
49
|
+
|
50
|
+
/**
|
51
|
+
* Returns whether or not the managed document has unsaved changes.
|
52
|
+
*/
|
53
|
+
[Bindable(event="documentDirtyChanged")]
|
54
|
+
public function get documentDirty():Boolean {
|
55
|
+
return _documentDirty;
|
56
|
+
}
|
57
|
+
|
58
|
+
|
59
|
+
/** Internal method for dispatching the "documentChanged" event. */
|
60
|
+
private function dispatchDocumentChanged():void {
|
61
|
+
dispatchEvent(new Event("documentChanged"));
|
62
|
+
}
|
63
|
+
|
64
|
+
/** Internal method for dispatching the "documentDirtyChanged" event. */
|
65
|
+
private function dispatchDocumentDirtyChanged():void {
|
66
|
+
dispatchEvent(new Event("documentDirtyChanged"));
|
67
|
+
}
|
68
|
+
|
69
|
+
/** Listener for the Event.CHANGE event on the managed Document instance. */
|
70
|
+
private function onDocumentChange( event:Event ):void {
|
71
|
+
_documentDirty = true;
|
72
|
+
|
73
|
+
dispatchDocumentDirtyChanged();
|
74
|
+
}
|
75
|
+
|
76
|
+
/**
|
77
|
+
* Sets the document instance that this manager manages, this triggers the
|
78
|
+
* dispatch of both the "documentChanged" and "documentDirtyChanged" events.
|
79
|
+
*/
|
80
|
+
public function setDocument(d:Document):void {
|
81
|
+
if (_document != null) {
|
82
|
+
_document.removeEventListener(Event.CHANGE, onDocumentChange);
|
83
|
+
}
|
84
|
+
|
85
|
+
_document = d;
|
86
|
+
_documentDirty = false;
|
87
|
+
|
88
|
+
if ( _document != null ) {
|
89
|
+
_document.addEventListener(Event.CHANGE, onDocumentChange);
|
90
|
+
}
|
91
|
+
|
92
|
+
dispatchDocumentChanged();
|
93
|
+
dispatchDocumentDirtyChanged();
|
94
|
+
}
|
95
|
+
|
96
|
+
/**
|
97
|
+
* After a document has been saved (an action that this manager is unaware of),
|
98
|
+
* this method needs to be called to unset the dirty flag.
|
99
|
+
*/
|
100
|
+
public function documentSaved():void {
|
101
|
+
_documentDirty = false;
|
102
|
+
|
103
|
+
dispatchDocumentDirtyChanged();
|
104
|
+
}
|
105
|
+
|
106
|
+
/**
|
107
|
+
* Modifes the managed document by setting a new title and text. This action
|
108
|
+
* is undoable.
|
109
|
+
*/
|
110
|
+
public function update(doc:Document):void {
|
111
|
+
var command:UpdateDocumentCommand = new UpdateDocumentCommand();
|
112
|
+
command.prepare(_document, doc.content);
|
113
|
+
exec(command);
|
114
|
+
}
|
115
|
+
|
116
|
+
/**
|
117
|
+
* Executes the specified command by calling its execute method. Also, and more
|
118
|
+
* importantly, it checks if that command is undoable. Undoable commands are
|
119
|
+
* reported to the undo system by dispatching the UndoEvent.ADD_UNDOABLE event.
|
120
|
+
*/
|
121
|
+
private function exec(command:ICommand):void {
|
122
|
+
command.execute();
|
123
|
+
|
124
|
+
if (command is Undoable) {
|
125
|
+
_dispatcher.dispatchEvent(new UndoEvent(UndoEvent.ADD_UNDOABLE, Undoable(command)));
|
126
|
+
}
|
127
|
+
}
|
128
|
+
|
129
|
+
}
|
130
|
+
|
131
|
+
}
|
@@ -0,0 +1,156 @@
|
|
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 mx.collections.ArrayCollection;
|
9
|
+
import mx.collections.ICollectionView;
|
10
|
+
|
11
|
+
import <%= base_package %>.models.domain.Document;
|
12
|
+
import <%= base_package %>.models.constant.DocumentType;
|
13
|
+
import <%= base_package %>.models.factory.DocumentFactory;
|
14
|
+
import <%= base_package %>.controllers.manager.ResourceManager;
|
15
|
+
|
16
|
+
/**
|
17
|
+
* The DocumentsManager manages the overall state of the application, things like
|
18
|
+
* all documents, open documents and the current document, it also creates and deletes
|
19
|
+
* documents.
|
20
|
+
*/
|
21
|
+
public class DocumentsManager extends ResourceManager {
|
22
|
+
|
23
|
+
private var _documents:ArrayCollection;
|
24
|
+
private var _openDocuments:ArrayCollection;
|
25
|
+
private var _currentDocument:Document;
|
26
|
+
private var _documentFactory:DocumentFactory;
|
27
|
+
|
28
|
+
/**
|
29
|
+
* Returns a collection of all douments that exist within the application,
|
30
|
+
* whether or not they are open or closed.
|
31
|
+
*/
|
32
|
+
[Bindable(event="documentsChanged")]
|
33
|
+
public function get documents():ICollectionView {
|
34
|
+
return _documents;
|
35
|
+
}
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Returns a collection of all open documents.
|
39
|
+
*/
|
40
|
+
[Bindable(event="openDocumentsChanged")]
|
41
|
+
public function get openDocuments():ICollectionView {
|
42
|
+
return _openDocuments;
|
43
|
+
}
|
44
|
+
|
45
|
+
/**
|
46
|
+
* Returns the current document, i.e. the document that is the front-most
|
47
|
+
* opened document and the one that the user is editing.
|
48
|
+
*/
|
49
|
+
[Bindable(event="currentDocumentChanged")]
|
50
|
+
public function get currentDocument():Document {
|
51
|
+
return _currentDocument;
|
52
|
+
}
|
53
|
+
|
54
|
+
/**
|
55
|
+
* The DocumentsManager needs a DocumentFactory instance for creating
|
56
|
+
* new documents, it should be injected through this setter.
|
57
|
+
*/
|
58
|
+
public function set documentFactory(value:DocumentFactory):void {
|
59
|
+
_documentFactory = value;
|
60
|
+
}
|
61
|
+
|
62
|
+
|
63
|
+
public function DocumentsManager() {
|
64
|
+
_documents = new ArrayCollection();
|
65
|
+
_openDocuments = new ArrayCollection();
|
66
|
+
}
|
67
|
+
|
68
|
+
override public function save(resource:*):void {
|
69
|
+
if (r.content.id) {
|
70
|
+
update(r);
|
71
|
+
} else {
|
72
|
+
create(r);
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
/**
|
77
|
+
* Creates a new document of the specified type and opens it with openDocument.
|
78
|
+
*/
|
79
|
+
public function newDocument(type:DocumentType):void {
|
80
|
+
var doc:Document = _documentFactory.createDocument(type);
|
81
|
+
doc.content.title = "Untitled " + (documents.length + 1);
|
82
|
+
_documents.addItem(doc);
|
83
|
+
|
84
|
+
openDocument(doc);
|
85
|
+
}
|
86
|
+
|
87
|
+
/**
|
88
|
+
* Puts the specified document in the list of open documents, if it's not already
|
89
|
+
* there. Also sets it as the current document with setCurrentDocument.
|
90
|
+
*/
|
91
|
+
public function openDocument(d:Document):void {
|
92
|
+
if (!_openDocuments.contains(d)) {
|
93
|
+
_openDocuments.addItem(d);
|
94
|
+
}
|
95
|
+
|
96
|
+
setCurrentDocument(d);
|
97
|
+
}
|
98
|
+
|
99
|
+
/**
|
100
|
+
* Remoes a document from the list of open documents. If the document
|
101
|
+
* was also the current document, the last document in the list of open
|
102
|
+
* documents is set as the new current document (or none if the closed
|
103
|
+
* document was the only open document).
|
104
|
+
*
|
105
|
+
* Throws an exception if the document wasn't open.
|
106
|
+
*/
|
107
|
+
public function closeDocument(d:Document):void {
|
108
|
+
var index:int = _openDocuments.getItemIndex(d);
|
109
|
+
|
110
|
+
if (index != -1) {
|
111
|
+
_openDocuments.removeItemAt(index);
|
112
|
+
|
113
|
+
if (currentDocument == d && _openDocuments.length > 0) {
|
114
|
+
var doc:Document = Document(_openDocuments.getItemAt(_openDocuments.length - 1));
|
115
|
+
setCurrentDocument(doc);
|
116
|
+
} else {
|
117
|
+
setCurrentDocument(null);
|
118
|
+
}
|
119
|
+
} else {
|
120
|
+
throw new ArgumentError("Cannot close document that isn't open");
|
121
|
+
}
|
122
|
+
}
|
123
|
+
|
124
|
+
/**
|
125
|
+
* Sets the specified document as the current document, see get currentDocument.
|
126
|
+
*/
|
127
|
+
protected function setCurrentDocument(d:Document):void {
|
128
|
+
_currentDocument = d;
|
129
|
+
|
130
|
+
dispatchEvent(new Event("currentDocumentChanged"));
|
131
|
+
}
|
132
|
+
|
133
|
+
/**
|
134
|
+
* Deletes the specified document. If the document was open it is
|
135
|
+
* closed using closeDocument.
|
136
|
+
*
|
137
|
+
* Throws an exception if the document isn't among the documents
|
138
|
+
* managed by this manager.
|
139
|
+
*/
|
140
|
+
public function deleteDocument(d:Document):void {
|
141
|
+
if (_openDocuments.contains(d)) {
|
142
|
+
closeDocument(d);
|
143
|
+
}
|
144
|
+
|
145
|
+
var index:int = _documents.getItemIndex(d);
|
146
|
+
|
147
|
+
if (index != -1) {
|
148
|
+
_documents.removeItemAt(index);
|
149
|
+
} else {
|
150
|
+
throw new ArgumentError("Cannot remove document that doesn't exist");
|
151
|
+
}
|
152
|
+
}
|
153
|
+
|
154
|
+
}
|
155
|
+
|
156
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
package <%= base_package %>.controllers.manager {
|
2
|
+
|
3
|
+
import <%= base_package %>.models.constant.ResourceResult;
|
4
|
+
import <%= base_package %>.models.constant.ResourceAction;
|
5
|
+
import <%= base_package %>.controllers.event.ResourceEvent;
|
6
|
+
import <%= base_package %>.models.domain.Content;
|
7
|
+
import <%= base_package %>.models.domain.ContentAssignment;
|
8
|
+
|
9
|
+
import org.restfulx.Rx;
|
10
|
+
import org.restfulx.collections.ModelsCollection;
|
11
|
+
|
12
|
+
public class HomeManager extends ContentManager {
|
13
|
+
|
14
|
+
public function HomeManager() {
|
15
|
+
setModel(target);
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
package <%= base_package %>.controllers.manager {
|
2
|
+
|
3
|
+
import flash.events.EventDispatcher;
|
4
|
+
|
5
|
+
import <%= base_package %>.models.constant.ResourceResult;
|
6
|
+
import <%= base_package %>.models.constant.ResourceAction;
|
7
|
+
import <%= base_package %>.controllers.event.ResourceEvent;
|
8
|
+
import <%= base_package %>.models.domain.Content;
|
9
|
+
import <%= base_package %>.models.domain.ContentAssignment;
|
10
|
+
|
11
|
+
import org.restfulx.Rx;
|
12
|
+
import org.restfulx.collections.ModelsCollection;
|
13
|
+
|
14
|
+
public class MainManager extends EventDispatcher {
|
15
|
+
|
16
|
+
[Bindable] public var cmsMode:Boolean;
|
17
|
+
|
18
|
+
public function MainManager() {
|
19
|
+
setModel(target);
|
20
|
+
}
|
21
|
+
|
22
|
+
}
|
23
|
+
}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
package <%= base_package %>.controllers.manager
|
2
|
+
{
|
3
|
+
import <%= base_package %>.models.constant.ResourceResult;
|
4
|
+
import <%= base_package %>.models.constant.ResourceAction;
|
5
|
+
import <%= base_package %>.controllers.event.ResourceEvent;
|
6
|
+
import <%= base_package %>.models.domain.Content;
|
7
|
+
import <%= base_package %>.models.domain.ContentAssignment;
|
8
|
+
|
9
|
+
import org.restfulx.Rx;
|
10
|
+
import org.restfulx.collections.ModelsCollection;
|
11
|
+
|
12
|
+
import mx.collections.ICollectionView;
|
13
|
+
|
14
|
+
public class PagesManager extends ResourceManager {
|
15
|
+
|
16
|
+
/**
|
17
|
+
* Returns a collection of all pages that exist within the application,
|
18
|
+
*/
|
19
|
+
private var _pages:ICollectionView;
|
20
|
+
[Bindable(event="documentsChanged")]
|
21
|
+
public function get pages():ICollectionView {
|
22
|
+
return _pages;
|
23
|
+
}
|
24
|
+
|
25
|
+
/**
|
26
|
+
* Returns a collection of all open pages.
|
27
|
+
*/
|
28
|
+
private var _openPages:ICollectionView;
|
29
|
+
[Bindable(event="openDocumentsChanged")]
|
30
|
+
public function get openPages():ICollectionView {
|
31
|
+
return _openPages;
|
32
|
+
}
|
33
|
+
|
34
|
+
/**
|
35
|
+
* Returns the current pages, i.e. the page that is the front-most
|
36
|
+
*/
|
37
|
+
private var _currentPage:Content;
|
38
|
+
[Bindable(event="currentDocumentChanged")]
|
39
|
+
public function get currentPage():Content {
|
40
|
+
return _currentPage;
|
41
|
+
}
|
42
|
+
|
43
|
+
public function PagesManager() {
|
44
|
+
setModel(currentPage);
|
45
|
+
}
|
46
|
+
|
47
|
+
override protected function beforeCreate(resource:Object):void {
|
48
|
+
|
49
|
+
}
|
50
|
+
|
51
|
+
override protected function beforeUpdate(resource:Object):void {
|
52
|
+
// children = Rx.models.index(Content);
|
53
|
+
}
|
54
|
+
|
55
|
+
override protected function beforeDestroy(resource:Object):void {
|
56
|
+
// children = Rx.models.index(Content);
|
57
|
+
}
|
58
|
+
|
59
|
+
override protected function afterCreate(resource:Object):void {
|
60
|
+
setModel(resource, ResourceAction.CREATE);
|
61
|
+
}
|
62
|
+
|
63
|
+
override protected function afterUpdate(resource:Object):void {
|
64
|
+
setModel(resource, ResourceAction.UPDATE);
|
65
|
+
}
|
66
|
+
|
67
|
+
override protected function afterDestroy(resource:Object):void {
|
68
|
+
setModel(resource, ResourceAction.DESTROY);
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
@@ -0,0 +1,195 @@
|
|
1
|
+
package <%= base_package %>.controllers.manager {
|
2
|
+
|
3
|
+
import flash.events.Event;
|
4
|
+
import flash.events.EventDispatcher;
|
5
|
+
import flash.utils.getDefinitionByName;
|
6
|
+
import flash.utils.getQualifiedClassName;
|
7
|
+
|
8
|
+
import org.restfulx.Rx;
|
9
|
+
import org.restfulx.collections.ModelsCollection;
|
10
|
+
import org.restfulx.models.RxModel;
|
11
|
+
import org.restfulx.utils.RxUtils;
|
12
|
+
|
13
|
+
import <%= base_package %>.controllers.event.ResourceEvent;
|
14
|
+
import <%= base_package %>.models.constant.ResourceAction;
|
15
|
+
import <%= base_package %>.models.domain.Document;
|
16
|
+
import <%= base_package %>.models.constant.ResourceResult;
|
17
|
+
import <%= base_package %>.models.factory.ResourceFactory;
|
18
|
+
|
19
|
+
public class ResourceManager extends EventDispatcher {
|
20
|
+
|
21
|
+
/** This property is injected by the application. */
|
22
|
+
public var dispatcher:IEventDispatcher;
|
23
|
+
|
24
|
+
/** Can be used as the main resource, or as a temp/place-holder resource :) */
|
25
|
+
private var _model:RxModel; [Bindable]
|
26
|
+
public function get model():RxModel { return _model; }
|
27
|
+
public function set model(value:RxModel):void {
|
28
|
+
_model = value;
|
29
|
+
}
|
30
|
+
|
31
|
+
/**
|
32
|
+
* The ResourcesManager needs a ResourceFactory instance for creating
|
33
|
+
* new resources, it should be injected through this setter.
|
34
|
+
*/
|
35
|
+
private var _resourceFactory:ResourceFactory; [Bindable]
|
36
|
+
public function get resourceFactory():ResourceFactory { return _resourceFactory; }
|
37
|
+
public function set resourceFactory(value:ResourceFactory):void {
|
38
|
+
_resourceFactory = value;
|
39
|
+
}
|
40
|
+
|
41
|
+
/**
|
42
|
+
* Just as the ResourcesModel has a resourceName property, the ResourcesModel has
|
43
|
+
* a resourceResultName property. The ModelName is listened to by the Manager, and the
|
44
|
+
* ResultName is listened to by the view, or the presModel, so the view can update
|
45
|
+
*/
|
46
|
+
private var _resourceResultName:String; [Bindable]
|
47
|
+
public function get resourceResultName():String { return _resourceResultName; }
|
48
|
+
public function set resourceResultName(value:String):void {
|
49
|
+
_resourceResultName = value;
|
50
|
+
}
|
51
|
+
|
52
|
+
public function ResourceManager() {
|
53
|
+
}
|
54
|
+
|
55
|
+
// used to allow the subclass the privilege of using the _resource variable
|
56
|
+
protected function setModel(resource:Object, binder:*=null, action:String=null):void {
|
57
|
+
if (binder) { model = binder; }
|
58
|
+
if (!action) {
|
59
|
+
model = resource as RxModel;
|
60
|
+
} else if (action == ResourceAction.CREATE || action == ResourceAction.DESTROY) {
|
61
|
+
model = resourceFactory.createResource(resource as RxModel);
|
62
|
+
} else if (action == ResourceAction.UPDATE) {
|
63
|
+
model = RxUtils.clone(resource) as RxModel;
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
protected function dispatchResourceResult(resource:Object, nameOfResource:String,
|
68
|
+
result:String=null, action:String=null):void {
|
69
|
+
|
70
|
+
var event:ResourceEvent = new ResourceEvent(nameOfResource);
|
71
|
+
event.data = resource;
|
72
|
+
event.result = (result) ? result : ResourceResult.SUCCESS;
|
73
|
+
event.action = action;
|
74
|
+
|
75
|
+
dispatcher.dispatchEvent(event);
|
76
|
+
}
|
77
|
+
|
78
|
+
public function route(action:String, resource:Object, contentNode:String=null):void {
|
79
|
+
if (action == ResourceAction.CREATE) {
|
80
|
+
beforeCreate(resource);
|
81
|
+
create(resource);
|
82
|
+
} else if (action == ResourceAction.UPDATE) {
|
83
|
+
beforeUpdate(resource);
|
84
|
+
update(resource);
|
85
|
+
} else if (action == ResourceAction.DESTROY) {
|
86
|
+
beforeDestroy(resource);
|
87
|
+
destroy(resource);
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
91
|
+
protected function beforeCreate(resource:Object):void {
|
92
|
+
|
93
|
+
}
|
94
|
+
|
95
|
+
protected function beforeUpdate(resource:Object):void {
|
96
|
+
|
97
|
+
}
|
98
|
+
|
99
|
+
protected function beforeDestroy(resource:Object):void {
|
100
|
+
|
101
|
+
}
|
102
|
+
|
103
|
+
public function save(resource:*):void {
|
104
|
+
if (resource.content.id) {
|
105
|
+
update(resource.content);
|
106
|
+
} else {
|
107
|
+
create(resource.content);
|
108
|
+
}
|
109
|
+
}
|
110
|
+
|
111
|
+
/**
|
112
|
+
* POST /resource
|
113
|
+
* POST /resource.xml
|
114
|
+
* POST /resource.fxml
|
115
|
+
*/
|
116
|
+
protected function create(resource:*):void {
|
117
|
+
var r:* = discover(resource);
|
118
|
+
|
119
|
+
var rModel:RxModel = RxUtils.clone(r) as RxModel;
|
120
|
+
|
121
|
+
rModel.create({afterCallback: afterCreate});
|
122
|
+
}
|
123
|
+
|
124
|
+
/**
|
125
|
+
* PUT /resource/1
|
126
|
+
* PUT /resource/1.xml
|
127
|
+
* PUT /resource/1.fxml
|
128
|
+
*/
|
129
|
+
protected function update(resource:*):void {
|
130
|
+
var r:* = discover(resource);
|
131
|
+
r.update({afterCallback: afterUpdate});
|
132
|
+
}
|
133
|
+
|
134
|
+
/**
|
135
|
+
* DELETE /resource/1
|
136
|
+
* DELETE /resource/1.xml
|
137
|
+
* DELETE /resource/1.fxml
|
138
|
+
*/
|
139
|
+
protected function destroy(resource:*):void {
|
140
|
+
var r:* = discover(resource);
|
141
|
+
r.destroy({afterCallback: afterDestroy});
|
142
|
+
}
|
143
|
+
|
144
|
+
/** After the resource returns from the Database */
|
145
|
+
|
146
|
+
protected function afterCreate(resource:Object):void {
|
147
|
+
model = resourceFactory.createResource(resource as RxModel);
|
148
|
+
}
|
149
|
+
|
150
|
+
protected function afterUpdate(resource:Object):void {
|
151
|
+
model = RxUtils.clone(resource) as RxModel;//clazz(r);
|
152
|
+
}
|
153
|
+
|
154
|
+
protected function afterDestroy(resource:Object):void {
|
155
|
+
model = resourceFactory.createResource(resource as RxModel);
|
156
|
+
}
|
157
|
+
|
158
|
+
protected function success(resource:*, binder:*=null):void {
|
159
|
+
var event:ResourceEvent = new ResourceEvent(ResourceAction.SUCCESS);
|
160
|
+
event.data = resource;
|
161
|
+
inject(event, binder);
|
162
|
+
}
|
163
|
+
|
164
|
+
protected function failure(resource:*, binder:*=null):void {
|
165
|
+
var event:ResourceEvent = new ResourceEvent(ResourceAction.FAILURE);
|
166
|
+
event.data = resource;
|
167
|
+
inject(event, binder);
|
168
|
+
}
|
169
|
+
|
170
|
+
public function clazz(resource:RxModel):Class {
|
171
|
+
var className:String = getQualifiedClassName(resource).replace( "::", "." )
|
172
|
+
var ModelClass:Class = getDefinitionByName(className) as Class;
|
173
|
+
return ModelClass;
|
174
|
+
}
|
175
|
+
|
176
|
+
protected function discover(resource:*):* {
|
177
|
+
var r:RxModel;
|
178
|
+
|
179
|
+
if (resource is RxModel) { r = resource as RxModel; }
|
180
|
+
else if (resource is ResourceEvent) { r = resource.data as RxModel; }
|
181
|
+
else if (resource is Document) { r = resource.content as RxModel; }
|
182
|
+
else { r = resource; }
|
183
|
+
|
184
|
+
return r;
|
185
|
+
}
|
186
|
+
|
187
|
+
protected function inject(event:*, binder:*=null):void {
|
188
|
+
if (binder !== null) {
|
189
|
+
binder = event;
|
190
|
+
} else {
|
191
|
+
dispatcher.dispatchEvent(event);
|
192
|
+
}
|
193
|
+
}
|
194
|
+
}
|
195
|
+
}
|