IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Expand un arbre richfaces


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Par défaut Expand un arbre richfaces
    Bonjour tout le monde,

    Je vous ecris car cela fait 2 jours que j'essaye d'expand un arbre richfaces sans succes.
    Voici les parametres :
    - J'ai un TreeNode (org.richfaces.model.TreeNode<Object>) sur lequel on extrait les noeuds pour remplir l'arbre de richfaces (<rich:treeNode>).
    - L'arbre utilise doit pouvoir etre serializable car il est dans un bean.


    Il faudrait que lorsque j'ajoute un nouveau composant a l'arbre, l'arbre richfaces se deploit jusqu'au nouveau noeud ajouté.

    Je pensais utiliser la fonction :
    public void queueNodeExpand(TreeRowKey rowKey);
    mais je ne peux pas l'appliquer sur mon arbre, car cette fonction n'est utilisable que sur un HtmlTree, or je n'arrive pas a caster l'arbre TreeNode en HtmlTree.

    Voici les liens interressant que j'ai trouver mais je pense que je n'ai pas tous compris :
    http://www.jboss.org/community/wiki/...lapseTreeNodes
    http://thomaswabner.wordpress.com/20...model-changes/

    De plus je ne vois pas trop le principe des RowKey et surtout comment on peut en creer et les gerer.

    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Tu peux utiliser le listener de la sélection


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    public void processSelectionListener(NodeSelectedEvent event) {
     
     
    HtmlTree tree = (HtmlTree) event.getComponent().getParent();
     
    try {
    	if (!tree.isExpanded()) {
    	     tree.queueNodeExpand((TreeRowKey) tree.getRowKey());} 
            else {
    	      tree.queueNodeCollapse((TreeRowKey) tree.getRowKey());
    		}
     
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    }

  3. #3
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Par défaut
    Le probleme est qu'il n'y a pas de selection sur l'arbre, il faut ke se soit le code java qui expand l'arbre sans aucune interaction de l'utilisateur

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu utilise un binding? tu as un bout de code pour comprendre un peu ce que tu fais.

  5. #5
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Par défaut
    Voici un le debut de mon arbre richfaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     <r:tree 
                id="uimaComponentTree"
                value="#{componentTreeManager.tree}"
                var="item" 
                nodeFace="#{item.type}" 
                switchType="ajax">
     
    			<!--****************************************************************** 
                    **                   NODES FOR COLLECTION READERS               **
                    ******************************************************************-->
     
                <!-- Root node for Collection Reader components. -->
                <r:treeNode 
                    type="CR_LIST" 
                    icon="/img/components/provider/folder_and_provider_24.png"
                    iconLeaf="/img/components/provider/folder_and_provider_24.png" 
                    changeExpandListener="#{componentTreeManager.crListNodeChangeExpandListener}"
                    >
     
                    <a:support 
                        event="ondblclick"
                        action="#{perspectiveManager.crListSelect}" 
                        reRender="banner, rightPart" />
     
                    <h:outputText value="#{item.label}" />
     
                </r:treeNode>
     
                 <!-- Node for Collection Reader components. -->
                <r:treeNode 
                    type="CR_NAME" 
                    icon="/img/components/provider/provider24.png"
                    iconLeaf="/img/components/provider/provider24.png"
                    nodeSelectListener="#{componentTreeManager.setSelectedCrNameNode}"
                    >
     
                    <a:support 
                        event="ondblclick" 
                        reRender="banner, rightPart"
                        action="#{perspectiveManager.crNameSelect}" />                                                                        
     
                    <h:outputText value="#{item.label}" />
     
                </r:treeNode>
     
                <!-- Version node for Collection Reader components -->
                <r:treeNode 
                    type="CR_VERSION" 
                    icon="/img/components/provider/provider_version_24.png"
                    iconLeaf="/img/components/provider/provider_version_24.png"
                    nodeSelectListener="#{componentTreeManager.setSelectedCrVersionNode}"
                    changeExpandListener="#{componentTreeManager.crVersionNodeChangeExpandListener}"
                    >
     
                    <a:support 
                        event="ondblclick" 
                        reRender="banner, rightPart" 
                        action="#{perspectiveManager.crSelect}" />
     
                    <h:outputText value="#{item.label}" />
     
                </r:treeNode>
    classe ComponenTreeManager:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public Object getTree()
        {
            if (this.uimaComponentTree == null)
            {
                this.uimaComponentTree = new TreeNodeImpl<Object>();
          //fonction ki peuple l'arbre
                this.populateCollectionReaderNodes();
                this.populateAnalysisEngineNodes();
                this.populateCasConsumerNodes();
            }
     
            return uimaComponentTree;
        }
    J'ai deja fait de la gestion d'evenement sur l'arbre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        @SuppressWarnings("unchecked")
        public void setSelectedCcVersionNode(NodeSelectedEvent nodeSelectedEvent)
        {
            HtmlTreeNode currentHtmlTreeNode = (HtmlTreeNode) nodeSelectedEvent.getComponent();
            HtmlTree htmlTree = (HtmlTree) currentHtmlTreeNode.getParent();
            TreeNode currentTreeNode = htmlTree.getModelTreeNode(htmlTree.getRowKey());
     
            this.managedComponent = ((CcVersionTreeNode) currentTreeNode).getManagedData();
        }
    mais je voudrais ke lorsque j'ajoute un noeud a mon uimaComponentTree ke mon arbre correspondant dans richfaces s'ouvre sur le noeud ki vient juste d'etre creer

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Tu peux le faire dans la fonction populate.

Discussions similaires

  1. Arbre inversé (expand de droite à gauche)
    Par Snimo dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 11/10/2012, 10h16
  2. Réponses: 0
    Dernier message: 20/04/2010, 19h25
  3. Expand un arbre richfaces
    Par lasoque dans le forum Wildfly/JBoss
    Réponses: 0
    Dernier message: 01/10/2009, 13h54
  4. [Richfaces] Parcours d'un arbre
    Par kymior23 dans le forum JSF
    Réponses: 3
    Dernier message: 24/04/2009, 09h43
  5. [RichFaces] Tree, expanded par défaut
    Par Jexou dans le forum JSF
    Réponses: 9
    Dernier message: 22/04/2009, 11h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo