添加对象后,将setName设置为TreeNode(primefaces)

时间:2014-07-13 04:20:19

标签: jsf primefaces tree treenode

我想要在用户按下按钮时设置节点的名称。添加节点会将此对象的名称作为labelName,因此这是按钮的代码:

public void makeCube() {

        cubeService.create_cube(cubUpdate);


    }

这是我的TreeNode:

 <p:tree id="tree1" value="#{treeBean.model}"
                        var="node"
                       dynamic="true"
                        selectionMode="single"
                        selection="#{treeBean.selectedNode}" onNodeClick="selectNode(node);"
                        >
                    <p:ajax event="select"  listener="#{treeBean.onNodeSelect}"  />

                    <p:ajax event="expand" listener="#{treeBean.onNodeExpand}" />
                    <p:ajax event="collapse" listener="#{treeBean.onNodeCollapse}" />


                    <p:treeNode type="#{NodeType.CUBE_TYPE}"   >
                        <h:outputText id="cubName" value="#{node}" onclick="selectNode(this); "   />
                    </p:treeNode>
  </p:tree>

最后,这是我的表单,用户将放置一个对象的名称,当他点击“添加”时应保存该对象并获取其名称,将其设置为Node的labelName名称。 / p>

<h:form id="form2" >


        <p:panelGrid columns="2" id="panelCube"> 

        <p:outputLabel value="Name :" for="name_cube"/>
            <p:inputText id ="name_cube" value="#{cubeMan.cubUpdate.name_cube}" required="true"/>
        <p:outputLabel value="Description :" for="description_cube"/>
            <p:inputText id ="description_cube" value="#{cubeMan.cubUpdate.description_cube}" required="true"/>
    <p:commandButton value="Add" actionListener="#{cubeMan.makeCube()}" update=":formCube" > 

     </p:commandButton>

     </h:form>

我必须使用相同形式的按钮来更改标签名称:

public void changeName(){

        String res =selectedNode.getData().toString();

        if(selectedNode.getData().toString() !=null){
            res=cubMang.cubUpdate.getName_cube();

            TreeNode  node0 = new DefaultTreeNode(new TreeNodeType().getCUBE_TYPE(),res, null);


    }

在我的xhtml页面中我把它:

<p:commandButton value="Add tst" actionListener="#{treeBean.changeName()}"  update=":form1:tree1:cubName" /> 

对于Treenode,我把它放在:

<h:form id="form1">


                <p:tree id="tree1" value="#{treeBean.model}"
                        var="node"
                       dynamic="true"
                        selectionMode="single"
                        selection="#{treeBean.selectedNode}" onNodeClick="selectNode(node);"
                        >
                    <p:ajax event="select"  listener="#{treeBean.onNodeSelect}"  />

                    <p:ajax event="expand" listener="#{treeBean.onNodeExpand}" />
                    <p:ajax event="collapse" listener="#{treeBean.onNodeCollapse}" />


                    <p:treeNode type="#{NodeType.CUBE_TYPE}"   >
                        <h:outputText id="cubName" value="#{node}"  onclick="selectNode(this); "   />
                    </p:treeNode>
   </p:tree>

但是当我单击按钮时没有任何反应,但是当我点击树中以创建最后一个相同类型的新节点时,它将采用新名称。那么我该怎么做才能纠正这个问题呢?

0 个答案:

没有答案