2010-10-20 97 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方式。

您可以将您的**“作曲家”保存到桌面,然后您可以访问页面的任何部分。