ObjectController.java 4.8 KB

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