Jsf 2 如何从支持bean高亮显示primefaces树节点
我正在使用primefaces树组件。树有一个上下文菜单(添加节点、编辑节点、删除节点)。执行某些操作后,我需要刷新树,然后突出显示添加或编辑的节点 这是我的密码 index.xhtmlJsf 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
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*/ />