/* * 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 controller; import controller.commands.CommandAddRow; import controller.commands.CommandDeleteRow; import controller.commands.CommandOpen; import controller.commands.CommandSave; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import model.AdressverwaltungModel; import prfourgui.View.AdressbuchView; /** * * @author jechowma68968 */ public class Controller implements ActionListener { private AdressbuchView view; private AdressverwaltungModel model; private Invoker invoker; public Controller(AdressbuchView view, AdressverwaltungModel model) { this.view = view; this.model = model; this.invoker = new Invoker(); } /** * Hinterlegen aller Objekte in View die Interaktion ausüben */ public void registerEvents(){ view.getMnuOpen().addActionListener(this); view.getToolAdd().addActionListener(this); view.getToolRemove().addActionListener(this); view.getMnuSave().addActionListener(this); view.getAdressTable2().getDeleteItem().addActionListener(this); view.getToolUndo().addActionListener(this); } public void registerCommands(){ invoker.addCommand(view.getMnuOpen(), new CommandOpen(view, model)); invoker.addCommand(view.getToolAdd(), new CommandAddRow(view, model)); invoker.addCommand(view.getToolRemove(), new CommandDeleteRow(view, model)); invoker.addCommand(view.getMnuSave(), new CommandSave(view, model)); invoker.addCommand(view.getAdressTable2().getDeleteItem(), new CommandDeleteRow(view, model)); } @Override public void actionPerformed(ActionEvent ae) { Object key = ae.getSource(); if (key == view.getToolUndo()){ invoker.undo(key); } else{ invoker.executeCommand(key); } } }