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.
- 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,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
|
+
}
|