package de.dis2011.editor;
import de.dis2011.core.ImmoService;
import de.dis2011.data.Makler;
import de.dis2011.menu.MaklerSelectionMenu;
import de.dis2011.menu.Menu;
import de.dis2011.util.FormUtil;
/**
* Klasse für die Menüs zur Verwaltung von Immobilien
*/
public class MaklerEditor {
///Immobilienservice, der genutzt werden soll
/**
* @uml.property name="service"
* @uml.associationEnd multiplicity="(1 1)"
*/
private ImmoService service;
public MaklerEditor(ImmoService service) {
this.service = service;
}
/**
* Zeigt die Maklerverwaltung
*/
public void showMaklerMenu() {
//Menüoptionen
final int NEW_MAKLER = 0;
final int EDIT_MAKLER = 1;
final int DELETE_MAKLER = 2;
final int BACK = 3;
//Maklerverwaltungsmenü
Menu maklerMenu = new Menu("Makler-Verwaltung");
maklerMenu.addEntry("Neuer Makler", NEW_MAKLER);
maklerMenu.addEntry("Makler bearbeiten", EDIT_MAKLER);
maklerMenu.addEntry("Makler löschen", DELETE_MAKLER);
maklerMenu.addEntry("Zurück zum Hauptmenü", BACK);
//Verarbeite Eingabe
while(true) {
int response = maklerMenu.show();
switch(response) {
case NEW_MAKLER:
newMakler();
break;
case EDIT_MAKLER:
editMakler();
break;
case DELETE_MAKLER:
deleteMakler();
break;
case BACK:
return;
}
}
}
/**
* Legt einen neuen Makler an, nachdem der Benutzer
* die entprechenden Daten eingegeben hat.
*/
public void newMakler() {
Makler m = new Makler();
m.setName(FormUtil.readString("Name"));
m.setAdresse(FormUtil.readString("Adresse"));
m.setLogin(FormUtil.readString("Login"));
m.setPasswort(FormUtil.readString("Passwort"));
service.addMakler(m);
System.out.println("Makler mit der ID "+m.getId()+" wurde erzeugt.");
}
/**
* Berarbeitet einen Makler, nachdem der Benutzer ihn ausgewählt hat
*/
public void editMakler() {
//Menü zum selektieren des Maklers
Menu maklerSelectionMenu = new MaklerSelectionMenu("Makler editieren", service.getAllMakler());
int id = maklerSelectionMenu.show();
//Falls nicht "zurück" gewählt, Makler bearbeiten
if(id != MaklerSelectionMenu.BACK) {
//Makler laden
Makler m = service.getMaklerById(id);
System.out.println("Makler "+m.getName()+" wird bearbeitet. Leere Felder bleiben unverändert.");
//Neue Daten abfragen
String new_name = FormUtil.readString("Name ("+m.getName()+")");
String new_address = FormUtil.readString("Adresse ("+m.getAdresse()+")");
String new_login = FormUtil.readString("Login ("+m.getLogin()+")");
String new_password = FormUtil.readString("Passwort ("+m.getPasswort()+")");
//Neue Daten setzen
if(!new_name.equals(""))
m.setName(new_name);
if(!new_address.equals(""))
m.setAdresse(new_address);
if(!new_login.equals(""))
m.setLogin(new_login);
if(!new_password.equals(""))
m.setPasswort(new_password);
service.editMakler(m);
}
}
/**
* Löscht einen Makler, nachdem der Benutzer
* ihn ausgewählt hat.
*/
public void deleteMakler() {
//Menü zum selektieren des Maklers
Menu maklerSelectionMenu = new MaklerSelectionMenu("Makler löschen", service.getAllMakler());
int id = maklerSelectionMenu.show();
//Makler löschen falls nicht "zurück" ausgewählt wurde
if(id != MaklerSelectionMenu.BACK) {
Makler m = service.getMaklerById(id);
service.deleteMakler(m);
}
}
}