123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- package ui.controller;
- import classes.Category;
- import classes.CpsObject;
- import classes.HolonElement;
- import classes.HolonObject;
- import ui.model.Model;
- import java.util.ArrayList;
- import Interfaces.ObjectListener;
- public class ObjectController {
- public enum Type {
- CONSUMER, PRODUCER
- }
- private Model MODEL;
- public ObjectController(Model model) {
- this.MODEL = model;
- 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(String object, HolonElement element) {
- addElement(searchHolonObject(object, MODEL.getObjectsOnCanvas()), element);
- }
- /**
- * Add a new Element into a Object on the Canvas
- *
- * @param object
- * @param eleName
- * @param amount
- * @param energy
- * @param type
- */
- public void addNewElementIntoCanvasObject(String object, String eleName, int amount, float energy) {
- addElementIntoCanvasObject(object, new HolonElement(eleName, energy, amount));
- }
- /**
- * 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;
- }
- }
- addElement(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, energy, amount));
- }
- /**
- * 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, int amount) {
- HolonObject object = searchByID(ID, MODEL.getObjectsOnCanvas());
- HolonElement element = searchHolonElement(object, ele);
- element.setAmount(element.getAmount() - amount);
- if (element.getAmount() <= 0)
- deleteElement(object, element);
- }
- /**
- * Search for Object
- *
- * @param object
- * @param list
- * @return
- */
- public HolonObject searchHolonObject(String object, ArrayList<CpsObject> list) {
- for (CpsObject objects : list) {
- if (objects.getObjName().equals(object))
- return (HolonObject) objects;
- }
- return null;
- }
-
- /**
- * Search for Object by ID
- * @param ID
- * @param list
- * @return
- */
- public HolonObject searchByID(int ID, ArrayList<CpsObject> list){
- for (CpsObject objects : list) {
- if(objects.getID() == ID)
- return (HolonObject) objects;
- }
- return null;
- }
- /**
- * Search for Element
- * @param object
- * @param element
- * @return
- */
- public HolonElement searchHolonElement(HolonObject object, String element) {
- for (HolonElement elements : object.getElements()) {
- if (elements.getEleName().equals(element))
- return elements;
- }
- return null;
- }
-
- /**
- * Returns the ID of the selected Object 0 = no Object is selected
- *
- * @return ID
- */
- public void setSelectedObjectID(int id) {
- MODEL.setSelectedObjectID(id);
- }
- }
|