Olá a todos!
Estou tentando fazer uma richTree dinâmica, como a tree que há no iceFaces (http://component-showcase.icefaces.org/component-showcase/index.jsp?rvn=1# ). Mas não estou coneseguindo, depois de um dia inteiro de tentativas…
Como posso fazer para criar um novo treeNode usando um commandButton e um inputText em runtime?
Este é o código que estou usando:
package paco.ufscar;
import org.richfaces.component.UITree;
import org.richfaces.event.NodeSelectedEvent;
import org.richfaces.model.TreeNode;
import org.richfaces.model.TreeNodeImpl;
public class BeanTree {
private static TreeNode rootNode = null;
private String nodeTitle;
private String txtTopico;
private static int index = 1;
private static int noSelecionado;
public void addNode()
{
TreeNodeImpl nodeImpl = new TreeNodeImpl();
nodeImpl.setData(txtTopico);
rootNode.addChild(new Integer(index), nodeImpl);
index++;
}
public void removeNode()
{
rootNode.removeChild(???????????);
}
public TreeNode getTreeNode() {
if (rootNode == null) {
rootNode = new TreeNodeImpl();
}
return rootNode;
}
public void processSelection(NodeSelectedEvent event) {
UITree tree = (UITree) event.getComponent();
nodeTitle = (String) tree.getRowData();
}
public String getNodeTitle() {
return nodeTitle;
}
public void setNodeTitle(String nodeTitle) {
this.nodeTitle = nodeTitle;
}
public String getTxtTopico() {
return txtTopico;
}
public void setTxtTopico(String txtTopico) {
this.txtTopico = txtTopico;
}
}
<rich:tree id="RichTree" style="width:300px" nodeSelectListener="#{BeanTree.processSelection}"
reRender="selectedNode" ajaxSubmitSelection="true" switchType="ajax"
value="#{BeanTree.treeNode}" var="item">
</rich:tree>
<h:outputText escape="false" value="Selected Node: #{BeanTree.nodeTitle}" id="selectedNode" />
<h:commandButton value="Exclude" action="#{BeanTree.removeNode}"/>
Obrigado!