/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package kontakte.controller; import java.util.Map; import java.util.Stack; import kontakte.model.Kontakt; import kontakte.model.Model; import kontakte.view.View; /** * * @author nobody */ public class CommandNewKontaktOk implements CommandInterface { private View view; private Model model; private Stack undoStack; public CommandNewKontaktOk(View view, Model model) { this.view = view; this.model = model; view.getAddEntryFrame().pack(); undoStack = new Stack(); } @Override public void execute() { String name = view.getTextName().getText(); String wohnort = view.getTextCity().getText(); String strasse = view.getTextStreet().getText(); view.getTextName().setText(""); view.getTextCity().setText(""); view.getTextStreet().setText(""); Kontakt neuKon = new Kontakt(name, wohnort, strasse); model.addKontakt(neuKon); undoStack.add(neuKon); redrawTextbox(); view.getAddEntryFrame().dispose(); } @Override public void undo() { if(!undoStack.empty()) { model.deleteKontakt(undoStack.pop()); redrawTextbox(); } } private void redrawTextbox() { view.getTxtKontakte().setText(""); for (Map.Entry k: model.kontaktliste.entrySet()) { view.getTxtKontakte().append(k.getValue().name + " "); view.getTxtKontakte().append(k.getValue().wohnort + " "); view.getTxtKontakte().append(k.getValue().strasse + "\n"); } } }