package ui.controller; import java.util.ArrayList; import classes.Category; import classes.AbstractCpsObject; import classes.HolonElement; import classes.HolonObject; import ui.model.Model; public class ObjectController { private Model MODEL; private MultiPurposeController mpC; public ObjectController(Model model, MultiPurposeController mp) { this.MODEL = model; this.mpC = mp; initHolonElements(); } /** * init default Power supply of the Power Plant */ public void initHolonElements() { addNewElementIntoCategoryObject("Energy", "Power Plant", "Power", 1, 10000); addNewElementIntoCategoryObject("Building", "House", "TV", 2, -250); addNewElementIntoCategoryObject("Building", "House", "Fridge", 1, -500); addNewElementIntoCategoryObject("Building", "House", "Radio", 1, -100); addNewElementIntoCategoryObject("Building", "House", "PC", 3, -250); addNewElementIntoCategoryObject("Building", "House", "Light", 5, -50); addNewElementIntoCategoryObject("Building", "House", "Solar Panels", 1, 300); } /** * Adds Element into a Object */ public void addElement(HolonObject object, HolonElement element) { object.getEleIdx().put(element.getEleName(), object.getElements().size()); object.getElements().add(element); } /** * Adds Element into a Object on the Canvas * * @param object * @param element * @param type */ public void addElementIntoCanvasObject(HolonObject object, HolonElement element) { element.setSav("CVS"); element.setObj(Integer.toString(object.getID())); addElement(object, element); } /** * Add a new Element into a Object on the Canvas * * @param object * @param eleName * @param amount * @param energy * @param type */ public void addNewElementIntoCanvasObject(int id, String element, int amount, float energy) { HolonElement ele = new HolonElement(element, amount, energy); addElementIntoCanvasObject((HolonObject) mpC.searchByID(id), ele); } /** * Add Element into a Object in Category * * @param object * @param element */ public void addElementIntoCategoryObject(String category, String object, HolonElement element) { element.setSav(category); element.setObj(object); addElement((HolonObject) mpC.searchCatObj(mpC.searchCat(category), object), element); } /** * Add a new Element into a Object in Category * * @param category * @param object * @param eleName * @param amount * @param energy */ public void addNewElementIntoCategoryObject(String category, String object, String element, int amount, float energy) { HolonElement ele = new HolonElement(element, amount, energy); addElementIntoCategoryObject(category, object, ele); } /** * deletes a Element from a given Object * * @param obj * @param ele */ public void deleteElement(HolonObject obj, HolonElement ele) { System.out.println(ele.getEleName() + " and " + obj.getEleIdx()); mpC.decIdx(ele.getEleName(), obj.getEleIdx()); obj.getEleIdx().remove(ele.getEleName()); obj.getElements().remove(ele); } /** * deletes a selectedObject * * @param Cpsobject */ public void deleteSelectedObject(AbstractCpsObject obj) { MODEL.getSelectedCpsObjects().remove(obj); } /** * s a selectedObject * * @param Cpsobject */ public void addSelectedObject(AbstractCpsObject obj) { MODEL.getSelectedCpsObjects().add(obj); } /** * deletes a Element from a given Canvas Object * * @param ID * @param ele * @param amount */ public void deleteElementInCanvas(int ID, int eleId) { HolonObject object = (HolonObject) mpC.searchByID(ID); HolonElement element = mpC.searchEleById(object, eleId); // mpC.searchEle(object, ele); System.out.println(object.getName() + " and " + element.getEleName()); deleteElement(object, element); } /** * deletes a Element from a given Category Object * * @param cat * @param obj * @param ele * @param amount */ public void deleteElementInCategory(String cat, String obj, String ele) { Category category = mpC.searchCat(cat); HolonObject object = (HolonObject) mpC.searchCatObj(category, obj); HolonElement element = mpC.searchEle(object, ele); deleteElement(object, element); } /** * Returns the ID of the selected Object 0 = no Object is selected * * @return ID */ public void setSelectedObjectID(int id) { MODEL.setSelectedObjectID(id); } /** * sets clipBoardObjects * * @param ArrayList * of CpsObjects */ public void setClipboardObjects(ArrayList list) { MODEL.setClipboradObjects(list); } }