Bonjour à tous,
Voilà mon problème:
Dans le cadre d'une application "model-driven", je souhaite construire un modèle en utilisant EMF. Ce modèle comprend des classes, des attributs, des associations (pour l'instant, ça va !).
Maintenant, je souhaiterais créer des objets à partir des classes du modèle. On peut le faire à partir d'EMF en utilisant un éditeur généré à partir du modèle (opération Generate Editor Code) mais avec les défauts suivants:
- l'éditeur ressemble plus à un debugger qu'à une vraie IHM pour un utilisateur non informaticien
- on est obligé de générer du code java et en cas d'évolution du modèle c'est pas super pratique (or, le modèle évoluera forcément).
A la place, j'envisage la chose suivante:
- à partir du modèle, je génère un fichier Xforms décrivant les données à saisir + le look de l'interface. C'est pas trivial dès que le modèle comprend des associations mais on pourrait peut être y arriver en ajoutant quelques infos supplémentaires dans le modèle.
- dans les cas vraiment compliqués, on peut toujours écrire à la main (ou avec un éditeur spécialisé) le fichier Xforms.
Ensuite on lance un éditeur capable de lire un fichier Xforms. Cet éditeur est typiquement un browser web ou bien une application comme celle appartenant à Apogee:
http://www.eclipse.org/apogee/
En sortie on obtient un fichier XML qui contient les attributs saisis. A travers EMF on devrait pouvoir créer les objets directement dans Eclipse en utilisant des fonctionnalités, comme celles décrites ici (dynamic EMF):
http://www.ibm.com/developerworks/li...se-dynamicemf/
=> section Creating dynamic model instances
Intérêt:
- pas de génération de code (flexibilité si le modèle évolue)
- pas de code Java à écrire si dans le cas de modèles complexes, le générateur n'est pas adapté
Voilà ... c'est bien sympa sur le papier mais maintenant la question est: est-ce que ça peut marcher dans la vraie vie ?
Apparemment le browser intégré dans Eclipse ne supporte pas Xforms (j'ai fait un test tout simple avec deux attributs et ça ne marche pas !)
http://en.wikibooks.org/wiki/XForms/HelloWorld
J'ai aussi essayé de récupérer "Apogée" mais ce développement parait daté et j'utilise Eclipse 3.4.
J'aimerais avoir votre retour et savoir si quelque bonne âme à des soucis similaires aux miens (et dans ce cas, quelles solutions ont été retenues).
-- Olivier
Partager