Symfoware

Symfowareについての考察blog

WebScriptとFlexを使用してアプリケーションを作成する その4

せっかくなので、ログアウトも仕込んで見ます。

WebScriptを使用してアプリケーションを作成する その4


logout.htmlを作成して、画面の表示が確認できたらログアウト成功。
ということにします。

■logout.html


<root>
    <value>logout_complite</value>
</root>




ログアウトボタンを仕込んだソースです。



<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.rpc.events.ResultEvent;
            import flash.display.Sprite;
            import flash.net.*;
            import mx.controls.Alert;
            import mx.managers.*;
            
            
            [Bindable]
            private var urlString:String;
            private var result_next_func:Function;
            [Bindable]
            private var cgi_path:String = "http://192.168.1.250/cgi-bin/";
            
            private function load_data(event:ResultEvent):void {
                System.useCodePage = true;
                var rawData:Object = event.result;
                result_next_func(rawData);
            }
            
            private function show_check(rawData:Object):void {
                if (rawData.error_code.value == "00000") {
                    //Alert.show("ログインしました。");
                    login.visible = false;
                    login.height = 0;
                    grid_view.visible = true;
                    get_image_list();
                } else {
                    var msg:String = new String();
                    msg = "エラーコード:" + rawData.error_code.value + "\n";
                    msg += rawData.error_msg.value;
                    Alert.show(msg);
                }
                
            }
            
            private function get_image_list():void
            {
                //データ取得
                urlString = cgi_path + "wit_fmtr.exe";
                
                var params:Array = new Array();
                params["WIT_html"] = "image_list.html";
                service.request = params;
                result_next_func = set_image_list;
                
                service.send();
            }
            
            private function set_image_list(rawData:Object):void
            {
                //Alert.show(String(rawData));
                grid.dataProvider = rawData.record;
            }
            
            private function do_login():void {
                urlString = cgi_path + "wit_gwd.exe";
                
                var params:Array = new Array();
                params["WIT_database"] = WIT_database.text;
                params["WIT_userid"] = WIT_userid.text;
                params["WIT_passwd"] = WIT_passwd.text;
                params["WIT_env"] = "flex";
                params["WIT_error"] = "yes";
                service.request = params;
                result_next_func = comp_login;
                service.send();
            }
            
            private function do_logout():void {
                urlString = cgi_path + "wit_logout.exe";
                var params:Array = new Array();
                params["WIT_html"] = "logout.html";
                service.request = params;
                
                result_next_func = comp_logout;
                service.send();
            }
            
            private function comp_logout(rawData:Object):void {
                
                if (rawData.value != "logout_complite") {
                    Alert.show("ログアウト失敗:" + rawData.value);
                    return;
                }
                login.visible = true;
                login.height = 200;
                grid_view.visible = false;
            }
            
            private function comp_login(rawData:Object):void {
                
                if (rawData.value != "complite") {
                    Alert.show(rawData.value);
                    return;
                }
                //引き続き、ログインチェック
                urlString = cgi_path + "wit_fmtr.exe";
                
                var params:Array = new Array();
                params["WIT_html"] = "error_check.html";
                service.request = params;
                result_next_func = show_check;
                
                service.send();
            }
            
            private function DoDodoubleClick(event:MouseEvent):void {
                var img_src:String = grid.dataProvider[grid.selectedIndex]["img_src"];
                //Alert.show(no);
                // 子画面生成
                var preview:PreviewWindows = new PreviewWindows();
                
                // 初期値設定
                preview.setImageSrc(img_src);
                
                // Popupの生成
                PopUpManager.addPopUp(preview,this,true);
                PopUpManager.centerPopUp( preview );
            }
        ]]>
    </mx:Script>

    <mx:HTTPService id="service" resultFormat="e4x" url="{urlString}" method="POST" result="load_data(event)" showBusyCursor="true" />

    <mx:VBox id="login" right="10" left="10" top="10" bottom="10" height="100%" width="100%" backgroundColor="white" fontSize="12">
            <mx:TextInput id="WIT_database" text="SAMPLE" />
            <mx:TextInput id="WIT_userid" text="Administrator" />
            <mx:TextInput id="WIT_passwd" text="password" displayAsPassword="true" />

            <mx:Button label="ログイン" click="do_login()" />
    </mx:VBox>
    
    <mx:VBox id="grid_view" visible="false" width="100%">
        <mx:HBox horizontalAlign="right" width="100%">
            <mx:Button label="ログアウト" click="do_logout()" />
        </mx:HBox>
        <mx:DataGrid id="grid" height="100%" width="100%" doubleClickEnabled="true" doubleClick="DoDodoubleClick(event)">
            <mx:columns>
                <mx:DataGridColumn headerText="連番" dataField="no" width="30" />
                <mx:DataGridColumn dataField="サムネール">
                <mx:itemRenderer>
                 <mx:Component>
                    <mx:HBox height="360">
                     <mx:Image source="{data.img_src_s}" />
                    </mx:HBox>
                 </mx:Component>
                </mx:itemRenderer>
                </mx:DataGridColumn>
            </mx:columns>
        </mx:DataGrid>
    </mx:VBox>
</mx:Application>




これでWebScriptとFlexを連携してアプリケーションの作成できることが
示唆できたかな?と考えてます。




関連記事
  1. 2009/09/05(土) 12:18:53|
  2. ツール開発
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<FC2ブログ テンプレート中で記事のIDを取得する | ホーム | WebScriptとFlexを使用してアプリケーションを作成する その3>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/129-26e49f6e
この記事にトラックバックする(FC2ブログユーザー)