ObjectController.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. package ui.controller;
  2. import java.util.ArrayList;
  3. import classes.Category;
  4. import classes.AbstractCpsObject;
  5. import classes.HolonElement;
  6. import classes.HolonObject;
  7. import ui.model.Model;
  8. /**
  9. * Controller for Objects.
  10. *
  11. * @author Gruppe14
  12. */
  13. public class ObjectController {
  14. private Model model;
  15. private MultiPurposeController mpC;
  16. /**
  17. * Constructor.
  18. *
  19. * @param model
  20. * Model
  21. * @param mp
  22. * MultiPurposeController
  23. */
  24. public ObjectController(Model model, MultiPurposeController mp) {
  25. this.model = model;
  26. this.mpC = mp;
  27. initHolonElements();
  28. }
  29. /**
  30. * init default Power supply of the Power Plant.
  31. */
  32. public void initHolonElements() {
  33. addNewElementIntoCategoryObject("Energy", "Power Plant", "Power", 1, 10000);
  34. addNewElementIntoCategoryObject("Building", "House", "TV", 2, -250);
  35. addNewElementIntoCategoryObject("Building", "House", "Fridge", 1, -500);
  36. addNewElementIntoCategoryObject("Building", "House", "Radio", 1, -100);
  37. addNewElementIntoCategoryObject("Building", "House", "PC", 3, -250);
  38. addNewElementIntoCategoryObject("Building", "House", "Light", 5, -50);
  39. addNewElementIntoCategoryObject("Building", "House", "Solar Panels", 1, 300);
  40. }
  41. /**
  42. * Adds Element into a Object.
  43. *
  44. * @param object
  45. * the Object
  46. * @param element
  47. * the Element
  48. */
  49. public void addElement(HolonObject object, HolonElement element) {
  50. object.getEleIdx().put(element.getEleName(), object.getElements().size());
  51. object.getElements().add(element);
  52. }
  53. /**
  54. * Adds Element into a Object on the Canvas.
  55. *
  56. * @param object
  57. * the Object
  58. * @param element
  59. * the Element
  60. */
  61. public void addElementIntoCanvasObject(HolonObject object, HolonElement element) {
  62. element.setSav("CVS");
  63. element.setObj(Integer.toString(object.getID()));
  64. addElement(object, element);
  65. }
  66. /**
  67. * Add a new Element into a Object on the Canvas.
  68. *
  69. * @param id
  70. * the Object ID
  71. * @param element
  72. * the Name of the Element
  73. * @param amount
  74. * the Amount
  75. * @param energy
  76. * the Energy
  77. */
  78. public void addNewElementIntoCanvasObject(int id, String element, int amount, float energy) {
  79. HolonElement ele = new HolonElement(element, amount, energy);
  80. if ((HolonObject) mpC.searchByID(id) == null) {
  81. addElementIntoCanvasObject((HolonObject) model.getSelectedCpsObjects().get(0), ele);
  82. } else {
  83. addElementIntoCanvasObject((HolonObject) mpC.searchByID(id), ele);
  84. }
  85. }
  86. /**
  87. * Add Element into a Object in Category.
  88. *
  89. * @param category
  90. * the Category
  91. *
  92. * @param object
  93. * the Object
  94. * @param element
  95. * the Element
  96. */
  97. public void addElementIntoCategoryObject(String category, String object, HolonElement element) {
  98. element.setSav(category);
  99. element.setObj(object);
  100. addElement((HolonObject) mpC.searchCatObj(mpC.searchCat(category), object), element);
  101. }
  102. /**
  103. * Add a new Element into a Object in Category.
  104. *
  105. * @param category
  106. * the Category
  107. * @param object
  108. * the Object
  109. * @param element
  110. * the Element Name
  111. * @param energy
  112. * the Energy
  113. * @param amount
  114. * the amount
  115. */
  116. public void addNewElementIntoCategoryObject(String category, String object, String element, int amount,
  117. float energy) {
  118. HolonElement ele = new HolonElement(element, amount, energy);
  119. addElementIntoCategoryObject(category, object, ele);
  120. }
  121. /**
  122. * deletes a Element from a given Object.
  123. *
  124. * @param obj
  125. * the Oject
  126. * @param ele
  127. * the Element
  128. */
  129. public void deleteElement(HolonObject obj, HolonElement ele) {
  130. System.out.println(ele.getEleName() + " and " + obj.getEleIdx());
  131. mpC.decIdx(ele.getEleName(), obj.getEleIdx());
  132. obj.getEleIdx().remove(ele.getEleName());
  133. obj.getElements().remove(ele);
  134. }
  135. /**
  136. * deletes a selectedObject.
  137. *
  138. * @param obj
  139. * Cpsobject
  140. */
  141. public void deleteSelectedObject(AbstractCpsObject obj) {
  142. model.getSelectedCpsObjects().remove(obj);
  143. }
  144. /**
  145. * add an Object to selectedObject.
  146. *
  147. * @param obj
  148. * AbstractCpsobject
  149. */
  150. public void addSelectedObject(AbstractCpsObject obj) {
  151. model.getSelectedCpsObjects().add(obj);
  152. }
  153. /**
  154. * deletes a Element from a given Canvas Object.
  155. *
  156. * @param id
  157. * the ID
  158. * @param eleid
  159. * the Element ID
  160. */
  161. public void deleteElementInCanvas(int id, int eleid) {
  162. HolonObject object = (HolonObject) mpC.searchByID(id);
  163. if (object == null) {
  164. object = (HolonObject) model.getSelectedCpsObjects().get(0);
  165. }
  166. HolonElement element = mpC.searchEleById(object, eleid);
  167. // mpC.searchEle(object, ele);
  168. deleteElement(object, element);
  169. }
  170. /**
  171. * deletes a Element from a given Category Object.
  172. *
  173. * @param cat
  174. * the Category
  175. * @param obj
  176. * the Object
  177. * @param ele
  178. * the Element
  179. */
  180. public void deleteElementInCategory(String cat, String obj, String ele) {
  181. Category category = mpC.searchCat(cat);
  182. HolonObject object = (HolonObject) mpC.searchCatObj(category, obj);
  183. HolonElement element = mpC.searchEle(object, ele);
  184. deleteElement(object, element);
  185. }
  186. /**
  187. * Returns the ID of the selected Object 0 = no Object is selected.
  188. *
  189. * @param id
  190. * the ID of the selected Object
  191. */
  192. public void setSelectedObjectID(int id) {
  193. model.setSelectedObjectID(id);
  194. }
  195. /**
  196. * sets clipBoardObjects.
  197. *
  198. * @param list
  199. * of CpsObjects
  200. */
  201. public void setClipboardObjects(ArrayList<AbstractCpsObject> list) {
  202. model.setClipboradObjects(list);
  203. }
  204. }