ObjectControl.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package ui.controller;
  2. import classes.Category;
  3. import classes.CpsObject;
  4. import classes.HolonElement;
  5. import classes.HolonObject;
  6. import ui.model.IdCounter;
  7. import ui.model.Model;
  8. import java.util.ArrayList;
  9. import Interfaces.ObjectListener;
  10. public class ObjectControl {
  11. public enum Type {
  12. CONSUMER, PRODUCER
  13. }
  14. private Model M;
  15. private int ID;
  16. public ObjectControl(Model model) {
  17. this.M = model;
  18. this.ID = IdCounter.nextId();
  19. }
  20. /**
  21. * Add an CpsObject to the model and notify the ObjectListener for update.
  22. *
  23. * @param object
  24. * CpsObject to be added.
  25. */
  26. public void addObject(CpsObject object) {
  27. String name = object.getObjName();
  28. M.getObjectsOnCanvas().add(object);
  29. notifyObjListeners();
  30. System.out.println("Added: " + name);
  31. }
  32. /**
  33. * notifies all listeners about changes in the Categories
  34. */
  35. public void notifyObjListeners() {
  36. for (ObjectListener l : M.getObjectListeners()) {
  37. l.onChange(M.getObjectsOnCanvas());
  38. }
  39. }
  40. /**
  41. * Adds Element into a Object
  42. */
  43. public void addElement(HolonObject object, HolonElement element) {
  44. object.getElements().add(element);
  45. }
  46. /**
  47. * Adds Element into a Object on the Canvas
  48. *
  49. * @param object
  50. * @param element
  51. * @param type
  52. */
  53. public void addElementIntoCanvasObject(String object, HolonElement element) {
  54. addElement(searchHolonObject(object, M.getObjectsOnCanvas()), element);
  55. }
  56. /**
  57. * Add a new Element into a Object on the Canvas
  58. *
  59. * @param object
  60. * @param eleName
  61. * @param amount
  62. * @param energy
  63. * @param type
  64. */
  65. public void addNewElementIntoCanvasObject(String object, String eleName, int amount, float energy) {
  66. addElementIntoCanvasObject(object, new HolonElement(eleName, energy, amount));
  67. }
  68. /**
  69. * Add Element into a Object in Category
  70. *
  71. * @param object
  72. * @param element
  73. * @param type
  74. */
  75. public void addElementIntoCategoryObject(String category, String object, HolonElement element) {
  76. Category cat = null;
  77. for (Category cats : M.getCategories()) {
  78. if (cats.getName().equals(category)) {
  79. cat = cats;
  80. break;
  81. }
  82. }
  83. addElement(searchHolonObject(object, cat.getObjects()), element);
  84. }
  85. /**
  86. * Add a new Element into a Object in Category
  87. *
  88. * @param category
  89. * @param object
  90. * @param eleName
  91. * @param amount
  92. * @param energy
  93. * @param type
  94. */
  95. public void addNewElementIntoCategoryObject(String category, String object, String eleName, int amount,
  96. float energy) {
  97. addElementIntoCategoryObject(category, object, new HolonElement(eleName, energy, amount));
  98. }
  99. /**
  100. * Search for Object
  101. *
  102. * @param object
  103. * @param list
  104. * @return
  105. */
  106. public HolonObject searchHolonObject(String object, ArrayList<CpsObject> list) {
  107. HolonObject obj = null;
  108. for (CpsObject objects : list) {
  109. if (objects.getObjName().equals(object)) {
  110. obj = (HolonObject) objects;
  111. break;
  112. }
  113. }
  114. return obj;
  115. }
  116. /**
  117. * Returns the ID of the selected Object 0 = no Object is selected
  118. *
  119. * @return ID
  120. */
  121. public void setSelectedObjectID(int id) {
  122. M.setSelectedObjectID(id);
  123. }
  124. }