Index: buix/doc/analyze-guide.rst diff -u buix/doc/analyze-guide.rst:1.3 buix/doc/analyze-guide.rst:1.4 --- buix/doc/analyze-guide.rst:1.3 Mon Sep 20 12:51:17 2004 +++ buix/doc/analyze-guide.rst Thu Sep 23 10:44:20 2004 @@ -1,19 +1,29 @@ +==== BUIX -~~~~ +==== + +:Authors: Aurélie Mazelier +:Revision: $Revision: 1.4 $ +:Date: $Date: 2004/09/23 10:44:20 $ + +.. sectnum:: + +.. contents:: La finalité de document est d'expliquer les choix de conception de Buix. -1. Propriétés layout des composants -=================================== +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 - - - Développement de LayoutInfo équivalent à BeanInfo. Chaque layout possède sa classe 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. 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 @@ -25,8 +35,8 @@ 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); +- 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 +58,8 @@ dans la méthode setValue. -2. ClipBoard -============ +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 +67,8 @@ SwingTreeNode. Il a fallu aussi effectuer des copies en profondeur en utilisant la sérialisation (méthode makeDeepCopy). -3. Chargement des composants Swing et des interfaces générées -============================================================= +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. @@ -74,8 +84,8 @@ layout. Par contre, nous pouvons constaté la présence des attributs shelf et class. -WidgetsButtons : boutons qui caractérisent les composants -LayoutButtons : boutons qui caractérisent les layouts. +:WidgetsButtons : boutons qui caractérisent les composants +:LayoutButtons : boutons qui caractérisent les layouts. Ces fichiers xml se trouvent dans une arborescence particulière : src/resources. L'application va alors chercher à cet endroit les @@ -99,8 +109,8 @@ fichier xml alors les composants swing présents dans swing-widgets.xml et les layouts ne seront pas chargés. -4. Encoders -=========== +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 à @@ -200,10 +210,10 @@ de ces panels.Ainsi, on ne peut accéder au bouton Save, Cancel ... présent dans ButtonsPanel. -5. Autres -========= +Autres +====== 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/bilanExport.rst diff -u buix/doc/bilanExport.rst:1.1 buix/doc/bilanExport.rst:1.2 --- buix/doc/bilanExport.rst:1.1 Mon Sep 13 12:45:17 2004 +++ buix/doc/bilanExport.rst Thu Sep 23 10:44:20 2004 @@ -1,48 +1,58 @@ Exportation dans Buix ===================== +:Authors: Aurélie Mazelier +:Revision: $Revision: 1.2 $ +:Date: $Date: 2004/09/23 10:44:20 $ + +.. sectnum:: + +.. contents:: + Voici le bilan des problèmes rencontrés lors de l'exportation d'un objet dans Buix. Les tests ont été effectués alors qu'il y avait classLoader dans WidgetManager. -1- Lors du chargement des panels de Chorem, les classes ne sont plus -trouvées si le classLoader n'est plus dans WidgetManager mais dans -Buix. - -2- Si on a un arbre de la form JFrame avec JRootPane comme "layout" et -AlarmPanel comme enfant alors on obtient Center pour -le panel Chorem lors de l'export et uniquement si l'objet est un panel -Chorem. - -3- Lorsqu'on ajoute un enfant à la JFrame (en gardant la même -configuration que ci-dessus), le n'apparaît plus du tout ! - -4- Les enfants d'un panel Chorem ne sont pas visibles lors de l'export -même si on ajoute un nouvel enfant au panel et si on modifie l'un -d'entre eux. - -5- Modification d'un enfant du panel Chorem : - - - label -> pas de changement par rapport au 4 - - button -> pas de changement par rapport au 4 - -6- Lorsqu'on ajoute un JButton sans texte, on obtient les tags -suivants : - - - - - -7- Lorsqu'on exporte JFrame et que le preview est visible alors la -propriete visible apparaît dans le fichier exporté. - -8- Dans le cas où la racine est le panel Chorem : - - - pas de layout - - pas d'enfants - - pas de visible - - pas de name - -9- Il est possible aussi qu'il n'y ait pas d'events mais que les tags - soient quand même présents dans le fichier exporté (voir le -cas où au args[0]=null, addContainerListener). +1. Lors du chargement des panels de Chorem, les classes ne sont plus + trouvées si le classLoader n'est plus dans WidgetManager mais dans + Buix. + +2. Si on a un arbre de la form JFrame avec JRootPane comme "layout" et + AlarmPanel comme enfant alors on obtient Center pour + le panel Chorem lors de l'export et uniquement si l'objet est un panel + Chorem. + +3. Lorsqu'on ajoute un enfant à la JFrame (en gardant la même + configuration que ci-dessus), le n'apparaît plus du tout ! + +4. Les enfants d'un panel Chorem ne sont pas visibles lors de l'export + même si on ajoute un nouvel enfant au panel et si on modifie l'un + d'entre eux. + +5. Modification d'un enfant du panel Chorem: + + - label -> pas de changement par rapport au 4 + - button -> pas de changement par rapport au 4 + +6. Lorsqu'on ajoute un JButton sans texte, on obtient les tags + suivants:: + + + + + +7. Lorsqu'on exporte JFrame et que le preview est visible alors la + propriete visible apparaît dans le fichier exporté. + +8. Dans le cas où la racine est le panel Chorem: + + - pas de layout + - pas d'enfants + - pas de visible + - pas de name + +9. Il est possible aussi qu'il n'y ait pas d'events mais que les tags + soient quand même présents dans le fichier exporté (voir le + cas où au args[0]=null, addContainerListener). + + Index: buix/doc/loading-guide.rst diff -u buix/doc/loading-guide.rst:1.2 buix/doc/loading-guide.rst:1.3 --- buix/doc/loading-guide.rst:1.2 Mon Sep 20 12:51:17 2004 +++ buix/doc/loading-guide.rst Thu Sep 23 10:44:20 2004 @@ -1,5 +1,14 @@ +==== BUIX -~~~~ +==== + +:Authors: Aurélie Mazelier +:Revision: $Revision: 1.3 $ +:Date: $Date: 2004/09/23 10:44:20 $ + +.. sectnum:: + +.. contents:: Guide pour charger des entités dans Buix ======================================== @@ -8,41 +17,34 @@ 1. Copier le .jar dans le répertoire src/resources de Buix 2. Construire un fichier xml : - * dans le cas de composant + * dans le cas de composant - - nommer le fichier : NomDuFichier-widgets.xml - - syntaxe: + - nommer le fichier : NomDuFichier-widgets.xml + - syntaxe:: - :: + + + + - - - - + * dans le cas de layout + - nommer le fichier : NomDuFichier-layouts.xml + - syntaxe:: - * dans le cas de layout - - - nommer le fichier : NomDuFichier-layouts.xml - - syntaxe: - - :: - - - - - + + + + 3. 2 possibilités : - - mettre le fichier xml dans src/resources de Buix - - - ou le placer dans le .jar + - mettre le fichier xml dans src/resources de Buix + - ou le placer dans le .jar 4. Compiler Buix 5. Exécuter Buix -6. ATTENTION : Seul les entités ayant un constructeur sans argument peuvent -être chargés 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. Index: buix/doc/user-guide.rst diff -u buix/doc/user-guide.rst:1.3 buix/doc/user-guide.rst:1.4 --- buix/doc/user-guide.rst:1.3 Mon Sep 20 12:51:17 2004 +++ buix/doc/user-guide.rst Thu Sep 23 10:44:20 2004 @@ -1,6 +1,14 @@ +==== BUIX -~~~~ +==== +:Authors: Aurélie Mazelier +:Revision: $Revision: 1.4 $ +:Date: $Date: 2004/09/23 10:44:20 $ + +.. sectnum:: + +.. contents:: Installation ============ @@ -17,8 +25,8 @@ Buix est composée de 5 parties : -1-Menu ------- +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 @@ -47,8 +55,8 @@ type Window au preview. De plus, il est impossible de "visionner" un arbre vide. -2-Interface créée ------------------ +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 @@ -62,13 +70,13 @@ * Supprimer un composant : - - sélectionner le composant dans l'arbre ou le preview - - cliquer sur suppr. + - sélectionner le composant dans l'arbre ou le preview + - cliquer sur suppr. * Modifier une entité : cf. partie Propriérés des entités -3-Entités disponibles ---------------------- +Entités disponibles +------------------- La zone en bas à gauche regroupe l'ensemble des entités (composants + layouts) qui peuvent être ajouté à l'interface. @@ -79,64 +87,65 @@ * 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 + - 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. + - 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 -4-Propriétés des entités ------------------------- +: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. + + +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 ». +- 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 ---------------- +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