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 :

JSF 1.2 tomahawk tree2 pb javascript


Sujet :

JSF Java

  1. #1
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut JSF 1.2 tomahawk tree2 pb javascript
    Bonjour,

    J'ai un problème avec les composants que je viens de citer dans le titre,
    l'affichage s'effectue correctement mais les actions ne fonctionnent pas en javascript.j'utilise facelets mais le rendu est correct

    Rmq j'ai fais CTRL+C et CTRL+V d'un exemple ...
    j'essaie de comprendre
    page jsp
    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
     
    <h:form>
            <h:panelGrid width="200">
            <t:tree2 id="wrapTree" value="#{TreeBacker.treeData}" var="node" varNodeToggler="t" clientSideToggle="false">
                <c:facet name="person">
                    <h:panelGrid id="a" columns="2" cellpadding="0" cellspacing="0">
                        <t:graphicImage value="/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/>
                        <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
                        <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
                    </h:panelGrid>
                </c:facet>
                <c:facet name="Gestion-folder">
                    <h:panelGrid id="b" columns="2" cellpadding="2" cellspacing="0">
                        <t:graphicImage value="/images/yellow-folder-open.png" rendered="#{t.nodeExpanded}" border="0"/>
                        <t:graphicImage value="/images/yellow-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
                        <h:panelGroup>
                            <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
                            <h:outputText value=" (#{node.childCount})" styleClass="childCount" rendered="#{!empty node.children}"/>
                        </h:panelGroup>
                    </h:panelGrid>
                </c:facet>
                <c:facet name="bar-folder">
                    <h:panelGrid id="c" columns="2" cellpadding="2" cellspacing="0">
                        <t:graphicImage value="/images/blue-folder-open.gif" rendered="#{t.nodeExpanded}" border="0"/>
                        <t:graphicImage value="/images/blue-folder-closed.png" rendered="#{!t.nodeExpanded}" border="0"/>
                        <h:panelGroup>
                            <h:outputText value="#{node.description}" styleClass="nodeFolder"/>
                            <h:outputText value=" (#{node.childCount})" styleClass="childCount" rendered="#{!empty node.children}"/>
                        </h:panelGroup>
                    </h:panelGrid>
                </c:facet>
                <c:facet name="document">
                    <h:panelGroup>
                        <h:commandLink immediate="true" styleClass="#{t.nodeSelected ? 'documentSelected':'document'}" actionListener="#{t.setNodeSelected}">
                            <t:graphicImage value="/images/document.png" border="0"/>
                            <h:outputText value="#{node.description}"/>
                            <c:attribute name="docNum" value="#{node.identifier}"/>
                        </h:commandLink>
                    </h:panelGroup>
                </c:facet>
            </t:tree2>
        </h:panelGrid>
        </h:form>
    bean
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
     
    import org.apache.myfaces.custom.tree2.HtmlTree;
    import org.apache.myfaces.custom.tree2.TreeNode;
    import org.apache.myfaces.custom.tree2.TreeNodeBase;
    import org.apache.myfaces.custom.tree2.TreeModel;
    import org.apache.myfaces.custom.tree2.TreeModelBase;
     
    import javax.faces.context.FacesContext;
    import javax.faces.application.FacesMessage;
    import javax.faces.component.UIComponent;
    import javax.faces.validator.ValidatorException;
    import javax.faces.event.ActionEvent;
    import java.io.Serializable;
     
    /**
     * Backer bean for use in example.  Basically makes a TreeNode available.
     *
     * @author Sean Schofield
     * @version $Revision: 472610 $ $Date: 2006-11-08 19:46:34 +0000 (Wed, 08 Nov 2006) $
     */
    public class TreeBacker implements Serializable
    {
        /**
         * serial id for serialisation versioning
         */
        private static final long serialVersionUID = 1L;
        private TreeModelBase     _treeModel;
        private HtmlTree          _tree;
     
        public TreeNode getTreeData()
        {
            TreeNode treeData = new TreeNodeBase("Gestion-folder", "Espace Gestion", false);
     
            // construct a set of fake data (normally your data would come from a database)
     
            // populate Frank's portion of the tree
            TreeNodeBase personNode = new TreeNodeBase("person", "Frank Foo", false);
            personNode.getChildren().add(new TreeNodeBase("Gestion-folder", "Requires Foo", false));
            TreeNodeBase folderNode = new TreeNodeBase("Gestion-folder", "Requires Foo Reviewer", false);
            folderNode.getChildren().add(new TreeNodeBase("document", "X050001", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "X050002", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "X050003", true));
            personNode.getChildren().add(folderNode);
            personNode.getChildren().add(new TreeNodeBase("Gestion-folder", "Requires Foo Recommendation", false));
            folderNode = new TreeNodeBase("Gestion-folder", "Requires Foo Approval", false);
            folderNode.getChildren().add(new TreeNodeBase("document", "J050001", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "J050002", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "J050003", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "E050011", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "R050002", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "C050003", true));
            personNode.getChildren().add(folderNode);
            folderNode = new TreeNodeBase("bar-folder", "Requires Bar Processing", false);
            folderNode.getChildren().add(new TreeNodeBase("document", "X050003", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "X050011", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "F050002", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "G050003", true));
            personNode.getChildren().add(folderNode);
            folderNode = new TreeNodeBase("bar-folder", "Requires Bar Approval", false);
            folderNode.getChildren().add(new TreeNodeBase("document", "J050006", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "J050007", true));
            personNode.getChildren().add(folderNode);
     
            treeData.getChildren().add(personNode);
     
            // populate Betty's portion of the tree
            personNode = new TreeNodeBase("person", "Betty Bar", false);
            personNode.getChildren().add(new TreeNodeBase("Gestion-folder", "Requires Foo", false));
            folderNode = new TreeNodeBase("Gestion-folder", "Requires Foo Reviewer", false);
            folderNode.getChildren().add(new TreeNodeBase("document", "X012000", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "X013000", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "X014000", true));
            personNode.getChildren().add(folderNode);
            folderNode = new TreeNodeBase("Gestion-folder", "Requires Foo Recommendation", false);
            folderNode.getChildren().add(new TreeNodeBase("document", "J010026", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "J020002", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "J030103", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "E030214", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "R020444", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "C010000", true));
            personNode.getChildren().add(folderNode);
            personNode.getChildren().add(new TreeNodeBase("Gestion-folder", "Requires Foo Approval", false));
            folderNode = new TreeNodeBase("bar-folder", "Requires Bar Processing", false);
            folderNode.getChildren().add(new TreeNodeBase("document", "T052003", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "T020011", true));
            personNode.getChildren().add(folderNode);
            folderNode = new TreeNodeBase("bar-folder", "Requires Bar Approval", false);
            folderNode.getChildren().add(new TreeNodeBase("document", "J010002", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "J030047", true));
            folderNode.getChildren().add(new TreeNodeBase("document", "F030112", true));
            personNode.getChildren().add(folderNode);
     
            treeData.getChildren().add(personNode);
     
            return treeData;
        }
     
        /**
         * NOTE: This is just to show an alternative way of supplying tree data.  You can supply either a
         * TreeModel or TreeNode.
         *
         * @return TreeModel
         */
        public TreeModel getExpandedTreeData()
        {
            return new TreeModelBase(getTreeData());
        }
     
        public void setTree(HtmlTree tree)
        {
            _tree = tree;
        }
     
        public HtmlTree getTree()
        {
            return _tree;
        }
     
        public String expandAll()
        {
            _tree.expandAll();
            return null;
        }
     
        private String _nodePath;
     
        public void setNodePath(String nodePath)
        {
            _nodePath = nodePath;
        }
     
        public String getNodePath()
        {
            return _nodePath;
        }
     
        public void checkPath(FacesContext context, UIComponent component, java.lang.Object value)
        {
            // make sure path is valid (leaves cannot be expanded or renderer will complain)
            FacesMessage message = null;
     
            String[] path = _tree.getPathInformation(value.toString());
     
            for (int i = 0; i < path.length; i++)
            {
                String nodeId = path[i];
                try
                {
                    _tree.setNodeId(nodeId);
                }
                catch (Exception e)
                {
                    throw new ValidatorException(message, e);
                }
     
                if (_tree.getNode().isLeaf())
                {
                    message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Invalid node path (cannot expand a leaf): "
                            + nodeId, "Invalid node path (cannot expand a leaf): " + nodeId);
                    throw new ValidatorException(message);
                }
            }
        }
     
        public void expandPath(ActionEvent event)
        {
            _tree.expandPath(_tree.getPathInformation(_nodePath));
        }
    }
    résultat .hic
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.forms.j_id9['wrapTree:org.apache.myfaces.tree.NAV_COMMAND'] has no properties
    C'est une erreur javascript j'ai changé dans le tutoriel le f:param en f:attributes car j'avais eu des soucis dans le même projet pour des h:commandLink pour le passage de paramètres ???????

    bref
    des pros tomahawk ???

    olivier

  2. #2
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    Travaillant également avec Facelet et Tomahawk, j'ai connu des incompatibilités entre ces deux librairies... à voir si une version de Tomahawk plus ancienne serait pas plus adapté... de même avec Facelet

  3. #3
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut Bonjour pb
    Bonjour,

    Merci pour ta réponse je commence à avoir des doutes
    en changeant les librairies j'ai perdu l'accès à mes EJB locaux +
    donc plus d'appli cela fais trois jours que je me bas.
    je sais plus quoi faire ...


    olivier

  4. #4
    Membre Expert Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Par défaut EJB3 + glassfish + facelets 1.1.14 + tomahawk
    Bonjour,

    j'ai copié et collé l'appli mais bizarrement comme mon interface (IHM) se construit en interrogeant une base de donnée Oracle, avec netbeans j'ai perdu le lien avec mes EJB3 ???? j'ai un package war et 2 jars ( EJB ) dans un EAR . Standard pour netbeans, mais depuis mes manips avec tomahawk, j'ai un doute sur les librairies JSF 1.2 ou MyFaces ?? erreur de débutant , bref j'ai perdu le lien avec mes EJB3 locaux , dans le web.xml faut-t'il déclarer des ejb-ref-link ???


    bref je suis perdu ... Comble de l'histoire Glassfish m'affiche que peu de logs sur mes EJB comme si mes managedBean perdaient le connexion ??
    Bien sur j'ai activé les différentes options de glassfish

    Par ailleurs netbeans qui a planté 6.1 avec facelets utilisait glassfish v2ur1 or en réinstallant il passe à v2R2, plus des incompatiblités avec facelets ( le plugin ) que j'ai surmonté grâce à une page web .. ( perdu le lien ).

    Archi ...

    JSF IHM html -> MangedBean -> EJB stateless ou statefull -> class service -> EJB entity JPA 1.0

    olivier

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/11/2013, 06h53
  2. JSF 2 et Tomahawk
    Par AmFaye dans le forum JSF
    Réponses: 2
    Dernier message: 30/01/2011, 10h23
  3. Variable pour une JSP avec JSF 1.2, tomahawk
    Par Doudou (The) dans le forum JSF
    Réponses: 1
    Dernier message: 16/12/2010, 14h25
  4. Tomahawk tree2 et h:commandLink
    Par JibéCC dans le forum JSF
    Réponses: 2
    Dernier message: 26/08/2008, 22h10
  5. jsf utilisation de tomahawk
    Par pass38 dans le forum JSF
    Réponses: 2
    Dernier message: 22/06/2007, 16h20

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