ObjectController.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package ui.controller;
  2. import classes.Category;
  3. import classes.CpsObject;
  4. import classes.HolonElement;
  5. import classes.HolonObject;
  6. import ui.model.Model;
  7. import java.util.ArrayList;
  8. import Interfaces.ObjectListener;
  9. public class ObjectController {
  10. public enum Type {
  11. CONSUMER, PRODUCER
  12. }
  13. private Model MODEL;
  14. public ObjectController(Model model) {
  15. this.MODEL = model;
  16. initHolonElements();
  17. }
  18. /**
  19. * init default Power supply of the Power Plant
  20. */
  21. public void initHolonElements() {
  22. addNewElementIntoCategoryObject("Energy", "Power Plant", "Power", 1, 100);
  23. addNewElementIntoCategoryObject("Energy", "Power Plant", "Zero", 10, 100);
  24. addNewElementIntoCategoryObject("Energy", "Power Plant", "Rehab", 10, 100);
  25. addNewElementIntoCategoryObject("Energy", "Power Plant", "The Doctor", 40, 100);
  26. addNewElementIntoCategoryObject("Energy", "Power Plant", "Original", 1, 100);
  27. }
  28. /**
  29. * Adds Element into a Object
  30. */
  31. public void addElement(HolonObject object, HolonElement element) {
  32. object.getElements().add(element);
  33. }
  34. /**
  35. * Adds Element into a Object on the Canvas
  36. *
  37. * @param object
  38. * @param element
  39. * @param type
  40. */
  41. public void addElementIntoCanvasObject(String object, HolonElement element) {
  42. addElement(searchHolonObject(object, MODEL.getObjectsOnCanvas()), element);
  43. }
  44. /**
  45. * Add a new Element into a Object on the Canvas
  46. *
  47. * @param object
  48. * @param eleName
  49. * @param amount
  50. * @param energy
  51. * @param type
  52. */
  53. public void addNewElementIntoCanvasObject(String object, String eleName, int amount, float energy) {
  54. addElementIntoCanvasObject(object, new HolonElement(eleName, energy, amount));
  55. }
  56. /**
  57. * Add Element into a Object in Category
  58. *
  59. * @param object
  60. * @param element
  61. * @param type
  62. */
  63. public void addElementIntoCategoryObject(String category, String object, HolonElement element) {
  64. Category cat = null;
  65. for (Category cats : MODEL.getCategories()) {
  66. if (cats.getName().equals(category)) {
  67. cat = cats;
  68. break;
  69. }
  70. }
  71. addElement(searchHolonObject(object, cat.getObjects()), element);
  72. }
  73. /**
  74. * Add a new Element into a Object in Category
  75. *
  76. * @param category
  77. * @param object
  78. * @param eleName
  79. * @param amount
  80. * @param energy
  81. * @param type
  82. */
  83. public void addNewElementIntoCategoryObject(String category, String object, String eleName, int amount,
  84. float energy) {
  85. addElementIntoCategoryObject(category, object, new HolonElement(eleName, energy, amount));
  86. }
  87. /**
  88. * deletes a Element from a given Object
  89. *
  90. * @param obj
  91. * @param ele
  92. */
  93. public void deleteElement(HolonObject obj, HolonElement ele) {
  94. obj.getElements().remove(ele);
  95. }
  96. /**
  97. * deletes a Element from a given Canvas Object
  98. * @param ID
  99. * @param ele
  100. * @param amount
  101. */
  102. public void deleteElementInCanvas(int ID, String ele, int amount) {
  103. HolonObject object = searchByID(ID, MODEL.getObjectsOnCanvas());
  104. HolonElement element = searchHolonElement(object, ele);
  105. element.setAmount(element.getAmount() - amount);
  106. if (element.getAmount() <= 0)
  107. deleteElement(object, element);
  108. }
  109. /**
  110. * Search for Object
  111. *
  112. * @param object
  113. * @param list
  114. * @return
  115. */
  116. public HolonObject searchHolonObject(String object, ArrayList<CpsObject> list) {
  117. for (CpsObject objects : list) {
  118. if (objects.getObjName().equals(object))
  119. return (HolonObject) objects;
  120. }
  121. return null;
  122. }
  123. /**
  124. * Search for Object by ID
  125. * @param ID
  126. * @param list
  127. * @return
  128. */
  129. public HolonObject searchByID(int ID, ArrayList<CpsObject> list){
  130. for (CpsObject objects : list) {
  131. if(objects.getID() == ID)
  132. return (HolonObject) objects;
  133. }
  134. return null;
  135. }
  136. /**
  137. * Search for Element
  138. * @param object
  139. * @param element
  140. * @return
  141. */
  142. public HolonElement searchHolonElement(HolonObject object, String element) {
  143. for (HolonElement elements : object.getElements()) {
  144. if (elements.getEleName().equals(element))
  145. return elements;
  146. }
  147. return null;
  148. }
  149. /**
  150. * Returns the ID of the selected Object 0 = no Object is selected
  151. *
  152. * @return ID
  153. */
  154. public void setSelectedObjectID(int id) {
  155. MODEL.setSelectedObjectID(id);
  156. }
  157. }