package ui.controller; import java.util.ArrayList; import classes.Category; import classes.CpsObject; import classes.HolonElement; import classes.HolonObject; import ui.model.Model; public class ObjectController { private Model MODEL; private SearchController sC; public ObjectController(Model model, SearchController sC) { this.MODEL = model; this.sC = sC; initHolonElements(); } /** * init default Power supply of the Power Plant */ public void initHolonElements() { addNewElementIntoCategoryObject("Energy", "Power Plant", "Power", 1, 100); addNewElementIntoCategoryObject("Energy", "Power Plant", "Zero", 10, 100); addNewElementIntoCategoryObject("Energy", "Power Plant", "Rehab", 10, 100); addNewElementIntoCategoryObject("Energy", "Power Plant", "The Doctor", 40, 100); addNewElementIntoCategoryObject("Energy", "Power Plant", "Original", 1, 100); } /** * Adds Element into a Object */ public void addElement(HolonObject object, HolonElement element) { 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("Canvas"); element.setObj(object.getObjName()); 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 eleName, int amount, float energy) { addElementIntoCanvasObject((HolonObject) sC.searchByID(id), new HolonElement(eleName, amount, energy)); } /** * Add Element into a Object in Category * * @param object * @param element * @param type */ public void addElementIntoCategoryObject(String category, String object, HolonElement element) { Category cat = null; for (Category cats : MODEL.getCategories()) { if (cats.getName().equals(category)) { cat = cats; break; } } element.setSav(cat.getName()); element.setObj(object); addElement(sC.searchHolonObject(object, cat.getObjects()), element); } /** * Add a new Element into a Object in Category * * @param category * @param object * @param eleName * @param amount * @param energy * @param type */ public void addNewElementIntoCategoryObject(String category, String object, String eleName, int amount, float energy) { addElementIntoCategoryObject(category, object, new HolonElement(eleName, amount, energy)); } /** * deletes a Element from a given Object * * @param obj * @param ele */ public void deleteElement(HolonObject obj, HolonElement ele) { obj.getElements().remove(ele); } /** * deletes a Element from a given Canvas Object * * @param ID * @param ele * @param amount */ public void deleteElementInCanvas(int ID, String ele) { HolonObject object = (HolonObject) sC.searchByID(ID); HolonElement element = sC.searchHolonElement(object, ele); 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, int amount) { Category category = searchCategory(cat); HolonObject object = sC.searchHolonObject(obj, category.getObjects()); HolonElement element = sC.searchHolonElement(object, ele); deleteElement(object, element); } /** * search for Category * @param category * @return */ public Category searchCategory(String category) { for (Category cats : MODEL.getCategories()) { if (cats.getName().equals(category)) return cats; } return null; } /** * Returns the ID of the selected Object 0 = no Object is selected * * @return ID */ public void setSelectedObjectID(int id) { MODEL.setSelectedObjectID(id); } }