<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    J2ME 技術的學習與實踐者

    [導入]OpenBaseMovil Action <--> View <--> Controller


    網站: JavaEye  作者: iwinyeah  鏈接:http://iwinyeah.javaeye.com/blog/172974  發表時間: 2008年03月17日

    聲明:本文系JavaEye網站發布的原創博客文章,未經作者書面許可,嚴禁任何網站轉載本文,否則必將追究法律責任!

    Action: 規定了與用戶交互的View可以觸發的動作,在某個View新建之后顯示之前,應先為其指定具體的Action,當用戶按下了相應的Command按鈕之后,View將該Command對應的Action發送到該View的Controller進行處理。
    //
    public class Action{
        String name; // 名稱 
        Command command; // 命令 
        int code; // 代碼 (將由該View的傳遞到其Controller使用)
        Item item; // 數據項 
        boolean defaultAction; // 是否是默認的Action 
        //...省略
    }
    
    

    請看View的基類的代碼節選
    public abstract class AbstractView{
    
        //...省略
    
        // 為該View增加Action
        public void addAction( final Action action, final boolean active )
        {
            if( !actions.containsKey( action.getName() ) )
            {
                // 將Action存入Actions表中
                actions.put( action.getName(), action );
                if( active )
                {
                    activateAction( action );
                }
            }
        }
    
        // 使Action生效可用
        private void activateAction( final Action action )
        {
            final Command command = action.getCommand();
            activeActions.put( command, action );
            final Item item = action.getItem();
            if( item == null )
            {
                addCommand( command ); // 該Action是屏幕相關的命令
            }
            else
            {
                item.addCommand( command ); // 該Action是數據項相關的命令
                if( action.isDefaultAction() )
                {
                    item.setDefaultCommand( command );
                }
            }
        }
    
        //...省略
    
        // 用戶按下相應的命令鍵后,觸發執行與其關聯的Action
        public void commandAction(
                final Command       command,
                final Displayable   displayable
        )
        {
            if( !handleAction( command ) )
            {
                if( displayable instanceof Choice )
                {
                    AbstractController.commandAction(
                            this,
                            command,
                            (Choice) displayable
                    );
                }
                else
                {
                    AbstractController.commandAction( this, command );
                }
            }
        }
    
        // 用戶在某個指定了命令的Item按下了命令按鈕時觸發執行與其關聯的Action
        public void commandAction( final Command command, final Item item )
        {
            if( !handleAction( command ) )
            {
                AbstractController.commandAction( this, command );
            }
        }
    
        // 根據所觸發的命令查找關聯的Action,并新它發送到Controller進行處理
        public boolean handleAction( final Command command )
        {
            if( activeActions.containsKey( command ) )
            {
                final Action action = (Action) activeActions.get( command );
                // 以Action代碼為參數生成ControllerEvent并傳遞到controller處理
                final ControllerEvent event = new ControllerEvent(
                        action.getCode(),
                        this
                );
                controller.handle( event );
                return true;
            }
            else
            {
                return false;
            }
        }
    
        //...省略
    
    }
    

    本文的討論也很精彩,瀏覽討論>>


    JavaEye推薦




    文章來源:http://iwinyeah.javaeye.com/blog/172974

    posted on 2008-03-17 14:06 iwinyeah 閱讀(348) 評論(0)  編輯  收藏 所屬分類: OpenBaseMovil 資料

    View <--> Controller" trackback:ping="http://m.tkk7.com/iwinyeah/services/trackbacks/187974.aspx" /> -->
    主站蜘蛛池模板: 精品国产呦系列在线观看免费 | 在线观看视频免费国语| 成人免费毛片内射美女-百度| 亚洲高清免费在线观看| 亚洲精品视频在线看| 在线观着免费观看国产黄| 国产妇乱子伦视频免费| 无码精品人妻一区二区三区免费看| 亚洲五月午夜免费在线视频| 日本亚洲中午字幕乱码| 亚洲精品无码专区久久久| 免费亚洲视频在线观看| 国产精品区免费视频| 国产精品九九久久免费视频| 鲁死你资源站亚洲av| 亚洲熟妇无码AV| 亚洲精品无码专区久久久| 亚洲国产人成精品| 免费国产午夜高清在线视频| rh男男车车的车车免费网站| 污视频网站在线免费看| 亚洲国产精品国自产拍电影| 亚洲熟妇无码八AV在线播放| 亚洲人妻av伦理| 最新欧洲大片免费在线| 69式互添免费视频| 国产四虎免费精品视频| 99国产精品永久免费视频| 亚洲免费在线视频观看| 99久久99久久精品免费看蜜桃| 青青视频观看免费99| 一本岛高清v不卡免费一三区| 4399影视免费观看高清直播| 91大神免费观看| 2020久久精品国产免费| 欧美三级在线电影免费| 成人免费视频88| 吃奶摸下高潮60分钟免费视频| www.亚洲色图.com| 97无码免费人妻超级碰碰碰碰| 成人人免费夜夜视频观看|