Page d'accueilFindIt !Contact Cahier Swing

Cahier Swing

 Forum Cahier Swing

Ce forum est dédié au Cahier du Programmeur Swing et Sweet Home 3D son étude de cas.
Utilisez-le pour toute demande d'information supplémentaire ou pour toute suggestion au sujet de cet ouvrage et de cette application.
Pour les informations relatives à l'ouvrage Bien programmer en Java 7 et au Cahier du programmeur Java, merci d'utiliser le forum qui leur est dédié.
Vous pouvez consulter ces forums librement. Pour y participer, inscrivez-vous tout d'abord.

Sujets Messages récents Identification Inscription
Messages du sujet Ajout élements au Catalogue

pingoui

Membre depuis : 24 mars 2007
Messages : 20
 29 mars 2007 à 20:58
Bonsoir,

J'aimerai pouvoir enregistrer dans le catalogue des éléments.
Par exemple, je dessine une pièce "salle de bain" de 2x2 mètres et j'aimerai l'ajouter au catalogue pour l'utiliser dans plusieurs projets d'aménagement de maison.
De quelle façon dois-je procéder pour réaliser ou modifier les classes
Merci de m'orienter.
Cordialament

Manu

Ville : Paris / France
Membre depuis : 29 avr. 2003
Messages : 394
 29 mars 2007 à 23:09
Bonsoir,

> J'aimerai pouvoir enregistrer dans le catalogue des éléments.

J'imagine que tu veux pouvoir ajouter à l'exécution du programme de nouveaux éléments au catalogue, puisque d'après la capture d'écran http://www.hiboox.com/image.php?img=f59c68a.png tu as compris comment modifier le fichier DefaultCatalog.properties.
Il faut que :
- tu crées une nouvelle panneau de boîte de dialogue (un peu comme la classe UserPreferencesPanel) qui permettra à l'utilisateur de saisir les caractéristiques d'un nouvel élément du catalogue,
- tu ajoutes ensuite cet élément au catalogue dans le modèle
- tu ajoutes un listener sur la classe du catalogue qui permettra de notifier à l'arbre que le catalogue à été modifié

Pour sauvegarder les éléments du catalogue, tu peux les enregistrer et les lire par exemple dans les préférences en modifiant la classe FileUserPreferences.

J'espère que j'ai pu te mettre sur la bonne voie...
---
Manu (moderator/modérateur)

pingoui

Membre depuis : 24 mars 2007
Messages : 20
 30 mars 2007 à 20:21
Parfait! je suis sur les rails ;)

Par contre, comment puis-je enregistrer dans mon catalogue des murs?
Je dessine simplement des murs et j'enregistre le tout dans mon catalogue pour pouvoir me reservir dans d'autre projets

pingoui

Membre depuis : 24 mars 2007
Messages : 20
 31 mars 2007 à 21:53

> Il faut que :
> - tu crées une nouvelle panneau de boîte de dialogue (un peu comme la classe UserPreferencesPanel) qui permettra à l'utilisateur de saisir les caractéristiques d'un nouvel élément du catalogue,

Ca c'est OK ;)

> - tu ajoutes ensuite cet élément au catalogue dans le modèle

Que veux tu dire par là?

merci pour ton aide

Manu

Ville : Paris / France
Membre depuis : 29 avr. 2003
Messages : 394
 5 avr. 2007 à 00:13
>> - tu ajoutes ensuite cet élément au catalogue dans le modèle
> Que veux tu dire par là?

Ben... il faut bien que tu le stockes quelque part ton nouvel élément...
Donc il faut que tu modifies la classe Catalog du modèle pour que tu puisses y ajouter un nouvel élément avec sa catégorie.
Sur la base des classes existantes, il faut que tu rendes public la méthode add(Category, CatalogPieceOfFurniture) puis que tu modifies cette méthode pour qu'elle émette un événement de type FurnitureEvent.
---
Manu (moderator/modérateur)

pingoui

Membre depuis : 24 mars 2007
Messages : 20
 5 avr. 2007 à 20:46
Ok ! merci beaucoup !!!

voilà ma méthode modifié

Par contre je ne sais pas s'il faut ajouter le listener à la liste :(
Est ce utile?

public void add(Category category, LibrarieEquipment equipment) {
int index = this.categories.indexOf(category);
// Si la catégorie n'existe pas encore, ajout de la nouvelle catégorie
// à la liste de catégorie
if (index == -1) {
add(category);
} else {
category = this.categories.get(index);
}
// Ajout de l'équipement à sa catégorie
category.add(equipment);
//notification de l'ajout de l'équipement aux listeners
fireEquipmentChanged(equipment, index,EquipmentEvent.Type.ADD);
}

/**
* Notifie les listeners sur les équipements qu'une modification
* a été effectué sur l'équipement
*/
private void fireEquipmentChanged(LibrarieEquipment librarieEquipment, int index,
EquipmentEvent.Type eventType) {
if (!this.equipmentListeners.isEmpty()) {
//Création de l'événement correspondant à la modification
EquipmentEvent equipmentEvent =
new EquipmentEvent(this, librarieEquipment, index, eventType);
// Création d'une copie de la liste des listeners
EquipmentListener [] listeners = this.equipmentListeners.
toArray(new EquipmentListener [this.equipmentListeners.size()]);
for (EquipmentListener listener : listeners) {
//Notification des listeners
listener.pieceOfEquipmentChanged(equipmentEvent);
}
}
}

> Pour sauvegarder les éléments du catalogue, tu peux les enregistrer et les lire par exemple dans les préférences en modifiant la classe FileUserPreferences.

Je ne vois pas trop comment utiliser pour enregistrer les meubles (equipment) au catalogue (librairie). Sachant que je souhaites pouvoir echangé (exporter/importer) avec facilement les equipments avec d'autre logiciel.

Manu

Ville : Paris / France
Membre depuis : 29 avr. 2003
Messages : 394
 9 avr. 2007 à 19:21
> Par contre je ne sais pas s'il faut ajouter le listener à la liste :(

J'ai l'impression que tu n'as toujours pas bien compris à quoi servent les listeners !
Pour t'aider à comprendre, tu peux éventuellement faire ton tourner ton programme sous le debugger en mettant un point d'arrêt dans une des méthodes fire...Event existantes. Une fois le point d'arrêt atteint, tu fais marcher ton programme pas à pas pour que tu vois bien ce qu'il se passe.

> Est ce utile?

Il faut bien que tes listeners de type EquipmentListener soient enregistrés dans la liste equipmentListeners si tu veux que ta méthode fireEquipmentChanged ait un effet quelconque.
---
Manu (moderator/modérateur)

pingoui

Membre depuis : 24 mars 2007
Messages : 20
 10 avr. 2007 à 17:42
Ok désolé pour cette question idiote !
Une chose me pertubé...

il me reste ce point en suspend sur ce sujet

> > Pour sauvegarder les éléments du catalogue, tu peux les enregistrer et les lire par exemple dans les préférences en modifiant la classe FileUserPreferences.
>
> Je ne vois pas trop comment utiliser pour enregistrer les meubles (equipment) au catalogue (librairie). Sachant que je souhaites pouvoir echangé (exporter/importer) avec facilement les equipments avec d'autre logiciel.
>

merci pour ton aide


Page d'accueilFindIt !ContactDébut de la page

© Copyrights 1997-2014 eTeks - Tous droits réservés

Cahier Swing