ObjectController.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  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 object
  51. * @param eleName
  52. * @param amount
  53. * @param energy
  54. * @param type
  55. */
  56. public void addNewElementIntoCanvasObject(int id, String element, int amount, float energy) {
  57. HolonElement ele = new HolonElement(element, amount, energy);
  58. addElementIntoCanvasObject((HolonObject) mpC.searchByID(id), ele);
  59. }
  60. /**
  61. * Add Element into a Object in Category
  62. *
  63. * @param object
  64. * @param element
  65. */
  66. public void addElementIntoCategoryObject(String category, String object, HolonElement element) {
  67. element.setSav(category);
  68. element.setObj(object);
  69. addElement((HolonObject) mpC.searchCatObj(mpC.searchCat(category), object), element);
  70. }
  71. /**
  72. * Add a new Element into a Object in Category
  73. *
  74. * @param category
  75. * @param object
  76. * @param eleName
  77. * @param amount
  78. * @param energy
  79. */
  80. public void addNewElementIntoCategoryObject(String category, String object, String element, int amount,
  81. float energy) {
  82. HolonElement ele = new HolonElement(element, amount, energy);
  83. addElementIntoCategoryObject(category, object, ele);
  84. }
  85. /**
  86. * deletes a Element from a given Object
  87. *
  88. * @param obj
  89. * @param ele
  90. */
  91. public void deleteElement(HolonObject obj, HolonElement ele) {
  92. System.out.println(ele.getEleName() + " and " + obj.getEleIdx());
  93. mpC.decIdx(ele.getEleName(), obj.getEleIdx());
  94. obj.getEleIdx().remove(ele.getEleName());
  95. obj.getElements().remove(ele);
  96. }
  97. /**
  98. * deletes a selectedObject
  99. *
  100. * @param Cpsobject
  101. */
  102. public void deleteSelectedObject(AbstractCpsObject obj) {
  103. MODEL.getSelectedCpsObjects().remove(obj);
  104. }
  105. /**
  106. * s a selectedObject
  107. *
  108. * @param Cpsobject
  109. */
  110. public void addSelectedObject(AbstractCpsObject obj) {
  111. MODEL.getSelectedCpsObjects().add(obj);
  112. }
  113. /**
  114. * deletes a Element from a given Canvas Object
  115. *
  116. * @param ID
  117. * @param ele
  118. * @param amount
  119. */
  120. public void deleteElementInCanvas(int ID, int eleId) {
  121. HolonObject object = (HolonObject) mpC.searchByID(ID);
  122. HolonElement element = mpC.searchEleById(object, eleId);
  123. // mpC.searchEle(object, ele);
  124. System.out.println(object.getName() + " and " + element.getEleName());
  125. deleteElement(object, element);
  126. }
  127. /**
  128. * deletes a Element from a given Category Object
  129. *
  130. * @param cat
  131. * @param obj
  132. * @param ele
  133. * @param amount
  134. */
  135. public void deleteElementInCategory(String cat, String obj, String ele) {
  136. Category category = mpC.searchCat(cat);
  137. HolonObject object = (HolonObject) mpC.searchCatObj(category, obj);
  138. HolonElement element = mpC.searchEle(object, ele);
  139. deleteElement(object, element);
  140. }
  141. /**
  142. * Returns the ID of the selected Object 0 = no Object is selected
  143. *
  144. * @return ID
  145. */
  146. public void setSelectedObjectID(int id) {
  147. MODEL.setSelectedObjectID(id);
  148. }
  149. /**
  150. * sets clipBoardObjects
  151. *
  152. * @param ArrayList
  153. * of CpsObjects
  154. */
  155. public void setClipboardObjects(ArrayList<AbstractCpsObject> list) {
  156. MODEL.setClipboradObjects(list);
  157. }
  158. }