gwt
  • android-activity
  • uibinder
  • place
  • event-bus
  • 2012-11-02 67 views 2 likes 
    2

    我是GWT的新手,我不知道如何使用Activity,Place,EventBus和UIbinder。 我的應用程序的佈局是不服這樣的:GWT活動:如何使用活動,地點,事件總線和uibinder

    窗口小部件1:

    <g:DockLayoutPanel ui:field="myPanel" unit='PX'> 
        <g:north size='60'> 
         <m:HeaderPanelImpl styleName='{res.style.panelBorder}' ui:field='headerPanel' /> 
        </g:north> 
        <g:south size='60'> 
         <g:HTMLPanel styleName='{res.style.panelBorder}' ui:field='footerPanel' /> 
        </g:south> 
        <g:center> 
         <g:SimpleLayoutPanel styleName='{res.style.panelBorder}' ui:field='centerPanel' /> 
        </g:center> 
    </g:DockLayoutPanel> 
    

    在這裏,在「widget1.headerPanel」一個具有導航控制,其在小部件「widget1.centerPanel」來示出。 必須在「widget1.centerPanel」中顯示的小部件是「widget2.0」和「widget2.1」。

    WIDGET2.0

    <g:DockLayoutPanel unit='PX'> 
        <g:north size='100'> 
         <g:HTMLPanel styleName='{res.style.panelBorder}'> 
          <g:Label>TopPanel</g:Label> 
         </g:HTMLPanel> 
        </g:north> 
        <g:west size='200'> 
         <g:HTMLPanel styleName='{res.style.panelBorder}'> 
          <g:Label>LeftPanel</g:Label> 
         </g:HTMLPanel> 
        </g:west> 
        <g:east size='200'> 
         <g:HTMLPanel styleName='{res.style.panelBorder}'> 
          <g:Label>RightPanel</g:Label> 
         </g:HTMLPanel> 
        </g:east> 
        <g:center> 
         <g:SimpleLayoutPanel styleName='{res.style.panelBorder}' ui:field='centerPanel' /> 
        </g:center> 
    </g:DockLayoutPanel> 
    

    Widget2.1

    <g:HTMLPanel> 
        <g:Label>Settings</g:Label> 
    </g:HTMLPanel> 
    

    在「widget2.0.topPanel」我有它控制部件將在「widget2.0.centerPanel」示出被導航 必須在「widget2.centerPanel」中顯示的小部件是「widget3.0」和「widget3.1」。

    Widget3.0

    <g:HTMLPanel> 
        <g:Label>Content 1</g:Label> 
    </g:HTMLPanel> 
    

    Widget3.1

    <g:HTMLPanel> 
        <g:Label>Content 2</g:Label> 
    </g:HTMLPanel> 
    

    我的問題是如何處理 「onPlaceChangeEvent」?

    在例如,如果URL是mydomain.com/myapp.html#home:content1
    應用必須顯示插件1,插件2.0和Widget 3.0

    如果URL是mydomain.com/myapp.html #home:內容2
    應用必須顯示WIDGET1,插件2.0和Widget 3.1

    如果URL是mydomain.com/myapp.html#settings
    應用必須顯示WIDGET1和widget 2.1

    我想知道賭注ween兩種變體:

    1. 創建爲2個ActivityManagers。一個來自widget1.navigation的活動,另一個來自widget2.navigation的活動。但是,如果widget2在widget 1之前創建,會發生什麼?
    2. 創建一個創建一對視圖的Activity。

    代碼:例如

    public class MonthlyViewActivity extends AbstractActivity implements MonthlyView.Presenter { 
    
        private Widget2_0 widget2_0; 
        private Widget3_0 widget3_0; 
    
        ...... 
        public void start(AcceptsOneWidget panel, EventBus eventBus) { 
         widget2_0 = new Widget2_0(); 
         widget3_0 = new Widget3_0(); 
        .......... 
        } 
        .... 
    } 
    

    ,這是什麼情況下,最好的做法是什麼?

    回答

    0

    如果您使用eclipse在您的項目中創建一個MVP架構,它將創建許多文件,如活動,地點,一個接口,一個實現類和相應的ui xml類。您必須創建活動映射器和活動歷史記錄管理器類。並在您的預約模塊中爲您的應用程序設置默認位置。在任何事件調用之後的話語轉到方法的任何地方,並提供您的網頁的鏈接,並在那裏檢查得到的價值標記AMD值顯示您的小部件你想顯示。

    相關問題