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