PrimeFaces Tree + sélection + dialog
Bonjour a tous !
j'ai un problème avec le composant "tree" de primefaces. En fait, j'ai essayé de faire un tree avec une sélection multiple. ca marche a merveille! mais quand je place ce tree dans un dialog. la sélection ne marche pas.
je vous fais part de mon code. la managed Bean
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
package com.otv.managed.bean;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.primefaces.model.DefaultTreeNode;
import org.primefaces.model.TreeNode;
@ManagedBean(name="tMB")
@SessionScoped
public class TreeMB implements Serializable {
private static final long serialVersionUID = 1L;
private TreeNode root;
private TreeNode[] selectedNodes;
public TreeMB() {
root = new DefaultTreeNode("Root", null);
TreeNode node = new DefaultTreeNode("List", root);
TreeNode node0 = new DefaultTreeNode("Provider", node);
TreeNode node1 = new DefaultTreeNode("RNC", node);
TreeNode node2 = new DefaultTreeNode("WBTS", node);
TreeNode node3 = new DefaultTreeNode("CGI", node);
TreeNode node4 = new DefaultTreeNode("CI", node);
TreeNode node5 = new DefaultTreeNode("NomCell", node);
TreeNode node6 = new DefaultTreeNode("Label", node);
TreeNode node7 = new DefaultTreeNode("Frequency_Band", node);
TreeNode node8 = new DefaultTreeNode("RAC", node);
TreeNode node9 = new DefaultTreeNode("LAC", node);
TreeNode node10 = new DefaultTreeNode("NetworkId", node);
}
public void displaySelectedMultiple(ActionEvent event) {
if(selectedNodes != null && selectedNodes.length > 0) {
StringBuilder builder = new StringBuilder();
for(TreeNode node : selectedNodes) {
builder.append(node.getData().toString());
builder.append("<br />");
System.out.println(node);
}
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Selected", builder.toString());
FacesContext.getCurrentInstance().addMessage(null, message);
}
}
public TreeNode getRoot() {
return root;
}
public void setRoot(TreeNode root) {
this.root = root;
}
public TreeNode[] getSelectedNodes() {
return selectedNodes;
}
public void setSelectedNodes(TreeNode[] selectedNodes) {
this.selectedNodes = selectedNodes;
}
} |
et la page xhtml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Welcome to JSF_PrimeFaces_Spring_Hibernate Project</title>
</h:head>
<body>
<f:view>
<h:form id="fd">
<p:growl id="messages" showDetail="true" escape="false" />
<p:commandButton id="basic" value="Show Dialog" onclick="dlg.show();"
type="button" />
<p:dialog header="Dialog" widgetVar="dlg" update=":fd"
maximizable="true" minimizable="true" resizable="true"
draggable="false" width="800" height="600" showEffect="fade"
hideEffect="fade" modal="true" appendToBody="true">
<p:tree value="#{tMB.root}" var="node" selectionMode="multiple"
selection="#{tMB.selectedNodes}" id="treeMultiple">
<p:treeNode>
<h:outputText value="#{node}" />
</p:treeNode>
</p:tree>
<p:commandButton value="Display Selected" update="messages"
actionListener="#{tMB.displaySelectedMultiple}" id="btnDisplay" />
</p:dialog>
</h:form>
</f:view>
</body>
</html> |
quelqu'un peut m'aider!