onSelectイベントはコンポーネントにのみ存在し、選択したチェックボックスのコンボボックスのみを表示/非表示にします。
これが参考のために私のzulファイルです
![<?page title="MVVM Tree POC"?>
<zk>
<borderlayout height="800px">
<west size="25%"></west>
<center>
<window apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('com.nagarro.viewmodel.TreeViewModel')"
title="Dynamic Tree" border="normal">
<tree checkmark="true" model="@bind(vm.treeModel)"
onSelect="@command('select')">
<treecols>
<treecol label="Name" align="center" />
<treecol label="Value" align="center" />
<treecol label="IP" align="center" />
</treecols>
<template name="model" var="node" status="s">
<treeitem checkable="@load(node.checkable)">
<treerow style="text-align:center;">
<treecell
label="@bind(node.data.firstName)" style="text-align:left;">
</treecell>
<treecell style="text-align:center;">
<combobox>
<comboitem label="Fixed" />
<comboitem label="System" />
<comboitem label="Parameter" />
</combobox>
</treecell>
<treecell style="text-align:center;">
<combobox>
<comboitem label="IP" />
</combobox>
</treecell>
</treerow>
</treeitem>
</template>
</tree>
</window>
</center>
</borderlayout>
</zk>]
問題のスナップショット 画像では、チェックボックスがオンになっているコンポーネントのコンボボックスのみを表示したいと思います。チェックボックスがない、またはチェックボックスがオフになっているコンポーネントには、コンボボックスが表示されないようにする必要があります。ありがとう
これがmvvmファイルです
public class TreeViewModel {
private Request request;
private AdvancedTreeModel treeModel;
/**
* @return the treeModel
*/
public AdvancedTreeModel getTreeModel() {
if(treeModel == null){
TreeNode<Tree> treeNode = new TreeList(request).getRoot();
treeModel = new AdvancedTreeModel(treeNode);
treeModel.setMultiple(true);
}
return treeModel;
}
/**
* @param treeModel the TreeModel to set
*/
public void setTreeModel(AdvancedTreeModel treeModel) {
this.treeModel = treeModel;
}
@Init
public void init(){
try {
File file = new File("C:\\Users\\jatin1937\\Desktop\\XML files\\Request.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Request.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
request = (Request) jaxbUnmarshaller.unmarshal(file);
}catch (JAXBException e) {
e.printStackTrace();
}
}
/**
* @return the request
*/
public Request getRequest() {
return request;
}
/**
* @param request the request to set
*/
public void setRequest(Request request) {
this.request = request;
}
@Command
public void select(){
System.out.println("onSelect method entered");
}
}
ツリーデータはいくつかのヘルパークラスを通じて作成されますが、ここで説明することは重要ではありません。