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

GWT et Vaadin Java Discussion :

Layout manager & DOM (aucun rapport l'un à l'autre)


Sujet :

GWT et Vaadin Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Layout manager & DOM (aucun rapport l'un à l'autre)
    Hello,

    je me retrouve a tester GWT dans le cadre d'un travail de semestre pour une entreprise. Je vais pas étaler tout mes problèmes parce que je nage un peu trop :-)

    en gros cette dite entreprise veut faire une interface dynamique genre netvibes, igoogle ... pour un de ces produits. Comme un portail a déja été développé en javascript, les composants sont déja disponible (le contenu des "widget"). Mon travail conciste "juste" a savoir si gwt pourrait etre adapté pour créer le "gestionnaire de positionnement"

    donc j aurais quelques questions ou des réponses pourrait me rendre moins stressé

    1 Y a t il déja des librairies intéressantes qui propose des layouts manager plus complexe que ce qu'on trouve, j ai déja lister les différents panel disponible de base avec gwt et la libraire gwt-dnd pour le drag and drop. Mais y en a t il d autres? je trouve pas grand chose sur le web à ce sujet.

    2 Plus technique, j'ai un problème de compréhension avec la classe DOM et tout le tralala. ce que j'aimerai faire c'est ajouter une arborésence DOM générée depuis un fichier javascript externe dans un widget de gwt. Je peut très bien balancer du code html dans une string en employant JSNI et l'afficher avec un setHTML mais du DOM c'est possible? A première vue je pensait utiliser setElement mais je capte pas trop l'utilisation de cette méthode, apparament c'est pour setter un élément affiché dans le navigateur?

    désolé si c'est vague mais je fait ca que depuis 3 jours et je désespère un peu

  2. #2
    Membre actif
    Avatar de vahid
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 228
    Points : 276
    Points
    276
    Par défaut
    Salut

    Niveau lib en GWT il y en a plusieurs sur le net (gwt window manager pour une simulation bureau windows, GWT ext le portage de la lib javascript Ext, GWT Tk...) par contre je ne pense pas que la grille magnetique de igoogle soit implémentée dans une de ces librairie. A voir

    En ce qui concerne le setElement, il faut savoir que chaque widget est représenté par un élément DOM principal (forcément ) et c'est ce setElement qui va l enregistrer comme element principal du composant.
    Si tu as une lib js qui te génére un composant en HTML, alors il te suffit de faire un setElement(DIV), puis d appeler par JSNI ta methode js qui te generera le composant html dans ce DIV (en le passant en argument par exemple).

    Je te conseille de télécharger GWT-Ext et d'ouvrir les sources, c'est ce que j'ai fait pour comprendre la méthode de wrapping de composants "html+js" en composant unique GWT. Les sources sont claires et ca m'a vraiment aidé.

    a+
    Non, Vahid n'est pas mon prénom
    c' est gratuit , aussi

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    merci pour ta réponse

    justement ca fait partie d'un de mes tests, ce que je fait c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public static native Element getWidgetDOM() /*-{
    	  return $wnd.getWidgetDOM();
    	}-*/;
    je vais chercher le DOM dans un fichier JS externe

    après que je fasse ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.setElement(getWidgetDOM());
    ou ca (pas très utile mais je voulais passer un Element créé en java)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Element code = DOM.createDiv();
    DOM.appendChild(code, getWidgetDOM());
    this.setElement(code);
    ca marche pas, il n'y a pas d'erreur mais rien s'affiche dans mon widget. Par contre étonnamment si je fait ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.setHTML(getWidgetDOM().toString());
    et bien ca s'affiche, mais je doute que se soit conventionnel, mon DOM c'est un div avec une balise center et p dedant, je sais pas si une arboresence plus complexe fonctionnera

  4. #4
    Membre actif
    Avatar de vahid
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 228
    Points : 276
    Points
    276
    Par défaut
    setElement doit etre appelé avant toute autre methode
    Personnellement j'ai codé mes composants a partir des sources de gwt-ext :
    - Creer un DIV
    - L'ajouter au rootPanel
    - Le setElementer
    - Generer mon composant à l'interieur de ce DIV en passant l Element par JSNI.

    Le fait d'ajouter l element dans le flow du document par RootPanel.get.add n'est pas reellement "propre", mais cela n'empechera pas de l'ajouter par la suite à un endroit spécifique de ton appli dans la mesure où une instance d'un composant peut être déplacer dans le DOM. Je ne me suis pas non plus pencher reellement sur cette methode de generation d'objets, il y a surement meilleure methode mais pour ce que j avais a faire ca faisait le travail.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    		// add the main element for this widget in the document
            RootPanel.get().add(new HTML("<div id='" + id + "' class='windowTag' ></div>"));
            Element div = DOM.getElementById(id);
     
            // set the element as the main one for this component
            setElement(div);
    Dans la mesure où j'avais besoin d'un id spécifique...
    Non, Vahid n'est pas mon prénom
    c' est gratuit , aussi

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    yes, merci je sais pas trop ce qui a changer, mais maintenant ca marche, enfin le setElement, mais je l'insère dans un widget draggable avec la librairie gwt-dnd et du coup c'est le drag and drop qui ne fonctionne plus maintenant tanpis pour le moment je fait faire un setHTML(unElement.toString()) c'est surement pas très orthodoxe mais voila...

  6. #6
    Membre actif
    Avatar de vahid
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 228
    Points : 276
    Points
    276
    Par défaut
    alors la va falloir investiquer sur le drag and drop
    Non, Vahid n'est pas mon prénom
    c' est gratuit , aussi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. System.WinForms et Layout managers
    Par Chavadam dans le forum C#
    Réponses: 1
    Dernier message: 22/04/2010, 14h03
  2. [DTD] valider un document DOM par rapport à une DTD
    Par laurie12345 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 02/06/2009, 11h44
  3. [JLayeredPan] quel layout manager ?
    Par Lady dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 20/07/2007, 14h29
  4. JLayeredPane layout manager ?
    Par Lady dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 27/06/2007, 10h29
  5. layout manager sous netbeans
    Par noussa_nouha dans le forum NetBeans
    Réponses: 4
    Dernier message: 15/08/2006, 16h03

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