package de.tutorials;
import java.util.ArrayList;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
public class DatenModel extends Observable implements Observer{
private ArrayList<Kunde> kunden = new ArrayList<Kunde>();
private ArrayList<Bestellung> bestellungen = new ArrayList<Bestellung>();
private ArrayList<Bestellposition> bestellPositionen = new ArrayList<Bestellposition>();
private Kunde kundeFilter = null;
private Bestellung bestellungFilter = null;
public DatenModel(){
// Spieldaten
Kunde mayer = new Kunde(1,"Mayer");
Kunde müller = new Kunde(2,"Müller");
Kunde schulz = new Kunde(3,"Schulz");
Bestellung bestellung1 = new Bestellung(1,mayer,"Bestellung 1");
Bestellung bestellung2 = new Bestellung(2,mayer,"Bestellung 2");
Bestellung bestellung3 = new Bestellung(3,müller,"Bestellung 3");
Bestellung bestellung4 = new Bestellung(4,müller,"Bestellung 4");
Bestellung bestellung5 = new Bestellung(5,schulz,"Bestellung 5");
Bestellung bestellung6 = new Bestellung(6,schulz,"Bestellung 6");
addKunde(mayer);
addKunde(müller);
addKunde(schulz);
addBestellung(bestellung1);
addBestellung(bestellung2);
addBestellung(bestellung3);
addBestellung(bestellung4);
addBestellung(bestellung5);
addBestellung(bestellung6);
addBestellposition (new Bestellposition(1,bestellung1,"Mutter"));
addBestellposition (new Bestellposition(2,bestellung1,"Schraube"));
addBestellposition (new Bestellposition(3,bestellung1,"Niete"));
addBestellposition (new Bestellposition(4,bestellung2,"Nagel"));
addBestellposition (new Bestellposition(5,bestellung2,"Hammer"));
addBestellposition (new Bestellposition(6,bestellung2,"Zange"));
addBestellposition (new Bestellposition(7,bestellung3,"Dübel"));
addBestellposition (new Bestellposition(8,bestellung3,"Bohrer"));
addBestellposition (new Bestellposition(9,bestellung3,"Kleber"));
addBestellposition (new Bestellposition(10,bestellung4,"Hefter"));
addBestellposition (new Bestellposition(11,bestellung4,"Klemme"));
addBestellposition (new Bestellposition(12,bestellung4,"Dies und Das"));
addBestellposition (new Bestellposition(13,bestellung5,"Haken"));
addBestellposition (new Bestellposition(14,bestellung5,"Ösen"));
addBestellposition (new Bestellposition(15,bestellung5,"Krims"));
addBestellposition (new Bestellposition(16,bestellung6,"Krams"));
addBestellposition (new Bestellposition(17,bestellung6,"Tod"));
addBestellposition (new Bestellposition(18,bestellung6,"Teufel"));
setKundeFilter(kunden.get(0));
}
public Kunde getKundeFilter() {
return kundeFilter;
}
public void setKundeFilter(Kunde kundeFilter) {
this.kundeFilter = kundeFilter;
setBestellungFilter(getBestellungen().get(0));
//fireEvent();
}
public Bestellung getBestellungFilter() {
return bestellungFilter;
}
public void setBestellungFilter(Bestellung bestellungFilter) {
this.bestellungFilter = bestellungFilter;
fireEvent();
}
public void addKunde(Kunde kunde) {
kunde.addObserver(this);
kunden.add(kunde);
fireEvent();
}
public void addBestellung(Bestellung bestellung) {
bestellung.addObserver(this);
bestellungen.add(bestellung);
fireEvent();
}
public void addBestellposition(Bestellposition bestellposition) {
bestellposition.addObserver(this);
bestellPositionen.add(bestellposition);
fireEvent();
}
public List<Kunde> getKunden() {
return kunden;
}
public List<Bestellung> getBestellungen() {
List<Bestellung> retval = new ArrayList<Bestellung>();
for(Bestellung bestellung : bestellungen){
if(bestellung.getKunde().getId() == kundeFilter.getId())
retval.add(bestellung);
}
return retval;
}
public List<Bestellposition> getBestellungPositionen() {
List<Bestellposition> retval = new ArrayList<Bestellposition>();
for(Bestellposition bestellPosition : bestellPositionen){
if(bestellPosition.getBestellung().getId() == bestellungFilter.getId())
retval.add(bestellPosition);
}
return retval;
}
@Override
public void update(Observable arg0, Object arg1) {
fireEvent();
}
private void fireEvent() {
setChanged();
notifyObservers();
}
}