You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
3.2 KiB
88 lines
3.2 KiB
package view_modele;
|
|
|
|
import Modele.metier.Couleur;
|
|
import Modele.metier.Habit;
|
|
import Modele.metier.Produit;
|
|
import Modele.metier.Taille;
|
|
import javafx.beans.property.ListProperty;
|
|
import javafx.beans.property.SimpleListProperty;
|
|
import javafx.collections.FXCollections;
|
|
import javafx.collections.ObservableList;
|
|
|
|
import java.beans.IndexedPropertyChangeEvent;
|
|
import java.beans.PropertyChangeEvent;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
public class HabitVM extends ProduitVM {
|
|
|
|
private ObservableList<CouleurVM> couleurObs = FXCollections.observableArrayList();
|
|
|
|
private ListProperty<CouleurVM> listeCouleurs = new SimpleListProperty<>(couleurObs);
|
|
|
|
public ObservableList<CouleurVM> getListeCouleurs() { return listeCouleurs.get(); }
|
|
public ListProperty<CouleurVM> listeCouleursProperty() { return listeCouleurs; }
|
|
public void setListeCouleurs(ObservableList<CouleurVM> listeCouleurs) { this.listeCouleurs.set(listeCouleurs); }
|
|
|
|
|
|
private ObservableList<TailleVM> taillesObs = FXCollections.observableArrayList();
|
|
|
|
private ListProperty<TailleVM> listeTailles = new SimpleListProperty<>(taillesObs);
|
|
|
|
public ObservableList<TailleVM> getListeTailles() { return listeTailles.get(); }
|
|
public ListProperty<TailleVM> listeTaillesProperty() { return listeTailles; }
|
|
public void setListeTailles(ObservableList<TailleVM> listeTailles) { this.listeTailles.set(listeTailles); }
|
|
|
|
public HabitVM(String nom, int prix){
|
|
this(new Habit(nom, prix));
|
|
|
|
}
|
|
|
|
public HabitVM(Habit produit){
|
|
super(produit);
|
|
for(Couleur c : ((Habit)modele).getCouleurs()){
|
|
couleurObs.add(new CouleurVM(c));
|
|
}
|
|
taillesObs.addAll(TailleVMTailleConverter.toTaillesVM(((Habit) modele).getTaillesEnStock()));
|
|
}
|
|
|
|
public void ajouterCouleur(int vert, int rouge, int bleue){
|
|
((Habit)modele).ajouterCouleur(vert, rouge, bleue);
|
|
}
|
|
|
|
public void supprimerCouleur(CouleurVM couleur){
|
|
((Habit)modele).supprimerCouleur(couleur.getModele());
|
|
}
|
|
|
|
public void ajouterTaille(TailleVM taille){
|
|
((Habit)modele).ajouterTaille(TailleVMTailleConverter.toTaille(taille));
|
|
}
|
|
|
|
public void supprimerTaille(TailleVM taille){
|
|
((Habit)modele).supprimerTaille(TailleVMTailleConverter.toTaille(taille));
|
|
}
|
|
|
|
@Override
|
|
public void propertyChange(PropertyChangeEvent evt) {
|
|
switch (evt.getPropertyName()){
|
|
case Habit.PROP_ADD_COULEUR -> couleurObs.add(((IndexedPropertyChangeEvent)evt).getIndex(), new CouleurVM((Couleur)evt.getNewValue()));
|
|
case Habit.PROP_REMOVE_COULEUR -> couleurObs.remove((new CouleurVM((Couleur)evt.getOldValue())));
|
|
case Habit.PROP_ADD_TAILLE -> taillesObs.add(((IndexedPropertyChangeEvent)evt).getIndex(),TailleVMTailleConverter.toTailleVM((Taille)evt.getNewValue()));
|
|
case Habit.PROP_REMOVE_TAILLE -> taillesObs.remove(TailleVMTailleConverter.toTailleVM((Taille)evt.getOldValue()));
|
|
}
|
|
}
|
|
|
|
public ObservableList<TailleVM> getToutesLesTailles(){
|
|
ObservableList<TailleVM> ans =FXCollections.observableArrayList();
|
|
ans.add(TailleVM.XS);
|
|
ans.add(TailleVM.S);
|
|
ans.add(TailleVM.M);
|
|
ans.add(TailleVM.L);;
|
|
ans.add(TailleVM.XL);
|
|
|
|
return ans;
|
|
}
|
|
|
|
|
|
}
|