이 시도 :
ZUL
<zk>
<div apply="test.TestComposer">
<tabbox>
<tabs id="tbs" />
<tabpanels id="tps" />
</tabbox>
<button id="btn" label="add tab" />
</div>
</zk>
TestComposer.java
package test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.*;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.Button;
import org.zkoss.zul.Label;
import org.zkoss.zul.Tab;
import org.zkoss.zul.Tabpanel;
import org.zkoss.zul.Tabpanels;
import org.zkoss.zul.Tabs;
/**
* Tested with ZK 6.0.2 and ZK Pivottable 2.0.0
*
*/
@SuppressWarnings("rawtypes")
public class TestComposer extends SelectorComposer {
@Wire
Button btn;
@Wire
Tabs tbs;
@Wire
Tabpanels tps;
List tabs = new ArrayList();
int limit = 3;
@Listen("onClick = #btn")
public void onClick$btn() {
if (tabs.size() < limit) {
Tab tab = new Tab("Tab " + (tabs.size()+1));
tab.setParent(tbs);
tabs.add(tab);
Tabpanel tp = new Tabpanel();
new Label("Tabpanel " + tabs.size()).setParent(tp);
tp.setParent(tps);
if (tabs.size() == limit) {
tab.setSelected(true);
overrideBehavior();
}
}
}
public void overrideBehavior() {
final Tab toSel = (Tab)tabs.get(tabs.size()-1);
for (int i = 0; i < tabs.size() - 1; i++) {
final Tab tab = (Tab)tabs.get(i);
tab.addEventListener(// add an EventListener
"onClick", // listen to onClick event
new EventListener() { // create an EventListener instance to add
public void onEvent (Event event) { // the method will be called while onClick event triggered
Clients.evalJavaScript("zk.log('"+tab+" clicked')");
toSel.setSelected(true); // make sure the third one is selected at server side
}
}
);
tab.setWidgetOverride("_sel", "function(notify, init) {return;}"); // prevent select at client side
}
}
}
그때 내가 어떤 클릭에 어떤 이벤트가 발생 할 수 없습니다 오전 탭 번호는 (사실) setDisabled 사용하는 경우 tab.Actually 해당 탭을 열지 않고 탭을 클릭하면 정보 메시지가 표시됩니다. – psisodia
샘플이 요구 사항에 맞게 업데이트되었습니다. – benbai123
솔루션은 좋지만 zul 페이지가 아닌 java 클래스에서이 작업을 수행해야합니다. 여기서 언급 한 것과 같은 방식으로 작업을 수행 할 수있는 방법이 있습니다. – psisodia