Bonjour, Je me rends compte qu'il manque des choses dans la classe Component dont nous avons besoin : 1. un attribut permettant de stocker le type (Class) du composant au runtime 2. une structure arborescente de composant J'ai bien sûr commencé par le 1, mais je ne comprend pas bien comment modifier la classe EntityHelper pour que cette propriété soit visible dans la liste des composants. Pour le reste : - j'ai créé une classe ComponentType qui dérive de Leaf et n'a qu'un attribut - j'ai ajouté un attribut de ce type dans la classe Component - j'ai ajouté ce type dans EntityTypeEnum : ComponentType(false, n_("simexplorer.common.componenttype"), null, ComponentType.class), - j'ai ajouté les libellés dans les fichiers properties en et fr Est-ce que vous pouvez nous proposer une solution pour le 2 ? Cordialement, -- Nicolas Dumoulin Ingénieur d'études - Cemagref, LISC +33 (0)4.73.44.07.29 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel... -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: non disponible Type: application/pgp-signature Taille: 189 octets Desc: This is a digitally signed message part. Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel...
Bonsoir 2008/8/25 Nicolas Dumoulin <nicolas.dumoulin at cemagref.fr>:
Bonjour,
Je me rends compte qu'il manque des choses dans la classe Component dont nous avons besoin :
1. un attribut permettant de stocker le type (Class) du composant au runtime
2. une structure arborescente de composant
J'ai bien sûr commencé par le 1, mais je ne comprend pas bien comment modifier la classe EntityHelper pour que cette propriété soit visible dans la liste des composants. Pour le reste :
- j'ai créé une classe ComponentType qui dérive de Leaf et n'a qu'un attribut
- j'ai ajouté un attribut de ce type dans la classe Component
Ok, mais il faut aussi le rajouter à la liste renvoyée dans getChildren.
- j'ai ajouté ce type dans EntityTypeEnum :
ComponentType(false, n_("simexplorer.common.componenttype"), null, ComponentType.class),
- j'ai ajouté les libellés dans les fichiers properties en et fr
Ca me semble ok.
Est-ce que vous pouvez nous proposer une solution pour le 2 ?
Il suffit d'ajouter un attribut de type Components (qui est un composite de Component) à Component : [..] Components childrenComponents; [..] public List<Entity> getChildren() { [..] directChildren.add(childrenComponents); [..] } [..] J'ai néanmoins un léger doute sur une règle de gestion impliquant la suppression d'EA/Composant. En effet, on considérait comme seul parent possible d'un composant une EA. Hors il est désormais possible que ce soit un autre composant. La règle métier vérifie le nombre de parent d'un composant (ou d'ED) est bien 1, pour permettre sa suppression. En effet, lors de la suppression effective, le composant n'est pas supprimé directement mais son parent l'est. Si les règles de gestion ne sont pas modifiées, un composant peut être supprimé uniquement si : - il n'a pas de père - son père est le seul a l'utiliser, le test s'applique récursivement au père La suppression du composant provoque alors la suppression de son père le plus haut. J'étais pas vraiment fan de cet règle métier à vrai dire, son fonctionnement est, je trouve, plus perturbant qu'autre chose. L'implémentation se trouve dans deleteElement de StorageServiceCommon, en appelant récursivement canBeDeleted et getDeletableParent. Aussi, si vous aviez souhaité créer un type "liste de ComponentType", il aurait suffit de créer cette classe: public final class ComponentTypes extends SimpleComposite<ComponentType> { } Cordialement Gabriel
Le Tuesday 26 August 2008 00:48:05 Gabriel Landais, vous avez écrit :
Bonsoir
2008/8/25 Nicolas Dumoulin <nicolas.dumoulin at cemagref.fr>:
Bonjour,
Je me rends compte qu'il manque des choses dans la classe Component dont nous avons besoin :
1. un attribut permettant de stocker le type (Class) du composant au runtime
2. une structure arborescente de composant
J'ai bien sûr commencé par le 1, mais je ne comprend pas bien comment modifier la classe EntityHelper pour que cette propriété soit visible dans la liste des composants. Pour le reste :
- j'ai créé une classe ComponentType qui dérive de Leaf et n'a qu'un attribut
- j'ai ajouté un attribut de ce type dans la classe Component
Ok, mais il faut aussi le rajouter à la liste renvoyée dans getChildren.
Oui, tout à fait. En fait, je l'avais déjà fait. Donc c'est autre chose. As-tu une autre idée ? Merci -- Nicolas Dumoulin Ingénieur d'études - Cemagref, LISC +33 (0)4.73.44.07.29 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel... -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: non disponible Type: application/pgp-signature Taille: 189 octets Desc: This is a digitally signed message part. Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel...
Ok, mais il faut aussi le rajouter à la liste renvoyée dans getChildren. Oui, tout à fait. En fait, je l'avais déjà fait. Donc c'est autre chose. As-tu une autre idée ?
Merci J'avais mal compris le problème. Pour que cela s'affiche dans la
2008/8/26 Nicolas Dumoulin <nicolas.dumoulin at cemagref.fr>: liste, il faudrait surcharger la méthode getRow de Component dans le style: @Override public List<String> getRow() { List<String> row = super.getRow(); if (componentType != null) { row.add(componentType.getName()); } return row; }
Bonjour, Le Tuesday 26 August 2008 11:48:39 Gabriel Landais, vous avez écrit :
J'avais mal compris le problème. Pour que cela s'affiche dans la liste, il faudrait surcharger la méthode getRow de Component
Merci, effectivement, j'arrive mieux à obtenir un résultat. Ceci dit, le rendu sur la page web n'est pas ce que j'attendais, à savoir que le type de mon composant s'affiche à la place du nom du composant, et n'ajoute pas une ligne comme je l'aurais aimé. En fait, je ne comprends pas bien le rôle des méthodes getRow et getChildren. Peux-tu m'en expliquer un peu plus ? Ou alors m'indiquer la doc à ce sujet que je n'ai pas trouvée. Merci -- Nicolas Dumoulin Ingénieur d'études - Cemagref, LISC +33 (0)4.73.44.07.29 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel... -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: non disponible Type: application/pgp-signature Taille: 189 octets Desc: This is a digitally signed message part. Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel...
Le Wednesday 27 August 2008 16:18:18 Nicolas Dumoulin, vous avez écrit :
je ne comprends pas bien le rôle des méthodes getRow et getChildren. Peux-tu m'en expliquer un peu plus ? Ou alors m'indiquer la doc à ce sujet que je n'ai pas trouvée.
En réfléchissant un peu, je pense que j'ai à peu près compris. Mais, ce qui me gêne c'est que je n'arrive pas à ajouter un fils à l'affichage de mon composant. Pourtant, c'est le rôle de la méthode getChildren ? -- Nicolas Dumoulin Ingénieur d'études - Cemagref, LISC +33 (0)4.73.44.07.29 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel... -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: non disponible Type: application/pgp-signature Taille: 189 octets Desc: This is a digitally signed message part. Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel...
Bonjour 2008/8/27 Nicolas Dumoulin <nicolas.dumoulin at cemagref.fr>:
Le Wednesday 27 August 2008 16:18:18 Nicolas Dumoulin, vous avez écrit :
je ne comprends pas bien le rôle des méthodes getRow et
getChildren. Peux-tu m'en expliquer un peu plus ? Ou alors m'indiquer la
doc à ce sujet que je n'ai pas trouvée.
En réfléchissant un peu, je pense que j'ai à peu près compris. Mais, ce qui me gêne c'est que je n'arrive pas à ajouter un fils à l'affichage de mon composant. Pourtant, c'est le rôle de la méthode getChildren ?
De mémoire, seuls les "LoggableElement" sont affichés dans les arbres, mais je ne suis pas sûr à 100%. Il faudrait regarder de près le EntityVisitorTreeNode. En Swing la ligne est affichée via un toString et un panneau affiche les propriétés et en web getRow est utilise (si je me souviens bien...).
Le Thursday 28 August 2008 12:24:21 Gabriel Landais, vous avez écrit :
Bonjour
2008/8/27 Nicolas Dumoulin <nicolas.dumoulin at cemagref.fr>:
je ne comprends pas bien le rôle des méthodes getRow et getChildren. Peux-tu m'en expliquer un peu plus ? Ou alors m'indiquer la De mémoire, seuls les "LoggableElement" sont affichés dans les arbres, mais je ne suis pas sûr à 100%. Il faudrait regarder de près le EntityVisitorTreeNode.
Ok, ça semble effectivement coller ? Pour le côté Swing, je n'y ai pour l'instant pas regardé. -- Nicolas Dumoulin Ingénieur d'études - Cemagref, LISC +33 (0)4.73.44.07.29 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel... -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: non disponible Type: application/pgp-signature Taille: 189 octets Desc: This is a digitally signed message part. Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel...
Le Tuesday 26 August 2008 00:48:05 Gabriel Landais, vous avez écrit :
La règle métier vérifie le nombre de parent d'un composant (ou d'ED) est bien 1, pour permettre sa suppression. En effet, lors de la suppression effective, le composant n'est pas supprimé directement mais son parent l'est.
Le parent désigne bien le parent dans l'arborescence des éléments, et non des versions ? Je ne comprends pas bien : 1. pourquoi on ne peut pas supprimer un composant si il a plusieurs parents. 2. comment il serait possible qu'une ED ait plusieurs parents. 3. pourquoi on supprime le père. Par exemple si on supprime un composant qui est uniquement fils d'une AE, et que cette même AE à d'autres composants fils, pourquoi supprimer l'AE en entier ?
J'étais pas vraiment fan de cet règle métier à vrai dire, son fonctionnement est, je trouve, plus perturbant qu'autre chose.
Je suis effectivement un peu perturbé. Peux-tu m'éclairer ? -- Nicolas Dumoulin Ingénieur d'études - Cemagref, LISC +33 (0)4.73.44.07.29 -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel... -------------- section suivante -------------- Une pièce jointe non texte a été nettoyée... Nom: non disponible Type: application/pgp-signature Taille: 189 octets Desc: This is a digitally signed message part. Url: https://lists.labs.libre-entreprise.org/mailman/private/simexplorer-si-devel...
participants (2)
-
gabriel.landais@gmail.com -
nicolas.dumoulin@cemagref.fr