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

Eclipse Platform Discussion :

Editeur multipage avec page XML


Sujet :

Eclipse Platform

  1. #1
    Membre averti
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Points : 384
    Points
    384
    Par défaut Editeur multipage avec page XML
    Bonjour,
    j'ai généré un éditeur multipages à partir d'un shéma XSD, auquel j'ai ajouté des pages IHM (FormPage, Master/DetailsPage). J'y ai ajouté ensuite une page contenant le source XML du fichier édité. Pour cela j'ai utilisé un StructuredTextEditor, cependant j'ai des soucis pour synchroniser cette page et les pages IHM lors de la sauvegarde. J'ai donc regardé le code de l'éditeur du fichier plugin.xml. J'ai pu constater que cela était géré différemment, de ce qui m'a été généré. Il utilise un objet sur lequel il y a un listener qui permet de rafraichir les pages impactées lorsque le modèle est modifié, alors que dans mon cas j'ai un objet Resource qui est créé à partir du fichier sélectionné.
    Y a t-il un moyen de générer un éditeur similaire à celui utilisé pour éditer le fichier plugin.xml? Ou quelles modifications dois-je apporter au code généré pour pouvoir synchroniser mes pages?

    Merci,
    David.
    - N'hésitez pas à consulter les liens vers les FAQs, les cours et tutoriels -

    Daveshot

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Salut,
    C'est assez complexe comme sujet.
    Tu peux coder celà à la manos lors du changement de spages : quand tu actives une page graphique, tu remplis les champs par les valeurs correspondantes depuis l'xml.
    Et dans les pages graphiques, tu peux ajouter des listeners (modify, focusLost, etc.) qui mettent l'xml à jour (XPath pourrait t'être très utile pour ça, et l'éditeur SSE se met à jour en temps réel si tu modifie le DOM).

    As tu utilisé EMF ? Dans ce cas peut être que EMF2DOMSSE peut t'être utile.
    Penses aussi à regarder les derniers billets dans le blog d'Angelo où il traite de ces thèmes : http://blog.developpez.com/akrogen/p...et-wst-step-0/

    en parlant de ça, Angelo bosse actuellement sur une implémentation de JFace Databinding pour un DOM SSE. C'est encore à ses débuts, mais ça a l'air prometteur. Il devrait passer par le coin et donner plus de détails

  3. #3
    Membre averti
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Points : 384
    Points
    384
    Par défaut
    Bonjour,
    merci pour ta réponse. J'avais commencé à regarder le Tutorial WST- DOM SSE [Step 2], concernant le rafraichissement de l'IHM suite à une modification du source XML, mais je me demandais si c'était pas un peu lourd pour des pages plus complexes, et surtout si c'était possible de connaitre la page impactée pour ne rafraichir que celle-ci.
    Sinon je vais regarder les billets que tu me conseilles. Je tiendrais au courant de l'avancement de mes recherches.

    Merci,
    David.
    - N'hésitez pas à consulter les liens vers les FAQs, les cours et tutoriels -

    Daveshot

  4. #4
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour DaveShot,
    j'ai généré un éditeur multipages à partir d'un shéma XSD, auquel j'ai ajouté des pages IHM
    Tu veux dire que tu es parti d'un schema XML et que tu as genere un multi page editor XML qui gere ton fichier XML en fonction de ton schema? Si c'est ca pourrais tu m'expliquer comment tu as fait. C'est un plugin de WST. Ca m'interese beaucoup. Merci.

    et surtout si c'était possible de connaitre la page impactée pour ne rafraichir que celle-ci.
    Bien sur que c'est possible, mais c'est complexe. Prenons le cas de l'ex Tutorial WST- DOM SSE [Step 2] qui permet de mettre a jour l'attribut title

    <diagram title="....

    à partir d'une widget SWT Text.

    Lorsque l'on tappe une valeur dans l'attribut title, ca doit metttre a jour la widget SWT Text et inversement. Donc l'idée est d'observer le changement de l'attribut title pour mettre a jour UNIQUEMENT la widget SWt Text et pas toute l'UI. Pour cela, WST propose d'ajouter des listener sur des Node. Dans notre cas, il faut ajouter un listener (INodeAdapter en WST) sur le Node.
    Pour cela il faut caster ton Node en IDOMNode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Document document = model.getDocument();
    IDOMNode diagram = (IDOMNode)document.getDocumentElement();
    diagram.addAdapter(new INodeAdapter() {
    	public boolean isAdapterForType(Object type) {
    		return type == ShapesEditor.class;
    	}
    	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {};
    // Synchronize UI Here
    });
    Donc dans la mehode notifyChanged, tu mets a jour ton UI SWT Text et pas les autres. Le complexite vient du fait que l'element diagram pent ne pas exister, qu'il peut exister et recreer, du coup l'instance diagram change et le listener doit se rajouter au nouvel element diagram.

    en parlant de ça, Angelo bosse actuellement sur une implémentation de JFace Databinding p
    our un DOM SSE. C'est encore à ses débuts, mais ça a l'air prometteur. I
    Merci djo de parler de JFace DOM-SSE Databinding. Je rectifie. NOUS bossons dessus actuellement
    JFace DOM-SSE Databinding est une implementation de JFace Databinding un moteur de binding generique, qui va permettre de binder des Node DOM-SSE avec une autre implementation de JFace Databinding (SWT, Beans, EMF....).
    Et il te gere la problematque de re'attachement des listeners quand les instances Node change (quand le user les enleve de l'editor et les retappe).

    Pour l'instant je suis en train de voir avec Eclipse ou on pourrait heberger ce projet, mais si tu es interesse je pourrais t'envoyer le code des projets + l'ex de Tutorial WST- DOM SSE * qui marche avec ca (pour l'instant on peut juste gerer le binding avec l'attribut title).

    Angelo

  5. #5
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour,

    Je viens de commencer a rediger des choses sur JFace DOM-SSE Databinding.

    Pour l'instant les sources ne sont pas disponibles car j'attends de voir avec Eclipse ou on peut mettre les projets.

    Angelo

  6. #6
    Membre averti
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Points : 384
    Points
    384
    Par défaut
    Bonjour azerr,
    en fait j'ai généré un éditeur multi-pages à partir de mon schéma XML. J'ai créé des onglets IHM avec les FormUI (Master/DetailsPage), et j'ai ajouté un onglet XML pour pouvoir effectuer des modification directement dans mon fichier. Pour créer cet onglet j'ai utilisé un StructuredTextEditor, mais le soucis c'est que j'ai des problème de synchronisation lorsqu'il y a des modifications dans l'onglet XML, pour les impactées dans mes pages IHM.
    Ma problématique est donc de savoir quelle page est modifiée, pour effectuer un refresh des StyledText.
    Sinon je suis bien intéressé si tu pouvais m'envoyer le code des projets, ainsi que l'exemple de tutoriel WST DOM SSE, dont tu me parlais.

    Je continue à étudier ton tutoriel et je vous tiens au courant de mes premiers résultats.

    Merci pour votre aide.
    David.
    - N'hésitez pas à consulter les liens vers les FAQs, les cours et tutoriels -

    Daveshot

  7. #7
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour DaveShot,

    Comme je t'ai dit j'ai redige des choses sur JFace DOM-SSE Databinding.

    Tu trouveras un lien sur le SVN de TK-UI qui contient tous les projets de JFace DOM-SSE + des exemples.

    Pour l'instant c'est super basique et il faudra surement completer la doc. Utilises tu EMF comme modele ou travailles tu directement avec le DOM?

    Si tu utilises EMF (EMF synchronise avec DOM-SSE avec les Translator de WST) , je vais peut etre l'utiliser dans un projet. J'ai commence aussi a gerer ca dans JFace DB DOM-SSE.

    Avec JFace DB DOM-SSE, tu n'aurras pas besoin de gerer cette problematique de page active et tu pourras utiliser les convertes (ex : convertir une String en Number...) et les validators de JFace (ca il faut que j'experimente un peu plus).

    J'ai commente toute la Javadoc mais n'hesites pas a me faire des retours si tu ne captes pas comment ca marche et si la doc qu ej'ai redige n'est pas assez complete.

    Merci

    Angelo

  8. #8
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    J'ai aussi une question

    en fait j'ai généré un éditeur multi-pages à partir de mon schéma XML
    Comment as tu fait ca?

    Merci de ta reponses.

    Angelo

  9. #9
    Membre averti
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Points : 384
    Points
    384
    Par défaut
    J'utilise bien EMF comme modèle pour mes onglets IHM.
    Sinon je regarde tes docs et je te fais des retours de mon avancement.

    Merci
    David.
    - N'hésitez pas à consulter les liens vers les FAQs, les cours et tutoriels -

    Daveshot

  10. #10
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    J'utilise bien EMF comme modèle pour mes onglets IHM.
    Ok, regarde l'ex (tres tres basique) org.eclipse.wst.xml.examples.shapes.emf_JFace_DB

    Sinon je regarde tes docs et je te fais des retours de mon avancement.
    Ok, j'attends tes retour.

    Sinon pourrais tu m'expliquer comme tu as fait :

    en fait j'ai généré un éditeur multi-pages à partir de mon schéma XML
    Merci

    Angelo

  11. #11
    Membre averti
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Points : 384
    Points
    384
    Par défaut
    Pour générer mon éditeur multipage j'utilise le plugin "XSD Ecore converter", qui génère lestrois plugins (model, edit et editor) et qui permet de créer l'éditeur, voici un tuto qui explique le fonctionnement :
    http://help.eclipse.org/help33/index...d/xlibmod.html

    David.
    - N'hésitez pas à consulter les liens vers les FAQs, les cours et tutoriels -

    Daveshot

  12. #12
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Ok, je comprends mieux maintenant, tu utilises EMF.Edit.
    Je croyais qu'il y avait un plugin WST qui faisait ca.

    Merci de ta reponse.

    Angelo

  13. #13
    Membre averti
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Points : 384
    Points
    384
    Par défaut
    Bonjour Angelo,
    J'ai étudié le projet JFace DB DOM-SSE, et j'ai quelques problématiques par rapport au fait que mon éditeur soit généré automatiquement.
    En effet, le fait que mon éditeur soit généré, ma Resource étend XMLResource, ce qui ne me permet pas d'en faire un Cast en TranslatorResource.
    De plus, pour l'affichage des valeurs de mes attributs, dans les pages UIForms, j'utilise des StyledText qui ne font pas parti des Controls supportés par SWTObservables.observeText.

    Au niveau du listener du modèle, y a t-il un moyen de connaitre les noeuds impactés, quand le modèle est modifié?

    Merci,
    David.
    - N'hésitez pas à consulter les liens vers les FAQs, les cours et tutoriels -

    Daveshot

  14. #14
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour DaveShot,

    J'ai étudié le projet JFace DB DOM-SSE, et j'ai quelques problématiques par rapport au fait que mon éditeur soit généré automatiquement.
    En effet, le fait que mon éditeur soit généré, ma Resource étend XMLResource, ce qui ne me permet pas d'en faire un Cast en TranslatorResource.
    En fait JFace DB DOM-SSE, n'est pas lie aux TranslatorResource de WST. TranslatorResource te permet de synchroniser ton instance EMF avec ton editeur XML.

    Je croyais qu etu avais un editeur XML WST? Si c'est ca si tu utilises XMLResource quand tu tappereas ton XML dans l'editeur, ca ne te synchronisera pas ton instance EMF.

    De plus, pour l'affichage des valeurs de mes attributs, dans les pages UIForms, j'utilise des StyledText qui ne font pas parti des Controls supportés par SWTObservables.observeText.
    Ok, il faudrait creer un StyledText qui ne font pas parti des Controls supportés par SWTObservSWTObservables pour StyledText, je pourrais essayer de regarder ca.


    Au niveau du listener du modèle, y a t-il un moyen de connaitre les noeuds impactés, quand le modèle est modifié?
    Oui tu peux, j'ai explique ca dans la section What is DOM-SSE? . Mais le probleme c'est que tes instances Node a observe change toute le temps quand tu tappes du XML, JFace DOM-SSE DB gère cette problématique.

    Je voulais te dire aussi que j'ai bien avancé dans mon cas sur l'editeur de workflow XML base sur GEF+WST+EMF. GEF fonctionne tres bien, la je vais commencer a developper une page Overview (en fait c'est la meme problematique que toi), et je decortique JSF Web Tools et apperement eux ils utilisent le EditingDomain.

    Il faut que je regarde ca et jke te tiensn au courant

    Angelo

  15. #15
    Membre averti
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Points : 384
    Points
    384
    Par défaut
    Merci Angelo.

    J'ai vu qu'il y avait un patch pour le StyledText, en attendant son intégration dans la 3.5 : https://bugs.eclipse.org/bugs/show_bug.cgi?id=131435

    Sinon, concernant mon éditeur, à partir de ce que je génère, j'ajoute des onglets IHM avec UIForms, et un onglet XMLSource avec StructuredTextEditor.

    D'ailleur, je regarde actuellement un post auquel tu a participé, dans lequel Kartben parle d'un éditeur similaire a celui de PDE: http://www.developpez.net/forums/d69...xml-style-pde/

    Je te remercie de me tenir au courant.
    David.
    - N'hésitez pas à consulter les liens vers les FAQs, les cours et tutoriels -

    Daveshot

  16. #16
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    J'ai vu qu'il y avait un patch pour le StyledText, en attendant son intégration dans la 3.5 : https://bugs.eclipse.org/bugs/show_bug.cgi?id=131435
    Super! merci pour l'info.

    Sinon, concernant mon éditeur, à partir de ce que je génère, j'ajoute des onglets IHM avec UIForms, et un onglet XMLSource avec StructuredTextEditor.
    Moi aussi je fais ca, mais je ne suis pas parti sur la generation d'un editeur, j'ai fait tout moi meme. Tu as ajouté un onglet XMLSource avec StructuredTextEditor, mais si tu ne charges pas ton instance EMF avec des TranslatorResource, il va falloir que tu synchronises toi meme ton instance EMF avec les Node XML, et la c un travail compliqué car tes Node XML change tout le temps (il peuvent etre supprime, ajoutés....). Avec les Translator WST (EMF2DOMSSERenderer), tu charges ton XML dans un model SSE puis tu charges avec TranslatorResource ton instance EMF. Et WST s'occupe de synchroniser pour toi XML et ton instance EMF (faut que tu codes les Translator (pont entre un nom XML et un EClass). Ca c'est le truc un peu chiant a faire au debut si tu n'as pas de doc, mais j'ai tente d'expliuqe les grands principes dans mes billets.

    D'ailleur, je regarde actuellement un post auquel tu a participé, dans lequel Kartben parle d'un éditeur similaire a celui de PDE: http://www.developpez.net/forums/d69...xml-style-pde/
    Oui j'ai eu Kartben par mail privé et lui n'aime pas trop les Translator car ca t'oblige a mapper tes Node XML avec tes Eclass. Il est vrai que ca pourrait se faire automatiquement. Moi je suis parti sur les Translator car JSF Web Tools fait comme ca. IOl faudrait que j'etudie un peu plus EMF et Translator pour avoir un truc qui se fasse automatiquement, mais la je n'ai pas trop le temps.

    Je te remercie de me tenir au courant.
    bien sur, je regarde ce soir comment on fait JSF Web tools avec EditingDomain et si je capte qq chose je te tiens au courant.

    Angelo

  17. #17
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bon je viens de regarder JSF Web tools et eux il rafraichissent la page UI des qu'elle est active. Le rafraichissement consite a recuperer l'instance EMF qui a ete MAJ lorsque l'on tappe le XML.

    Autrement dit dans leur cas le XML et l'UI ne sont pas vraiment synchro. L'UI se synchronise que quand la page est active. Donc si on tappe le XML dans la pge source, ca ne modifie pas l'UI, quand on clique sur la page UI, ca fait un refresh et l'UI est modifié.

    Maintenant si on s'amuse a editer le XML dans un autre editeur XML et que l'on a le fichier XML affiche dans la page UI + le fichier XML affiche dans un editeur XML et que l'on tappe du XML, l'UI n'est pas rafraichit.

    JFace DOM-SSE Databinding gère cette problématique.

    Angelo

  18. #18
    Membre averti
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Points : 384
    Points
    384
    Par défaut
    Bonjour,

    J'ai également régardé l'éditeur FacesConfigEditor dont tu parles, j'ai pu constater que le refresh des onglets IHM est particulier au contenu de
    la page, du fait qu'ils utilisent des XPath pour mettre à jour les attributs. De plus, j'ai pu voir comme tu le disais que le refresh n'est effectué qu'au changement de page, ce qui n'est pas problématique dans mon cas, comme je reste dans le même éditeur.
    J'ai également étudié l'éditeur de "l'Incubator" du PDE, j'ai pu voir que le source XML est géré par un StructuredTextViewer et non un
    StructuredTextEditor. De plus, il utilise DataBindingContext pour "lier" chaque widget SWT à son élément XML, de la même façon que le Translator.
    J'ai donc essayé de mettre en place les Translator comme dans ton exemple. Cependant, mon souci est, comme je te disais plus haut dans le post, que mon élément XXXResourceImpl étend XMLResourceImpl, du fait que je génère mon éditeur. Pour mon test, je renvoie le conteneur de mon attribut comme élément observé, au lieu de l'élement Root, mais la synchronisation n'est effectuée qu'à la sauvegarde, et elle est décalée d'une sauvegarde.
    Je cherche un moyen pour utiliser les Translator en gardant mon code généré.
    Sais-tu s'il existe un moyen pour que je puisse mettre en place JFace DOM-SSE Databinding dans ce cas?

    Merci,
    David.
    - N'hésitez pas à consulter les liens vers les FAQs, les cours et tutoriels -

    Daveshot

  19. #19
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Salut David,

    Tout d'abord, je suis en train de preparer un billet que j'ai nomme pour l'instant "Conception d'un Editeur Eclipse de workflow XML." ou je vais parler de ma petite experience sur un editeur a la JSF Web tools. Parler des positionnement des figures dans GEF, Parler de la synchro UI <-> Model...

    Si tu es interesse on pourrait le rediger ensemble ce billet. Qu'en penses tu?

    J'ai également régardé l'éditeur FacesConfigEditor dont tu parles, j'ai pu constater que le refresh des onglets IHM est particulier au contenu de
    la page, du fait qu'ils utilisent des XPath pour mettre à jour les attributs. De plus, j'ai pu voir comme tu le disais que le refresh n'est effectué qu'au changement de page, ce qui n'est pas problématique dans mon cas, comme je reste dans le même éditeur.
    XPath? Je n'avais pas vu ca. C'est XPath avec EMF?


    J'ai également étudié l'éditeur de "l'Incubator" du PDE, j'ai pu voir que le source XML est géré par un StructuredTextViewer et non un
    StructuredTextEditor.
    Oui tu as raison! Pardon de mon erreur. Je ne connais pas StructuredTextViewer .

    De plus, il utilise DataBindingContext pour "lier" chaque widget SWT à son élément XML
    Plus exactement il lie une instance EMF a une widget SWT avec JFace EMF.Edit Databinding. Par controle lien XML <-> EMF est fait lorsque le StructuredTextViewer change (du XML est tappe dans l'editor), l'instance EMF est rechargé. C'est ce que j'ai compris mais je pense que ca va bouger ca.

    , de la même façon que le Translator.
    JFace DataBindingContext dans leur cas n'est pas utilise pour binder le XML avec une widget SWT Text, mais lie l'instance EMF avec uen widget SWT Text. Les translator eux par contre permettent de synchroniser le contenu XML avec une instance EMF.

    J'ai donc essayé de mettre en place les Translator comme dans ton exemple. Cependant, mon souci est, comme je te disais plus haut dans le post, que mon élément XXXResourceImpl étend XMLResourceImpl, du fait que je génère mon éditeur.
    Tu ne pourras donc pas utiliser les Translator. Car eux ils marchent avec un TranslatorResource. Dans mon billet c'est ce genrede chose dont j eveux parler (partir de la generation d'un editor peut poser ce genre de problemes).

    Pour mon test, je renvoie le conteneur de mon attribut comme élément observé, au lieu de l'élement Root, mais la synchronisation n'est effectuée qu'à la sauvegarde, et elle est décalée d'une sauvegarde.
    Tu parles de JFace Databinding la?

    Je cherche un moyen pour utiliser les Translator en gardant mon code généré.
    J'ai paur que tu ne puisses pas utiliser les Translator qui travail avec un TranslatorResource.

    Sais-tu s'il existe un moyen pour que je puisse mettre en place JFace DOM-SSE Databinding dans ce cas?
    Je pense que c'est possible mai sje ne te conseille pas car le code va etre super lourd.

    Je pense que l'idee des editor EMF est de ne pas bidouiller le XML (ou XMI) qui est généré et que toute le XML se genere a partir d'un editor. Autrement dit les actions sur l'editor manipule une instance EMF, mais qui ne peut pas etre synchronise avec un editeur texte. Du moins c'est ce que j'ai compris de ce que genere EMF.Edit. Tout ca pour dire que si on part de EMF.Edit on decide de ne pas pouvoir modifier le XML dans un editeur texte. Mai speut etre que je raconte des betises.

    Angelo

    Merci,
    David.

  20. #20
    Membre averti
    Avatar de DaveShot
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 238
    Points : 384
    Points
    384
    Par défaut
    Salut,

    ca me tente bien de participer à la rédaction de ton billet "Conception d'un Editeur Eclipse de workflow XML", comment veux-tu procéder?

    En fait, Databinding permet de lier une instance EMF à un widget SWT, et Translator permet de synchroniser le XML et l'instance EMF. Et dans ton exemple JFace_BD tu combines les deux. Par rapport à ma Resource je ne peut donc utiliser que Databinding, cependant je n'ai pas encore réussi à le mettre en place.

    Concernant XPath et EMF, c'est ce dont parlait également djo.mos dans sa réponse à ce post. Mais le problème est que cela n'est pas très générique pour mettre à jour l'IHM.
    En fait, je souhaiterais :
    - mettre à jour ma page Source lors de modification(s) de l'IHM (modèle EMF), sans avoir forcément sauvegardé.
    - mettre à jour l'IHM à la modification de la page Source, sans avoir forcément sauvegardé.
    =>ensuite, à la sauvegarde, il faut que je sauve l'un de mes deux modèles qui sont donc synchronisés (sachant que le modèle EMF est plus restrictif, du fait qu'il ne permet pas la sauvegarde d'erreur(s)).

    Je vais donc essayer de combiner ce que je peux récupérer dans ces différents exemples.
    Je te tiens au courant.
    Merci,
    David.
    - N'hésitez pas à consulter les liens vers les FAQs, les cours et tutoriels -

    Daveshot

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/03/2010, 16h31
  2. Editeur WIN32API avec moteur de recherche interne et mise en page
    Par ProgElecT dans le forum Vos contributions VB6
    Réponses: 7
    Dernier message: 05/04/2008, 17h29
  3. Créer plusieurs pages HTML avec un XML
    Par Jean Luc & Michel dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 12/12/2007, 09h57
  4. Réponses: 7
    Dernier message: 02/11/2006, 19h05
  5. [C#] Comment récuper un page xml avec une URL
    Par pc152 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 03/02/2005, 16h17

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