チェンジセット 769

差分発生行の前後
無視リスト:
コミット日時:
2008/07/04 13:09:35 (5 ヶ月前)
コミッタ:
seagirl
ログメッセージ:

v1.1.0

コントローラ層に Thread を採用
Link コンポーネント のデフォルトのスタイルに下線を追加

など。

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/GeniusFramework/Readme.txt

    r763 r769  
    1 Genius Framework 1.0.0 for Flex 
     1Genius Framework 1.1.0 for Flex 
    22---------------------------------------- 
    33 
     
    55 
    66- Flex用のフレームワーク 
    7 - ビュー層は The Flex Code-Behind Pattern(*1) を採用 (MXML と AS の分離
    8 - コントローラ層は Thread ライブラリ(*2)を採用 
    9 - スケルトン作成シェルコマンドコマンド付属 
     7- ビュー層には The Flex Code-Behind Pattern(*1) を採用 (MXML と AS を分離する
     8- コントローラ層は Thread ライブラリ(*2)を採用 
     9- スケルトン作成をシェルコマンドが付属 
    1010- BrowserManager と ViewStack を使った状態管理の仕組み(デフォルトはページ単位) 
    11 - Macの変速ホイールスクロールサポート 
    12 - 独自ビューコンポーネント 
     11- Macの変速ホイールスクロールサポート 
     12- 独自ビューコンポーネント (Link, SimpleButton, AdvancedCanvas, AdvancedRadioButton など) 
    1313- 自由な拡張が可能 
    1414 
     
    3737 
    3838 
    39 * Flex Builder で使う場合の注意 
     39* Mac の変則ホイールスクロール機能を使うために 
    4040 
    41 geniusコマンドで出力されたディレクトリを使って新規プロジェクトを作る場合、 
    42 html-templateが上書きされてしまうので、Macのホイールスクロール機能が使えなくなります。 
    43 使いたい場合は、/GeniusFramework/html-templateをプロジェクトフォルダにコピーして下さい。 
    44 さらに、Macのホイールスクロール機能にExternalInterfaceを使っているため、 
     41Mac の変則ホイールスクロールを使うには、プロジェクトディレクトリの直下に 
     42「html-template」を追加する必要があります。 
     43(Flex Builder が作る html-template を上書きする。) 
     44 
     45また、変則ホイールスクロールは ExternalInterface を使っているため、 
    4546ローカルでプレビューする際には「Local Trusted」サンドボックスで実行する必要があります。 
    46 今、どのサンドボックスで実行されているかどうかは、Genius Frameworkでは 
     47今、どのサンドボックスで実行されているかどうかは、Genius Framework では 
    4748コンソールで確認出来るようになっています。 
    4849 
  • as3/GeniusFramework/app-template/src/genius/core/Application.as

    r762 r769  
    1818                 
    1919                private var applicationManager:ApplicationManager; 
     20                private var mainView:Main; 
    2021                 
    21                 // Using MXML 
    22                 public var main:Main; 
    23                  
    24                 override protected function preinitializeHandler(event:FlexEvent):void 
     22                private function initializeApplication():void 
    2523                { 
    2624                        applicationManager = ApplicationManager.instance; 
     
    3331                } 
    3432                 
     33                private function initializeView():void 
     34                { 
     35                        mainView = new Main(); 
     36                        addChild(mainView); 
     37                        mainView.percentHeight = 100; 
     38                        mainView.percentWidth = 100; 
     39                } 
     40                 
    3541                override protected function initializeHandler(event:FlexEvent):void 
    3642                {        
    37                         main = new Main(); 
    38                         addChild(main); 
    39                         main.percentHeight = 100; 
    40                         main.percentWidth = 100; 
     43                        initializeApplication(); 
     44                        initializeView(); 
    4145                } 
    4246                 
  • as3/GeniusFramework/app-template/src/genius/views/Main.mxml

    r635 r769  
    55        xmlns:mx="http://www.adobe.com/2006/mxml"> 
    66        <mx:ViewStack id="viewStack" width="100%" height="100%"> 
    7                 <Intro name="Intro" width="100%" height="100%"/> 
     7                <Intro width="100%" height="100%"/> 
    88        </mx:ViewStack> 
    99</MainBase> 
  • as3/GeniusFramework/app-template/src/genius/views/MainBase.as

    r762 r769  
    88        import mx.binding.utils.BindingUtils; 
    99        import mx.containers.ViewStack; 
    10         import mx.events.FlexEvent; 
     10        import mx.core.UIComponent; 
    1111         
    1212        import [% application %].threads.ChangeStateThread; 
     
    1818                override protected function initializeView():void 
    1919                { 
    20                         BindingUtils.bindSetter(setStateData, ApplicationManager.instance, 'state'); 
     20                        BindingUtils.bindSetter(changePage, ApplicationManager.instance, 'state'); 
    2121                } 
    2222                 
    23                 private function setStateData(data:Object):void 
    24                 {                
    25                         if (data != null) 
     23                private function changePage(data:Object):void 
     24                { 
     25                        if (data == null) 
     26                                return; 
     27                                 
     28                        var child:UIComponent; 
     29                        viewStack.getChildren().forEach( 
     30                                function (element:UIComponent, index:int, array:Array):void 
     31                                { 
     32                                        if (element.className == ApplicationManager.instance.currentPage) 
     33                                                child = element; 
     34                                } 
     35                        ); 
     36                         
     37                        if (child) 
    2638                        { 
    27                                 var applicationManager:ApplicationManager = ApplicationManager.instance; 
    28                                 var child:DisplayObject = viewStack.getChildByName(applicationManager.currentPage); 
    29                                 if (child) 
    30                                 { 
    31                                         viewStack.selectedIndex = viewStack.getChildIndex(child); 
    32                                         return; 
    33                                 } 
    34                                  
    35                                 new ChangeStateThread().start(); 
     39                                viewStack.selectedIndex = viewStack.getChildIndex(child); 
     40                                return; 
    3641                        } 
     42                         
     43                        new ChangeStateThread().start(); 
    3744                } 
    3845                 
  • as3/GeniusFramework/samples/HelloGenius/src/jp/seagirl/hello/core/Application.as

    r764 r769  
    1212 
    1313        public class Application extends jp.seagirl.genius.core.Application 
    14         { 
    15                 public function Application() 
     14        {        
     15                public static const APPLICATION_NAME:String = 'jp.seagirl.hello'; 
     16                public static const APPLICATION_VERSION:String = '';     
     17                public static const DEFAULT_PAGE:String = 'Intro'; 
     18                 
     19                private var applicationManager:ApplicationManager; 
     20                private var mainView:Main; 
     21                                 
     22                private function initializeApplication():void 
    1623                { 
    17                         super(); 
    18                          
    1924                        applicationManager = ApplicationManager.instance; 
    2025                        applicationManager.name = APPLICATION_NAME; 
     
    2328                        applicationManager.traceApplicationInformation(); 
    2429                         
    25                         Thread.initialize(new EnterFrameThreadExecutor); 
     30                        Thread.initialize(new EnterFrameThreadExecutor()); 
    2631                } 
    2732                 
    28                 public static const APPLICATION_NAME:String = 'jp.seagirl.hello'; 
    29                 public static const APPLICATION_VERSION:String = '';     
    30                 public static const DEFAULT_PAGE:String = 'Intro'; 
    31                  
    32                 private var applicationManager:ApplicationManager; 
    33                  
    34                 // Using MXML 
    35                 public var main:Main; 
     33                private function initializeView():void 
     34                { 
     35                        mainView = new Main(); 
     36                        addChild(mainView); 
     37                        mainView.percentHeight = 100; 
     38                        mainView.percentWidth = 100; 
     39                } 
    3640                 
    3741                override protected function initializeHandler(event:FlexEvent):void 
    3842                {        
    39                         main = new Main(); 
    40                         addChild(main); 
    41                         main.percentHeight = 100; 
    42                         main.percentWidth = 100; 
     43                        initializeApplication(); 
     44                        initializeView(); 
    4345                } 
    4446                 
  • as3/GeniusFramework/samples/HelloGenius/src/jp/seagirl/hello/views/Intro.mxml

    r764 r769  
    55        xmlns:genius="http://seagirl.jp/genius"> 
    66        <mx:Text text="Hello, Genius Framework!" x="20" y="20"/> 
    7         <genius:Link id="link" text="Go to test" x="20" y="60" textDecoration="underline"/> 
     7        <genius:Link id="link" text="Go to test" x="20" y="60"/> 
    88</IntroBase> 
  • as3/GeniusFramework/samples/HelloGenius/src/jp/seagirl/hello/views/Main.mxml

    r764 r769  
    55        xmlns:mx="http://www.adobe.com/2006/mxml"> 
    66        <mx:ViewStack id="viewStack" width="100%" height="100%"> 
    7                 <Intro name="Intro" width="100%" height="100%"/> 
    8                 <Test name="Test" width="100%" height="100%"/> 
     7                <Intro width="100%" height="100%"/> 
     8                <Test width="100%" height="100%"/> 
    99        </mx:ViewStack> 
    1010</MainBase> 
  • as3/GeniusFramework/samples/HelloGenius/src/jp/seagirl/hello/views/MainBase.as

    r764 r769  
    11package jp.seagirl.hello.views 
    22{ 
    3         import flash.display.DisplayObject; 
    4          
    53        import jp.seagirl.genius.managers.ApplicationManager; 
    64        import jp.seagirl.genius.views.ViewBase; 
     5        import jp.seagirl.hello.threads.ChangeStateThread; 
    76         
    87        import mx.binding.utils.BindingUtils; 
    98        import mx.containers.ViewStack; 
    10         import mx.events.FlexEvent; 
    11          
    12         import jp.seagirl.hello.threads.ChangeStateThread; 
     9        import mx.core.UIComponent; 
    1310 
    1411        public class MainBase extends ViewBase 
     
    1815                override protected function initializeView():void 
    1916                { 
    20                         BindingUtils.bindSetter(setStateData, ApplicationManager.instance, 'state'); 
     17                        BindingUtils.bindSetter(changePage, ApplicationManager.instance, 'state'); 
    2118                } 
    2219                 
    23                 private function setStateData(data:Object):void 
    24                 {                
    25                         if (data != null) 
     20                private function changePage(data:Object):void 
     21                { 
     22                        if (data == null) 
     23                                return; 
     24                                 
     25                        var child:UIComponent; 
     26                        viewStack.getChildren().forEach( 
     27                                function (element:UIComponent, index:int, array:Array):void 
     28                                { 
     29                                        if (element.className == ApplicationManager.instance.currentPage) 
     30                                                child = element; 
     31                                } 
     32                        ); 
     33                         
     34                        if (child) 
    2635                        { 
    27                                 var applicationManager:ApplicationManager = ApplicationManager.instance; 
    28                                 var child:DisplayObject = viewStack.getChildByName(applicationManager.currentPage); 
    29                                 if (child) 
    30                                 { 
    31                                         viewStack.selectedIndex = viewStack.getChildIndex(child); 
    32                                         return; 
    33                                 } 
    34                                  
    35                                 new ChangeStateThread().start(); 
     36                                viewStack.selectedIndex = viewStack.getChildIndex(child); 
     37                                return; 
    3638                        } 
     39                         
     40                        new ChangeStateThread().start(); 
    3741                } 
    3842                 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/core/Application.as

    r762 r769  
    1313        {                
    1414                public static const APPLICATION_NAME:String = 'Portfolio'; 
    15                 public static const APPLICATION_VERSION:String = '1.0.0'; 
     15                public static const APPLICATION_VERSION:String = '1.1.0'; 
    1616                public static const DEFAULT_PAGE:String = 'Intro'; 
    1717                 
    18                 public function Application() 
     18                private var applicationManager:ApplicationManager; 
     19                private var mainView:Main; 
     20                 
     21                private function initializeApplication():void 
    1922                { 
    20                         super(); 
    21                          
    2223                        applicationManager = ApplicationManager.instance; 
    2324                        applicationManager.name = APPLICATION_NAME; 
     
    2627                        applicationManager.traceApplicationInformation(); 
    2728                         
    28                         Thread.initialize(new EnterFrameThreadExecutor); 
     29                        Thread.initialize(new EnterFrameThreadExecutor()); 
    2930                } 
    3031                 
    31                 private var applicationManager:ApplicationManager; 
    32                  
    33                 // Using MXML 
    34                 public var mainView:Main; 
    35                  
    36                 override protected function initializeHandler(event:FlexEvent):void 
    37                 {        
     32                private function initializeView():void 
     33                { 
    3834                        mainView = new Main(); 
    3935                        addChild(mainView); 
     
    4238                } 
    4339                 
     40                override protected function initializeHandler(event:FlexEvent):void 
     41                {        
     42                        initializeApplication(); 
     43                        initializeView(); 
     44                } 
     45                 
    4446        } 
    4547} 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/threads/amazon/LoadAmazonThread.as

    r761 r769  
    33        import jp.seagirl.genius.threads.GeniusThread; 
    44        import jp.seagirl.sample.models.AmazonModel; 
     5         
     6        import mx.collections.XMLListCollection; 
    57         
    68        import org.libspark.thread.threads.net.URLLoaderThread; 
     
    1113                 
    1214                private var model:AmazonModel = AmazonModel.instance; 
     15                private var c:int = 1; 
    1316                 
    1417                override protected function run():void 
    15                 {        
     18                {                               
    1619                        model.isLoading = true; 
    1720                         
     
    2326                        variables.BrowseNode = '569322'; 
    2427                        variables.ResponseGroup = 'Images'; 
    25                         variables.ItemPage = 1
     28                        variables.ItemPage = c
    2629                         
    2730                        request.url = 'http://webservices.amazon.co.jp/onca/xml'; 
     
    4144                                 
    4245                                var result:XML = XML(loaderThread.loader.data); 
    43                                 model.rawdata = result.Items.Item; 
    44                                 model.data = model.rawdata; 
     46                                if (c == 1) 
     47                                { 
     48                                        model.rawdata = result.Items.Item; 
     49                                } 
     50                                else 
     51                                { 
     52                                        var oldData:XMLListCollection = new XMLListCollection(model.rawdata); 
     53                                        var newData:XMLListCollection = new XMLListCollection(result.Items.Item); 
     54                                         
     55                                        newData.toArray().forEach( 
     56                                                function (element:XML, index:int, array:Array):void 
     57                                                { 
     58                                                        oldData.addItem(element); 
     59                                                } 
     60                                        ); 
     61                                } 
     62                                model.data = new XMLList(model.rawdata); 
    4563                        } 
    4664                        catch (e:Error) 
     
    5169                                </result>; 
    5270                        } 
    53  
    54                         model.loaded = true; 
    55                         model.isLoading = false; 
     71                         
     72                        if (c < 10) 
     73                        { 
     74                                c++; 
     75                                next(run); 
     76                        } 
     77                        else 
     78                        { 
     79                                model.loaded = true; 
     80                                model.isLoading = false;         
     81                        } 
    5682                } 
    5783                 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/views/Main.mxml

    r638 r769  
    22<MainBase 
    33        xmlns="jp.seagirl.sample.views.*" 
     4        xmlns:amazon="jp.seagirl.sample.views.amazon.*" 
     5        xmlns:drawing="jp.seagirl.sample.views.drawing.*" 
     6        xmlns:hair="jp.seagirl.sample.views.hair.*" 
     7        xmlns:intro="jp.seagirl.sample.views.intro.*" 
     8        xmlns:threePane="jp.seagirl.sample.views.threePane.*" 
    49        xmlns:genius="http://seagirl.jp/genius" 
    510        xmlns:mx="http://www.adobe.com/2006/mxml"> 
     
    1116                                <mx:Spacer height="16"/> 
    1217                                <mx:VBox id="navigation"> 
    13                                         <genius:Link name="Intro" text="Intro" textDecoration="underline"/> 
    14                                         <genius:Link name="Drawing" text="Drawing" textDecoration="underline"/> 
    15                                         <genius:Link name="Hair" text="Hair" textDecoration="underline"/> 
    16                                         <genius:Link name="ThreePane" text="ThreePane" textDecoration="underline"/> 
    17                                         <genius:Link name="Amazon" text="Amazon" textDecoration="underline"/> 
     18                                        <genius:Link name="Intro" text="Intro"/> 
     19                                        <genius:Link name="Drawing" text="Drawing"/> 
     20                                        <genius:Link name="Hair" text="Hair"/> 
     21                                        <genius:Link name="ThreePane" text="ThreePane"/> 
     22                                        <genius:Link name="Amazon" text="Amazon"/> 
    1823                                </mx:VBox> 
    1924                        </mx:VBox> 
    2025                        <mx:ViewStack id="viewStack" width="100%" height="100%" 
    2126                                borderSides="left" borderStyle="solid"> 
    22                                 <Intro name="Intro" width="100%" height="100%"/> 
    23                                 <Drawing name="Drawing" width="100%" height="100%"/> 
    24                                 <Hair name="Hair" width="100%" height="100%"/> 
    25                                 <ThreePane name="ThreePane" width="100%" height="100%"/> 
    26                                 <Amazon name="Amazon" width="100%" height="100%"/> 
     27                                <intro:Intro width="100%" height="100%"/> 
     28                                <drawing:Drawing width="100%" height="100%"/> 
     29                                <hair:Hair width="100%" height="100%"/> 
     30                                <threePane:ThreePane width="100%" height="100%"/> 
     31                                <amazon:Amazon width="100%" height="100%"/> 
    2732                        </mx:ViewStack> 
    2833                </mx:HDividedBox> 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/views/MainBase.as

    r762 r769  
    11package jp.seagirl.sample.views 
    22{ 
    3         import flash.display.DisplayObject; 
    43        import flash.events.MouseEvent; 
    54         
    65        import jp.seagirl.controls.Link; 
    7         import jp.seagirl.genius.controllers.GeniusEvent; 
    86        import jp.seagirl.genius.managers.ApplicationManager; 
    97        import jp.seagirl.genius.views.ViewBase; 
     
    119         
    1210        import mx.binding.utils.BindingUtils; 
     11        import mx.binding.utils.ChangeWatcher; 
    1312        import mx.containers.VBox; 
    1413        import mx.containers.ViewStack; 
     14        import mx.core.UIComponent; 
     15        import mx.events.PropertyChangeEvent; 
    1516 
    1617        public class MainBase extends ViewBase 
     
    2223                override protected function initializeView():void 
    2324                { 
    24                         BindingUtils.bindSetter(setStateData, ApplicationManager.instance, 'state'); 
     25                        BindingUtils.bindSetter(changePage, ApplicationManager.instance, 'state'); 
    2526                         
    2627                        title.addEventListener(MouseEvent.CLICK, titleClickHandler); 
     
    3334                } 
    3435                 
    35                 private function setStateData(data:Object):void 
    36                 {        
    37                         if (data != null) 
     36                private function changePage(data:Object):void 
     37                { 
     38                        if (data == null) 
     39                                return; 
     40                         
     41                        var child:UIComponent; 
     42                        viewStack.getChildren().forEach( 
     43                                function (element:UIComponent, index:int, array:Array):void 
     44                                { 
     45                                        if (element.className == ApplicationManager.instance.currentPage) 
     46                                                child = element; 
     47                                } 
     48                        ); 
     49                         
     50                        if (child) 
    3851                        { 
    39                                 var applicationManager:ApplicationManager = ApplicationManager.instance; 
    40                                 var child:DisplayObject = viewStack.getChildByName(applicationManager.currentPage); 
    41                                 if (child) 
    42                                 { 
    43                                         viewStack.selectedIndex = viewStack.getChildIndex(child); 
    44                                         return; 
    45                                 } 
    46                                  
    47                                 new ChangeStateThread().start(); 
     52                                viewStack.selectedIndex = viewStack.getChildIndex(child); 
     53                                return; 
    4854                        } 
     55                         
     56                        new ChangeStateThread().start(); 
    4957                } 
    5058                 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/views/amazon/Amazon.mxml

    r638 r769  
    11<?xml version="1.0" encoding="utf-8"?> 
    22<AmazonBase 
    3         xmlns="jp.seagirl.sample.views.*" 
     3        xmlns="jp.seagirl.sample.views.amazon.*" 
    44        xmlns:mx="http://www.adobe.com/2006/mxml"> 
    55        <mx:TileList id="tileList" 
    66                width="100%" height="100%" 
    7                 itemRenderer="jp.seagirl.sample.views.AmazonRenderer"/> 
     7                itemRenderer="jp.seagirl.sample.views.amazon.AmazonRenderer"/> 
    88</AmazonBase> 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/views/amazon/AmazonBase.as

    r759 r769  
    1 package jp.seagirl.sample.views 
     1package jp.seagirl.sample.views.amazon 
    22{ 
    33        import jp.seagirl.genius.views.ViewBase; 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/views/amazon/AmazonRenderer.mxml

    r638 r769  
    11<?xml version="1.0" encoding="utf-8"?> 
    22<AmazonRendererBase 
    3         xmlns="jp.seagirl.sample.views.*" 
     3        xmlns="jp.seagirl.sample.views.amazon.*" 
    44        xmlns:mx="http://www.adobe.com/2006/mxml"> 
    55        <mx:Image id="image" width="160" height="160"/> 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/views/amazon/AmazonRendererBase.as

    r640 r769  
    1 package jp.seagirl.sample.views 
     1package jp.seagirl.sample.views.amazon 
    22{ 
    33        import flash.events.MouseEvent; 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/views/drawing/Drawing.mxml

    r623 r769  
    11<?xml version="1.0" encoding="utf-8"?> 
    22<DrawingBase 
    3         xmlns="jp.seagirl.sample.views.*" 
     3        xmlns="jp.seagirl.sample.views.drawing.*" 
    44        xmlns:mx="http://www.adobe.com/2006/mxml"> 
    55        <mx:HBox id="toolBox" paddingTop="20" paddingLeft="20"> 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/views/drawing/DrawingBase.as

    r638 r769  
    1 package jp.seagirl.sample.views 
     1package jp.seagirl.sample.views.drawing 
    22{ 
    33        import flash.events.MouseEvent; 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/views/hair/Hair.mxml

    r623 r769  
    11<?xml version="1.0" encoding="utf-8"?> 
    22<HairBase 
    3         xmlns="jp.seagirl.sample.views.*" 
     3        xmlns="jp.seagirl.sample.views.hair.*" 
    44        xmlns:mx="http://www.adobe.com/2006/mxml"> 
    55        <mx:Button id="button" x="20" y="20"/> 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/views/hair/HairBase.as

    r638 r769  
    1 package jp.seagirl.sample.views 
     1package jp.seagirl.sample.views.hair 
    22{ 
    33        import flash.events.Event; 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/views/intro/Intro.mxml

    r623 r769  
    11<?xml version="1.0" encoding="utf-8"?> 
    22<IntroBase 
    3         xmlns="jp.seagirl.sample.views.*" 
     3        xmlns="jp.seagirl.sample.views.intro.*" 
    44        xmlns:mx="http://www.adobe.com/2006/mxml"> 
    55        <mx:VBox x="20" y="20"> 
  • as3/GeniusFramework/samples/Portfolio/flex/src/jp/seagirl/sample/views/intro/IntroBase.as