package ui.controller; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.LinkedList; import classes.Category; import classes.CpsObject; import classes.HolonObject; import Interfaces.CategoryListener; import ui.model.Model; import ui.view.GUI; public class Control { public enum command { CATEGORY, OBJECT } private Model MODEL; private ActionListener actionListener; private final CategoryController categoryController; private final ObjectController objectController; private final CanvasController canvasController; private final GlobalController globalController; public Control(Model model) { this.MODEL = model; this.categoryController = new CategoryController(model); this.objectController = new ObjectController(model); this.canvasController = new CanvasController(model); this.globalController = new GlobalController(model); } /* Operations for Categories and Objects */ public void addCategory(String catName) { categoryController.addNewCategory(catName); } public void addObject(Category cat, String name, String objType) { categoryController.addNewHolonObject(cat, name, objType); } public void addObjectCategory(Category cat, HolonObject object) { categoryController.addObject(cat, object); } public void addTransformer(Category cat, String name, String objType) { categoryController.addNewHolonTransformer(cat, name, objType); } public void addSwitch(Category cat, String name, String objType) { categoryController.addNewHolonSwitch(cat, name, objType); } public Category searchCategory(String name) { return categoryController.searchCatNode(name); } public void deleteCategory(String catName) { categoryController.deleteCategory(catName); } public void delObjectCategory(String toDelete, String deleteIn) { categoryController.deleteObjectInCat(toDelete, deleteIn); } /* Operations for Canvas */ public void addObjectCanvas(CpsObject object) { canvasController.addObjectIntoCanvas(object); } public void setSelectedObjectID(int id) { objectController.setSelectedObjectID(id); } public void deleteObjectOnCanvas(CpsObject obj) { canvasController.deleteObjectOnCanvas(obj); } /* Operations for Objects and Elements */ public void addElementCanvasObject(String objName, String eleName, int amount, float energy) { objectController.addNewElementIntoCanvasObject(objName, eleName, amount, energy); } public void addElementCategoryObject(String catName, String objName, String eleName, int amount, float energy) { objectController.addNewElementIntoCategoryObject(catName, objName, eleName, amount, energy); } public void deleteElementCanvas(int id, String element) { objectController.deleteElementInCanvas(id, element); } public CpsObject searchByID(int ID){ return objectController.searchByID(ID); } /* Global Operations*/ public int getScale(){ return globalController.getScale(); } public int getScaleDiv2(){ return globalController.getScaleDiv2(); } public void setScale(int s){ globalController.setScale(s); } ////////// etc public void initListener(CategoryListener catLis) { categoryController.addCategoryListener(catLis); } /** * Getter for Model * * @return */ public Model getModel() { return MODEL; } }