利用者向け情報

開発者向け情報

[sandbox.akabana]/trunk/yui/yui-framework/src/main/flex/org/seasar/akabana/yui/framework/mixin/YuiFrameworkMixin.as

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 487 by e1arkw, Sun Jul 27 16:42:42 2008 JST revision 903 by e1arkw, Fri Nov 6 11:08:31 2009 JST
# Line 16  Line 16 
16  package org.seasar.akabana.yui.framework.mixin  package org.seasar.akabana.yui.framework.mixin
17  {  {
18    
19          import flash.events.Event;          import flash.net.registerClassAlias;
20    
21          import mx.core.IFlexModuleFactory;          import mx.core.IFlexModuleFactory;
         import mx.core.UIComponent;  
         import mx.events.FlexEvent;  
22          import mx.managers.ISystemManager;          import mx.managers.ISystemManager;
23    
24          import org.seasar.akabana.yui.framework.convention.NamingConvention;          import org.seasar.akabana.yui.core.yui_internal;
25          import org.seasar.akabana.yui.framework.core.YuiFrameworkContainer;          import org.seasar.akabana.yui.framework.core.YuiFrameworkContainer;
26          import org.seasar.akabana.yui.logging.LogManager;          import org.seasar.akabana.yui.logging.LogManager;
27            import org.seasar.akabana.yui.logging.config.ConfigurationProvider;
28            import org.seasar.akabana.yui.logging.config.factory.LogConfigurationFactory;
29    
30          [Mixin]          [Mixin]
31          [ResourceBundle("yui_framework")]          [ResourceBundle("conventions")]
32      /**          /**
33           * YuiFramework設定用MIXIN           * YuiFramework初期設定用Mixinクラス
34           *           *
35             * @author $Author$
36             * @version $Revision$
37           */           */
38          public class YuiFrameworkMixin          public class YuiFrameworkMixin
39          {          {
40          YuiCoreClasses;                  {
41          LogManager.init();                          LogConfigurationFactory;
42          YuiFrameworkClasses;                          registerClassAlias(ConfigurationProvider.FACTORY_CLASS_NAME,LogConfigurationFactory);
43                    }
             private static const _logManagerInitialized:Boolean = initLogManager();  
   
                 private static const _this:YuiFrameworkMixin = new YuiFrameworkMixin();  
44    
45                  private static const _container:YuiFrameworkContainer = new YuiFrameworkContainer();                  private static var _this:YuiFrameworkMixin;
46    
47                  public static function initLogManager():Boolean{                  private static var _container:YuiFrameworkContainer;
                     LogManager.init();  
                     return true;  
                 }  
48    
49          public static function init( flexModuleFactory:IFlexModuleFactory ):void{          public static function init( flexModuleFactory:IFlexModuleFactory ):void{
50    
51                LogManager.init();
52    
53                _this = new YuiFrameworkMixin();
54                _container = new YuiFrameworkContainer();
55    
56              if( flexModuleFactory is ISystemManager ){              if( flexModuleFactory is ISystemManager ){
57                  var systemManager:ISystemManager = flexModuleFactory as ISystemManager;                  var systemManager_:ISystemManager = flexModuleFactory as ISystemManager;
58                  systemManager.addEventListener(                  _container.yui_internal::monitoringSystemManager(systemManager_);
59                      Event.ADDED_TO_STAGE,              }
                     _this.addedToStageHandler,  
                     true,  
                     int.MAX_VALUE  
                 );  
                 systemManager.addEventListener(  
                     FlexEvent.APPLICATION_COMPLETE,  
                     _this.applicationCompleteHandler,  
                     false,  
                     int.MAX_VALUE  
                 );  
             }  
         }  
   
         public function set conventions( value:Array ):void{  
             var namingConvention_:NamingConvention = new NamingConvention();  
             namingConvention_.conventions = value;  
             _container.namingConvention = namingConvention_;  
         }  
   
         protected var initialized:Boolean;  
   
         private function addedToStageHandler( event:Event ):void{  
             if( event.target is UIComponent ){  
                 _container.registerComponent(event.target as UIComponent);  
             }  
         }  
   
         private function applicationCompleteHandler( event:FlexEvent ):void{  
             if( event.currentTarget is ISystemManager ){  
                 var systemManager:ISystemManager = event.currentTarget as ISystemManager;  
                 systemManager.removeEventListener(  
                     FlexEvent.APPLICATION_COMPLETE,  
                     applicationCompleteHandler,  
                     false  
                 );  
                 systemManager.removeEventListener(  
                     Event.ADDED_TO_STAGE,  
                     _this.addedToStageHandler,  
                     true  
                 );  
                 systemManager.addEventListener(  
                     Event.ADDED,  
                     _this.addedToStageHandler,  
                     true,  
                     int.MAX_VALUE  
                 );  
                 if( !initialized ){  
                     initialized = true;  
                     _container.initialize();  
                 }  
             }  
60          }          }
61          }          }
62  }  }

Legend:
Removed from v.487  
changed lines
  Added in v.903

Repository Top
ViewVC Help  
ViewVC logotype
Powered by ViewVC