Index: topia/doc/DevUIDoc.rst diff -u /dev/null topia/doc/DevUIDoc.rst:1.1 --- /dev/null Wed Sep 22 09:41:20 2004 +++ topia/doc/DevUIDoc.rst Wed Sep 22 09:41:15 2004 @@ -0,0 +1,112 @@ +========================= +Documentation Développeur +========================= + +Générateurs d'UI +================ + +A partir de l'ObjectModel +------------------------- + +- Génération du panel avec l'ensemble des attributs de la classe (ObjectModelToEntityAttributesPanel) + +- Génération du panel "final" de la classe (ObjectModelToEntityPanel) + +- Génération du panel permettant la sélection des entités d'une table (ObjectModelToSelectionEntityPanel) + +- Génération du panel composé d'une JTable. + +En fait, le panel final est composé du panel avec les attributs et du +panel avec la table. Cette table permettra d'afficher le résultat de +la recherche sur l'entité. + +A partir de l'UIModel +--------------------- + +- UIModelToSwingMetaGenerator rassemble l'ensemble des générateurs à partir d'un uimodel + +- Génération de l'interface Callback à partir de l'UIModel (UIModelToUICallbackSwingGenerator) + +- Génération de la classe abstraite à partr de l'UIModel (UIModelToUISwingGenerator) + +A partir de l'ObjectModel pour obtenir un fichier UIModel +--------------------------------------------------------- + +- Génération du panel regroupant tous les attributs de l'objet sous la forme d'un fichier UIModel (ObjectModelToEntityAttributesUIModel) + +- Génération du panel permettant la sélection des entités d'une table +sous la forme d'un fichier UIModel (ObjectModelToEntitySelectionUIModel) + +- Génération du panel composé d'une JTable sous la forme d'un fichier UIModel (ObjectModelToEntityTableUIModel) + +- Génération du panel composé du panel des attributs et de la table de recherche sous la forme d'un fichier UIModel (ObjectModelToEntityUIModel) + +- ObjectModelToUIModelGenerator rassemble l'ensemble des générateurs à partir d'un objectModel pour obtenir des fichiers uimodel. + +A partir de ces fichiers UIModels, il est possible d'obtenir l'interface callback et la classe abstraite comme décrit précédemment. Parallèlement, on obtient la classe "finale" qui hérite de la classe abstraite. Cette classe "finale" est générée à partir de l'objectModel. + + +Autres générateurs +------------------ + +Génération du fichier de type (XX-widgets.xml): + +:: + + + + + + +Ainsi, pour chacune des classes de l'ObjectModel, on génère un tag +. L'objet java obtenu par génération pourra être chargé dans +Buix à l'aide de ce fichier xml (ObjectModelToWidgetsXML) + +UI non générées +=============== + +ActionEntityPanel +----------------- + +Ce panel permet d'obtenir la liste des n derniers entités +consultées. Il est possible d'effectuer une recherche selon un +attribut de l'entité. En outre, il permet d'ajouter une nouvelle +entité. Ce panel est ajouté dans JTaskPane avec Buix et il est utilisé +dans le projet Chorem. Certaines actions ont été créées suite aux +évènements possibles sur ce panel. + +Actions +------- + +De nouvelles actions ont été créées pour répondre aux besoins de ActionEntityPanel: + +- NewAction : action permettant de créer une nouvelle entité et d'ouvrir le formulaire permettant la saisie des données. + +- ShowAction : action permettant de visualiser l'entité sélectionnée dans un formulaire + +- SearchAction : action permettant d'afficher le résultat de la requête cd recherche à partir d'une JCombobox et d'un JTextField (caractérisant respectivement l'attribut de la classe de l'entité et la valeur que doit avoir cet attribut) + +Panels de boutons +----------------- + +Les panels de type ButtonsPanel ou ManagementButtonsPanel ne sont pas +générés car il est impossible de définir une valeur à l'attribut +package de l'objectModel. + +TopiaPanel +---------- + +Les panels générés héritent de TopiaPanel afin de pouvoir rédéfinir le +persistenceDelegate de ce type de panel. Le persistenceDelegate doit +pouvoir être modifié dans Buix notamment lors de la sauvegarde. + +TopiaContext +============ + +Insertion de TopiaContext dans les générateurs et en particulier dans +UIModelToUISwingGenerator. Dans setContext de la classe généré par ce +générateur, il est nécessaire de mettre à jour aussi les context pour +les autres "modèles" présent dans la liste de la classe. C'est +pourquoi, il est nécessaire d'ajouter à cette liste les nouveaux +modèles qui seront implantés. Ces modèles doivent implanter +TopiaElement.