Index: buix/doc/analyze-guide.rst diff -u buix/doc/analyze-guide.rst:1.2 buix/doc/analyze-guide.rst:1.3 --- buix/doc/analyze-guide.rst:1.2 Fri Sep 10 15:39:01 2004 +++ buix/doc/analyze-guide.rst Mon Sep 20 12:51:17 2004 @@ -1,20 +1,19 @@ +BUIX +~~~~ + La finalité de document est d'expliquer les choix de conception de Buix. -Propriétés layout des composants -================================ +1. Propriétés layout des composants +=================================== Utilisation du mécanisme d'introspection: - - - Impossible d'utiliser Introspector de Java (le mécanisme ne - réagissait pas comme nous le souhaitions) - - Développement d'une classe LayoutIntrospector avec une - méthode getLayoutInfo(Class clazz) qui retourne une instance - de LayoutInfo + - Impossible d'utiliser Introspector de Java (le mécanisme ne réagissait pas comme nous le souhaitions) + + - Développement d'une classe LayoutIntrospector avec une méthode getLayoutInfo(Class clazz) qui retourne une instance de LayoutInfo - - Développement de LayoutInfo équivalent à BeanInfo. Chaque - layout possède sa classe layoutInfo. + - Développement de LayoutInfo équivalent à BeanInfo. Chaque layout possède sa classe layoutInfo. En fait, les layouts ne sont pas des beans. En effet, certaines de leurs propriétés ne possèdent pas de méthodes get et set. C'est @@ -24,9 +23,10 @@ retourner une liste de PropertyChildDescriptor. L'objet PropertyChildDescriptor se présente comme PropertyDescriptor. Il possède un nom, un type, un éditeur, etc. Cette classe possède aussi -deux méthodes abstraites : -- abstract public Object getValue(Object comp); -- abstract public void setValue(Object comp, Object newValue); +deux méthodes abstraites: + + - abstract public Object getValue(Object comp); + - abstract public void setValue(Object comp, Object newValue); Chaque classe de propriété spéciale du layout va hériter de cette classe PropertyChildDescriptor. @@ -48,8 +48,8 @@ dans la méthode setValue. -ClipBoard -========= +2. ClipBoard +============ Le clipboard se base selon le même principe que le preview sauf qu'il a fallu instancier un nouvel arbre, une nouvelle instance de @@ -57,8 +57,8 @@ SwingTreeNode. Il a fallu aussi effectuer des copies en profondeur en utilisant la sérialisation (méthode makeDeepCopy). -Chargement des composants Swing et des interfaces générées -========================================================== +3. Chargement des composants Swing et des interfaces générées +============================================================= Le chargement des onglets s'effectue par le parcours d'un ou plusieurs fichiers xml. Il y a trois fichiers XML qui sont parsés. @@ -99,8 +99,8 @@ fichier xml alors les composants swing présents dans swing-widgets.xml et les layouts ne seront pas chargés. -Encoders -======== +4. Encoders +=========== Les interfaces créées sont sauvegardées avec XMLEncoder.L'organisation des données dans le fichier xml n'était pas vraiment adaptée à @@ -126,7 +126,6 @@ Buix. Par contre, il existait de nombreux problèmes. Ces problèmes sont décrits dans la documentation bilanExport.rst. - C'est pourquoi, nous avons décidé de créer un nouvel encoder mais qui n'hériterait pas de XMLEncoder. Il fallait donc obtenir les enfants des objets, les propriétés, les events ... Pour récupérer ces @@ -141,7 +140,6 @@ l'implantation terminée, je me suis aperçue que la sérialisation des arguments était incorrecte. Il a donc fallu abandonner cette voie. - Nous avons donc souhaité reprendre l'ancien encoder BuixXmlEncoder et corriger les erreurs. Par la même occasion, j'ai revu la sérialisation et UIModelWriter a été modifié pour s'adapter à la lecture des HashMap @@ -202,10 +200,10 @@ de ces panels.Ainsi, on ne peut accéder au bouton Save, Cancel ... présent dans ButtonsPanel. -Autres -====== +5. Autres +========= -Voici comment est construit le TreeNode : +Voici comment est construit le TreeNode: -à l'indice 0 -> layout -aux autres indices se trouvent les enfants + - à l'indice 0 -> layout, + - aux autres indices se trouvent les enfants. Index: buix/doc/loading-guide.rst diff -u buix/doc/loading-guide.rst:1.1 buix/doc/loading-guide.rst:1.2 --- buix/doc/loading-guide.rst:1.1 Fri Sep 17 15:52:36 2004 +++ buix/doc/loading-guide.rst Mon Sep 20 12:51:17 2004 @@ -1,35 +1,48 @@ -Guide pour charger des entites dans Buix +BUIX +~~~~ + +Guide pour charger des entités dans Buix ======================================== -1- Copier le .jar dans le repertoire src/resources de Buix -2- Construire un fichier xml : +1. Copier le .jar dans le répertoire src/resources de Buix +2. Construire un fichier xml : * dans le cas de composant + - nommer le fichier : NomDuFichier-widgets.xml - - syntaxe : + - syntaxe: + + :: + - + - + + * dans le cas de layout + - nommer le fichier : NomDuFichier-layouts.xml - -syntaxe : + - syntaxe: + + :: + -3- 2 possibilites : + +3. 2 possibilités : - mettre le fichier xml dans src/resources de Buix - ou le placer dans le .jar -4- Compiler Buix +4. Compiler Buix -5- Executer Buix +5. Exécuter Buix -6- ATTENTION : Seul les entites ayant un constructeur sans argument peuvent -etre charges dans Buix \ No newline at end of file +6. ATTENTION : Seul les entités ayant un constructeur sans argument peuvent +être chargés dans Buix. \ No newline at end of file Index: buix/doc/user-guide.rst diff -u buix/doc/user-guide.rst:1.2 buix/doc/user-guide.rst:1.3 --- buix/doc/user-guide.rst:1.2 Fri Sep 10 15:39:01 2004 +++ buix/doc/user-guide.rst Mon Sep 20 12:51:17 2004 @@ -1,15 +1,145 @@ +BUIX +~~~~ + + Installation ============ Pour utiliser Buix il faut avoir dans son classpath le fichier ${JAVA_HOME}/lib/dt.jar. Le mieux pour cela est de le mettre dans le -répertoire ${JAVA_HOME}/jre/lib/ext ou de faire un lien dans ce répertoire -vers le fichier dt.jar. +répertoire ${JAVA_HOME}/jre/lib/ext ou de faire un lien dans ce +répertoire vers le fichier dt.jar. + +Lancer le script buix.sh pour exécuter l'application Buix + +Composition générale de Buix +============================ + +Buix est composée de 5 parties : + +1-Menu +------ + +Dans ce menu, il est possible de créer une nouvelle interface "New", +d'enregistrer cette interface Save ou Save As. Attention, si vous +souhaitez générer ce fichier en java dans Topia, Il est impératif +d'indiquer le package comme ceci par exemple +org.codelutin.entities.ui.NomDuFichier.javaxml lors de +l'enregistrement. Ainsi, le début du nom correspond au package, vient +ensuite le nom du fichier. Enfin l'extension javaxml est nécessaire +pour que la génération ait bien lieu ! + +En cliquant sur preview ou sur clipboard, il est possible de +visualiser le preview ou le clipboard de l'application en mode +"graphique". + +Pour quitter l'application, il faut utiliser Quit du menu. + +Pour le moment, Export ne fonctionne pas correctement mais il agit +selon le même principe que Save. + +La partie Configuration du menu permet de verrouiller un bouton +lorsque l'utilisateur souhaite ajouter la même entité plusieurs fois +sur l'interface. Cela évite de sélectionner à nouveau le bouton de +l'entité. + +Remarque : il est impossible d'ajouter un layout ou un composant de +type Window au preview. De plus, il est impossible de "visionner" un +arbre vide. + +2-Interface créée +----------------- + +La zone où se situe l'interface graphique est en haut à gauche. Elle +se présente sous forme d'arbre mais il est possible de voir +l'interface en mode preview. C'est dans cette zone que peuvent être +ajoutées, supprimées ou modifiées les entités. + +Remarque : il est impossible de supprimer un layout + + +* Ajouter un composant ou un layout : cf. partie Entités disponibles + +* Supprimer un composant : + + - sélectionner le composant dans l'arbre ou le preview + - cliquer sur suppr. -Clipboard -========= +* Modifier une entité : cf. partie Propriérés des entités -Pour copier un élément dans le presse papier, il suffit de +3-Entités disponibles +--------------------- + +La zone en bas à gauche regroupe l'ensemble des entités (composants + +layouts) qui peuvent être ajouté à l'interface. + +Pour agrandir la liste des entités proposée, il est possible de +charger des nouvelles entités, je vous invite à consulter le document +loading-guide. + +* Ajouter un composant : + + - cliquer sur le bouton du composant présent dans les onglets + - cliquer sur le container de l'arbre de l'interface qui doit + contenir le composant + +* Ajouter un layout : + + - cliquer sur le bouton du layout présent dans les onglets + - cliquer sur le container de l'arbre de l'interface dont on + souhaite modifier le layout + +Remarque : une fois l'entité ajoutée, le bouton de l'onglet est +"déssélectionné". Si vous ajoutez à nouveau le même composant, il est +nécessaire de cliquer à nouveau! C'est pourquoi, il est possible de +laisser sélectionner le bouton si seulement vous avez validez +"Sélection" dans le menu Configuration. + + +4-Propriétés des entités +------------------------ + +Cette zone située en bas à droite permet d'obtenir, de modifier toutes +les propriétés de l'entité sélectionnée dans l'arbre. Cette zone +présente différents onglets : + + - l'onglet Properties présente un ensemble de propriétés mais + les modifications ne sont pas prisses en comptes. Cet onglet + sert pour le moment à tester l'utilisation du librairie. + + - l'onglet All Properties présente toutes les propriétés de + l'entité. Il y a trois colonnes. La première permet de faire + apparaître cette propriété dans l'onglet Selected Properties + afin de sélectionner seulement les propriétés les plus + utilisées. La deuxième et la troisième colonne présente + respectivement le nom et la valeur de la propriété. + + - l'onglet Selected Properties présente les propriétés + sélectionnées dans l'onglet All Properties. + + - l'onglet Layout présente les propriétés layout du composant + sélectionné dans l'arbre. Par exemple, si un composant se + situe dans un container ayant le layout GridBagLayout par + exemple, vous pourrez définir la contrainte du layout dans cet + onglet c'est à dire gridx, gridy, gridwidth ... + + - l'onglet Event présente l'ensemble des évènements possibles + sur ce composant. Vous pouvez choisir un listener et la + méthode associée parmi la liste proposée pour le bean + sélectionné. Il faut ensuite saisir le nom de la méthode de + l'action ainsi que ces arguments. Puis, il suffit de cliquer + sur « Add » pour ajouter un nouvel événement à la liste des + évènements. Pour enlever un événement, il faut le sélectionner + dans cette même liste et cliquer sur « Remove ». + +Remarque : Pour valider la modification de la propriété, il est +impératif d'appuyer sur "Entrée". + +5-Presse papier +--------------- + +La zone située en haut à droite présente le presse papier de +l'application. Pour copier un élément dans le presse papier, il suffit de sélectionner un composant (et seulement un composant dans l'arbre ou dans le preview) puis d'appuyer sur les touches Ctrl + C, pour couper Ctrl + X. On peut constater que le composant est venu s'ajouter dans @@ -19,24 +149,6 @@ doit cliquer sur le container dans lequel le composant doit être ajouté. Ensuite, il peut appuyer sur les touches Ctrl + V. -Il est possible de supprimer un composant sur le clipboard et -le preview quelque soit la vue en appuyant sur le bouton -Suppr. - -Ajouter un évènement à un composant -=================================== - -L'utilisateur sélectionne un composant dans l'arbre ou sur le panneau -de prévisualisation. Par la suite, il peut choisir un listener et la -méthode associée parmi la liste proposée pour le bean sélectionné. Il -peut ensuite saisir le nom de la méthode de l'action ainsi que ces -arguments. Puis, il suffit de cliquer sur « Add » pour ajouter un -nouvel événement à la liste située en bas. Pour enlever un événement, -il faut le sélectionner dans cette même liste et cliquer sur « Remove -». - -Preview -======= +Il est possible de supprimer un composant sur le clipboard quelque +soit la vue en appuyant sur le bouton Suppr. -Il est impossible d'ajouter un layout ou un composant de type Window -au preview. De plus, il est impossible de "visionner" un arbre vide.