2010-10-20 98 views
2

我傳遞了一堆標籤從ZUL文件到Java文件像這樣:如何使用ZK getFellow()方法?

tabs.zul

<tabs> 
    <tab id="tab1" label="Tab1"> </tab> 
    <tab id="tab2" label="Tab2"> </tab> 
</tabs> 
<zscript> 
    testTabs = new TestTabs(); 
    Tab[] tabs = {tab1, tab2} 
    testTabs.registerTabs(tabs) 
</zscript> 

TestTabs.java

public class TestTabs { 
    .... 
    private HashMap<String,Tab> tabMap; 

    void registerTabs (Tab[] tabs) { 
     this.tabMap = new HashMap<String,Tab>(); 
     for (Tab t: tabs) { 
     this.tabMap.put(t.getId(),t); 
     } 
    } 

    if(condition) { 
    tabMap.get("tab1").setVisible(true); 
    tabMap.get("tab2").setVisible(true); 
    } 

} 

現在,我想使用包含HashMap訪問標籤是一個迂迴的方式。使用getFellow(String id)方法訪問選項卡會簡單得多,對吧?但是,我不知道如何實現這一點。有人可以幫我弄這個嗎?

謝謝, 索尼

+0

1.什麼是「ZK」? 2. getFellow()是什麼意思?你似乎在使用你認爲我們會理解的術語,但是你並沒有定義自己。 – 2010-10-20 18:30:38

+3

@matt b:http://tinyurl.com/3w76bgc – sinuhepop 2011-10-06 17:32:54

回答

1

有幾種方法可以做到這一點:

  1. 擴展的org.zkoss.zul.Window在你的類並在ZUL文件中像這樣將其鏈接:
    <window id="myWindow" use="package.to.your.ClassThatExtendsWindow">
    <!-- your tabs go here -->
    </window>
    然後在您的班級中,您可以使用Tab tab1 = (Tab) this.getFellow("tab1");
  2. 延伸org。 zkoss.zk.ui.util.GenericForwardComposer並在ZUL這樣的鏈接是:
    <window id="myWindow" apply="package.to.your.ClassThatExtendsGenericForwardComposer">
    <!-- your tabs go here -->
    </window>
    然後在你的類中聲明private Tab tab1;,你可以使用它的時候了。

注意differente bewtween的使用適用關鍵字。如果使用第二種方法,請確保變量的名稱與組件的標識(「tab1」)相匹配。

1

的getFellow()方法可以在ZK的部件一起使用。 用戶可以訪問該組件由它的ID

myWindow.getFellow("label_1"); 

,如果你正在使用你的應用程序ZK MVC方式。

您可以將您的**「作曲家」保存到桌面,然後您可以訪問頁面的任何部分。