@ -10,6 +10,7 @@ import javafx.collections.ObservableList;
import modele.metier.ManagerOiseau ;
import modele.metier.ManagerOiseau ;
import modele.metier.oiseaux.Oiseau ;
import modele.metier.oiseaux.Oiseau ;
import java.beans.IndexedPropertyChangeEvent ;
import java.beans.PropertyChangeEvent ;
import java.beans.PropertyChangeEvent ;
import java.beans.PropertyChangeListener ;
import java.beans.PropertyChangeListener ;
import java.io.IOException ;
import java.io.IOException ;
@ -30,7 +31,7 @@ public class ManagerOiseauVM implements PropertyChangeListener {
public void setOiseauCourant ( OiseauVM oiseauCourant ) { this . oiseauCourant . set ( oiseauCourant ) ; }
public void setOiseauCourant ( OiseauVM oiseauCourant ) { this . oiseauCourant . set ( oiseauCourant ) ; }
private ObservableList < OiseauVM > oiseauxObs = FXCollections . observableArrayList ( ) ;
private ObservableList < OiseauVM > oiseauxObs = FXCollections . observableArrayList ( ) ; // envoie notif quand un des élémentscha
private ListProperty < OiseauVM > listeOiseaux = new SimpleListProperty < > ( oiseauxObs ) ;
private ListProperty < OiseauVM > listeOiseaux = new SimpleListProperty < > ( oiseauxObs ) ;
public ObservableList < OiseauVM > getListeOiseaux ( ) { return listeOiseaux . get ( ) ; }
public ObservableList < OiseauVM > getListeOiseaux ( ) { return listeOiseaux . get ( ) ; }
public ListProperty < OiseauVM > listeOiseauxProperty ( ) { return listeOiseaux ; }
public ListProperty < OiseauVM > listeOiseauxProperty ( ) { return listeOiseaux ; }
@ -53,6 +54,7 @@ public class ManagerOiseauVM implements PropertyChangeListener {
for ( Oiseau oiseau : modele . getOiseaux ( ) ) {
for ( Oiseau oiseau : modele . getOiseaux ( ) ) {
oiseauxObs . add ( new OiseauVM ( oiseau ) ) ;
oiseauxObs . add ( new OiseauVM ( oiseau ) ) ;
//oiseauxObs.add(new OiseauVM(oiseau.getNom(), oiseau.getAge(), oiseau.getCouleurAiles())); // pb de référence si je fais ça
}
}
setDateDuJour ( modele . getDateDuJour ( ) ) ;
setDateDuJour ( modele . getDateDuJour ( ) ) ;
modele . addListener ( this ) ;
modele . addListener ( this ) ;
@ -63,24 +65,25 @@ public class ManagerOiseauVM implements PropertyChangeListener {
}
}
public void addOiseau ( String nom , int age , String couleurAiles ) {
public void addOiseau ( String nom , int age , String couleurAiles ) {
OiseauVM oiseauVM = new OiseauVM ( nom , age , couleurAiles ) ;
modele . addOiseau ( nom , age , couleurAiles ) ;
Oiseau oiseau = oiseauVM . getModele ( ) ;
modele . addOiseau ( oiseau . getNom ( ) , oiseau . getAge ( ) , oiseau . getCouleurAiles ( ) ) ;
oiseauxObs . add ( oiseauVM ) ;
}
}
public void supprimerOiseau ( OiseauVM oiseau ) {
public void supprimerOiseau ( OiseauVM oiseau ) {
modele . supprimerOiseau ( oiseau . getModele ( ) ) ;
modele . supprimerOiseau ( oiseau . getModele ( ) ) ;
oiseauxObs . remove ( oiseau ) ;
}
}
@Override
@Override
public void propertyChange ( PropertyChangeEvent evt ) {
public void propertyChange ( PropertyChangeEvent evt ) {
switch ( evt . getPropertyName ( ) ) {
switch ( evt . getPropertyName ( ) ) {
case ManagerOiseau . PROP_DATE_DU_JOUR :
case ManagerOiseau . PROP_DATE_DU_JOUR : // date du jour qui change
setDateDuJour ( ( LocalDate ) evt . getNewValue ( ) ) ;
setDateDuJour ( ( LocalDate ) evt . getNewValue ( ) ) ;
break ;
break ;
case ManagerOiseau . SUPPRESSION_OISEAU : // supprimer un oiseau
oiseauxObs . remove ( ( ( IndexedPropertyChangeEvent ) evt ) . getIndex ( ) ) ;
break ;
case ManagerOiseau . AJOUT_OISEAU : // ajout d'un oiseau
oiseauxObs . add ( ( ( IndexedPropertyChangeEvent ) evt ) . getIndex ( ) , new OiseauVM ( ( Oiseau ) evt . getNewValue ( ) ) ) ;
break ;
}
}
}
}