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

  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.

  7. #7
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Par défaut
    Ouai mais je vois a koi j'associe la fonction expandNode vu ke je peux pas l'appliquer uimaComponentTree car c un TreeNode et non un HtmlTree

  8. #8
    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
    dans la demo de Richfaces, il y'a un exemple qui se base sur adviseNodeOpened .

  9. #9
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 14
    Par défaut
    Je suis parti sur un biding je pense ke sa sera la meilleur solution a mon probleme.
    Pourras tu me donner un exemple concret d'un binding, pour que sa me fasse un point de depart, du cote java et du cote richface.

    Merci.

  10. #10
    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
    le binding sert à générer le composant, l'utiliser le modifier dynamiquement coté java, regarde la , il doit y'avoir des exemples,
    tu as regardé les exemples de Richfaces?
    Explique le context, et quand et comment tu créer la tree, peut être que le binding n'est pas nécessaire dans ton cas.

Discussions similaires

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

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