我在Google Web Toolkit中使用涉及TabLayoutPanel
的UIBinder進行佈局。此佈局具有將由我的應用程序使用的所有選項卡的超集(將其視爲管理員視圖)。是否可以重用GWT UIBinder面板?
我現在需要創建一個新的佈局,使用這些選項卡的子集(例如,對於普通用戶)。
是否可以在我的用戶佈局中從我的管理佈局導入面板?或者也許可以將它們全部定義在第三個文件中,並從兩個佈局導入?
我在Google Web Toolkit中使用涉及TabLayoutPanel
的UIBinder進行佈局。此佈局具有將由我的應用程序使用的所有選項卡的超集(將其視爲管理員視圖)。是否可以重用GWT UIBinder面板?
我現在需要創建一個新的佈局,使用這些選項卡的子集(例如,對於普通用戶)。
是否可以在我的用戶佈局中從我的管理佈局導入面板?或者也許可以將它們全部定義在第三個文件中,並從兩個佈局導入?
將每個標籤內容定義爲單獨的UiBinder模板。由於UiBinder類是複合材料,您可以將它們添加到任何容器,就像其他任何小部件一樣。
您可以在代碼中組裝TabLayoutPanel,方法是將每個UiBinder模板對象添加到TabPanel的選項卡中,或使用TabPanel和所有定義的選項卡定義另一個UiBinder模板。
如果您使用UiBinder路徑模板化TabLayoutPanel,通過定義一個指向所有組合所在程序包的新「名稱空間」,將標籤面板內容(您之前使用UiBinder定義的複合材料)導入到UiBinder中。然後,在UiBinder模板中將您的組合作爲名稱空間:ClassName引用。
如果com.project.package
是您在其中保留所有您想要嵌入到單個選項卡中的組合,然後在xmlns:g聲明後不久定義新的名稱空間f爲xmlns:f= 'com.project.package'
。
你指個人在複合材料的UiBinder的作爲
<f:Composite1 />
<f:Composite2 />
您肯定可以將您已撰寫的視圖(包括UIBinder模板和常規的Widget
)導入到另一個UIBinder模板中。
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:my='urn:import:com.my.app.widgets' >
<g:HTMLPanel>
<my:WeatherReport ui:field='weather'/>
<my:Stocks ui:field='stocks'/>
<my:CricketScores ui:field='scores' />
</g:HTMLPanel>
</ui:UiBinder>
通知的Stocks
和CricketScores
小部件是如何從自己的包導入。
您不一定只需要根據用戶權限顯示/隱藏選項卡,就可以根據訪問級別在GWT代碼中顯示/隱藏選項卡。
凡定義股票?我想繼續用XML定義我的佈局,因爲我覺得這比在Java代碼中定義它們更容易管理。 – pkaeding
根據上面的代碼,股票應該在com.my.app.widgets包中。 – markovuksanovic
是的,我的問題更多的是「股票的UIBinder佈局在哪裏定義的?」不過,我認爲@Ashwin Prabhu的回答可能會回答這個問題。 – pkaeding
謝謝,這看起來很有希望。我會給它一個鏡頭。 – pkaeding
這樣做的竅門;謝謝! – pkaeding
很簡單,不是嗎? –