Jsf 2 如何从支持bean高亮显示primefaces树节点

Jsf 2 如何从支持bean高亮显示primefaces树节点,jsf-2,primefaces,Jsf 2,Primefaces,我正在使用primefaces树组件。树有一个上下文菜单(添加节点、编辑节点、删除节点)。执行某些操作后,我需要刷新树,然后突出显示添加或编辑的节点 这是我的密码 index.xhtml java 公共类TreeBean实现了可序列化{ private TreeNode root; public TreeBean() { root = new DefaultTreeNode("Root", null); // GET the root nodes first L0

我正在使用primefaces树组件。树有一个上下文菜单(添加节点、编辑节点、删除节点)。执行某些操作后,我需要刷新树,然后突出显示添加或编辑的节点

这是我的密码

index.xhtml


java 公共类TreeBean实现了可序列化{

private TreeNode root;

public TreeBean() {
    root = new DefaultTreeNode("Root", null);
    // GET the root nodes first L0
    List<TracPojo> rootNodes = SearchDao.getRootNodes111();
    Iterator it = rootNodes.iterator();

    while (it.hasNext()) {

        TracPojo t1 = (TracPojo) it.next();

        String tid = t1.getTopicID();

        TreeNode node1 = new DefaultTreeNode(t1, root);

    }


}
 public TreeNode getRoot() {
    return root;
 }


public void addChildNode(ActionEvent actionEvent) 
{

    List record = NewSearchDao.getRecord(selectedNode);

    Iterator it = record.iterator();
    while (it.hasNext()) {
        Object[] record1 = (Object[]) it.next();
        setParentID_dlg((String) record1[0]);
        setSortIndex((Integer) record1[2]);
    }

}

public void saveChilddNode() {
    System.out.println("Save as Child Node ........");

}
私有树节点根;
公树{
root=新的DefaultTreeNode(“root”,null);
//首先获取根节点L0
List rootNodes=SearchDao.getRootNodes111();
Iterator it=rootNodes.Iterator();
while(it.hasNext()){
TracPojo t1=(TracPojo)it.next();
字符串tid=t1.getTopicID();
TreeNode1=新的默认TreeNode(t1,根);
}
}
公共树节点getRoot(){
返回根;
}
public void addChildNode(ActionEvent ActionEvent)
{
列表记录=NewSearchDao.getRecord(selectedNode);
Iterator it=record.Iterator();
while(it.hasNext()){
Object[]record1=(Object[])it.next();
setParentID_dlg((字符串)记录1[0]);
setSortIndex((整数)记录1[2]);
}
}
public void saveChildNode(){
System.out.println(“另存为子节点…”);
}

}Primefaces
p:treeNode
有一个属性
styleClass
。您可以从支持bean动态地设置它。该视图看起来像:

<p:tree>
  <p:treeNode styleClass="#{treeBean.styleClass}">
    <h:outputText value="#{node}" />
  </p:treeNode>
</p:tree>

不要忘记将样式类添加到css中。

除非您将selectedNode(声明为selection=“#{treeBean.selectedNode}”)设置为null,否则它已经被选中,您唯一要做的就是从触发组件更新树组件;就你而言,它是:

<p:menuitem update=":yourForm:pTree"   /*rest of the stuff*/    />

你好,马特,谢谢你的回复。StyleClass用于指定节点样式(mp3Style、picture等)。但是,我的要求不同。在单个选择树中,如果单击树节点,它将以某种颜色高亮显示(例如:)。我想刷新树,展开父节点,并以蓝色突出显示新添加的树节点(Treenode,而不是数据)。为了给出清晰的图片:1)我有一个带有上下文菜单(添加子节点、编辑节点、删除节点)的单选树。2) 当我点击addchild时,一个对话框将打开,其中包含必需的字段和一个按钮(SAVE)。3) 当我单击SAVE按钮时,我正在将节点插入数据库并重新加载树。我正在松开所选节点,树正在折叠。4) 我只需要刷新树并突出显示新添加的节点。
public class TreeBean implements Serializable {
  private String styleClass;
  ...
  public String getStyleClass() {
    // your style selection logic here
  }
  ...
}
<p:menuitem update=":yourForm:pTree"   /*rest of the stuff*/    />