ObjectController.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. package ui.controller;
  2. import java.util.ArrayList;
  3. import classes.Category;
  4. import classes.CpsObject;
  5. import classes.HolonElement;
  6. import classes.HolonObject;
  7. import ui.model.Model;
  8. public class ObjectController {
  9. private Model MODEL;
  10. private SearchController sC;
  11. public ObjectController(Model model, SearchController sC) {
  12. this.MODEL = model;
  13. this.sC = sC;
  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, 100);
  21. addNewElementIntoCategoryObject("Energy", "Power Plant", "Zero", 10, 100);
  22. addNewElementIntoCategoryObject("Energy", "Power Plant", "Rehab", 10, 100);
  23. addNewElementIntoCategoryObject("Energy", "Power Plant", "The Doctor", 40, 100);
  24. addNewElementIntoCategoryObject("Energy", "Power Plant", "Original", 1, 100);
  25. }
  26. /**
  27. * Adds Element into a Object
  28. */
  29. public void addElement(HolonObject object, HolonElement element) {
  30. object.getElements().add(element);
  31. }
  32. /**
  33. * Adds Element into a Object on the Canvas
  34. *
  35. * @param object
  36. * @param element
  37. * @param type
  38. */
  39. public void addElementIntoCanvasObject(HolonObject object, HolonElement element) {
  40. element.setSav("Canvas");
  41. element.setObj(object.getObjName());
  42. addElement(object, 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(int id, String eleName, int amount, float energy) {
  54. addElementIntoCanvasObject((HolonObject) sC.searchByID(id), new HolonElement(eleName, amount, energy));
  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. element.setSav(cat.getName());
  72. element.setObj(object);
  73. addElement(sC.searchHolonObject(object, cat.getObjects()), element);
  74. }
  75. /**
  76. * Add a new Element into a Object in Category
  77. *
  78. * @param category
  79. * @param object
  80. * @param eleName
  81. * @param amount
  82. * @param energy
  83. * @param type
  84. */
  85. public void addNewElementIntoCategoryObject(String category, String object, String eleName, int amount,
  86. float energy) {
  87. addElementIntoCategoryObject(category, object, new HolonElement(eleName, amount, energy));
  88. }
  89. /**
  90. * deletes a Element from a given Object
  91. *
  92. * @param obj
  93. * @param ele
  94. */
  95. public void deleteElement(HolonObject obj, HolonElement ele) {
  96. obj.getElements().remove(ele);
  97. }
  98. /**
  99. * deletes a Element from a given Canvas Object
  100. *
  101. * @param ID
  102. * @param ele
  103. * @param amount
  104. */
  105. public void deleteElementInCanvas(int ID, String ele) {
  106. HolonObject object = (HolonObject) sC.searchByID(ID);
  107. HolonElement element = sC.searchHolonElement(object, ele);
  108. deleteElement(object, element);
  109. }
  110. /**
  111. * deletes a Element from a given Category Object
  112. *
  113. * @param cat
  114. * @param obj
  115. * @param ele
  116. * @param amount
  117. */
  118. public void deleteElementInCategory(String cat, String obj, String ele, int amount) {
  119. Category category = searchCategory(cat);
  120. HolonObject object = sC.searchHolonObject(obj, category.getObjects());
  121. HolonElement element = sC.searchHolonElement(object, ele);
  122. deleteElement(object, element);
  123. }
  124. /**
  125. * search for Category
  126. * @param category
  127. * @return
  128. */
  129. public Category searchCategory(String category) {
  130. for (Category cats : MODEL.getCategories()) {
  131. if (cats.getName().equals(category))
  132. return cats;
  133. }
  134. return null;
  135. }
  136. /**
  137. * Returns the ID of the selected Object 0 = no Object is selected
  138. *
  139. * @return ID
  140. */
  141. public void setSelectedObjectID(int id) {
  142. MODEL.setSelectedObjectID(id);
  143. }
  144. }