Pourquoi est-ce qu'il te faut créer un Compte "Tous" ?
Est-ce que tu ne pourrais pas utiliser un Objet String ?
exemple :
1 2 3 4 5 6 7 8 9 10
| public abstract class BComboBox<T> extends JComboBox {
protected boolean allOption;
public void addAllOption() {
if (!allOption) {
insertItemAt("Tous", 0);
}
allOption = true;
} |
Ensuite à un moment il faudra tester le type de l'objet sélectionné avec if (getSelectedItem() instanceof String) { /* Tous est sélectionné */ }.
Le compilateur fait un avertissement :
Type safety: The method insertItemAt(Object, int) belongs to the raw type JComboBox. References to generic type JComboBox<E> should be parameterized
Ca fonctionne quand même.
De toute façon et de manière péremptoire "Tous" et un élément défini ne devrait pas être du même type.
Sinon, la méthode no 3 que j'ai posté auparavant est bien :
1 2 3 4 5 6 7 8 9 10 11
| public abstract class B3ComboBox<T> extends JComboBox {
protected boolean allOption;
public abstract T getAllOptionElement();
public void addAllOption() {
if (!allOption) {
insertItemAt(getAllOptionElement(), 0);
}
allOption = true;
} |
avec la méthode abstraite getAllOptionElement() on sous-traite cette fonction par la classe fille.
Je pense aussi à une autre méthode qui demanderai du changement :
Il faudrait alors demander à la classe XContextInterface de générer l'élément "Tous"
Alors il faudrait créér une interface générique et que chaque Objet DAO implémente cette structure.
getComptes() serait changé en comptesDAO.getList(),
la classe ComptesDAO implémente l'interface utile pour remplir le comboBox : getList et getAllOptionElement()
Le code sera donc :
insertItemAt( xContext.getAllOptionElement(), 0);
Partager