Print at Dec 22, 2025, 8:48:34 AM

Posted by Puybaret at May 11, 2010, 7:03:54 PM
Re: quelques besoins d'aide
Tu as plus ou moins bien compris le principe de l'EventQueue. invokeLater diffère l'exécution du Runnable en paramètre dans l'Event Dispatch Thread qui gère les événements et le dessin à l'écran. Quand on fait appel à invokeLater alors qu'on est déjà dans l'EDT, le Runnable sera exécuté une fois que le traitement de l'événement courant est terminé.
C'est le cas ici, et je m'en suis servi car la suppression du meuble juste après son ajout provoquait un bug dans le tableau des meubles. En différant la suppression, ça passait mieux mais ça pourrait désynchroniser certains traitements.

La factory ne changera pas le problème du classpath, puisque la factory est une classe qui est gérée elle aussi par le classloader du plug-in. Mais je ne connais pas ta stratégie ; tant que tu ne veux tu pas relire tes objets après les avoir enregistrés, tes sous-classes ne poseront pas de problème.

Pour gérer tes catégories d'objets, tu peux peut-être utilisé le champ "description" dont la valeur est lue dans les fichiers .properties des meubles avec une clé description#n et que l'on retrouve dans les classes CatalogPieceOfFurniture et HomePieceOfFuniture. Dans les faits, ce champ n'est pas utilisé dans la version actuelle de Sweet Home 3D donc tu peux en faire ce que tu veux.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator