Model.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. package ui.model;
  2. import Interfaces.CategoryListener;
  3. import Interfaces.ObjectListener;
  4. import java.util.ArrayList;
  5. import java.util.LinkedList;
  6. import java.util.List;
  7. import classes.Category;
  8. import classes.CpsEdge;
  9. import classes.CpsObject;
  10. import classes.HolonElement;
  11. import ui.controller.*;
  12. public class Model {
  13. // Global Variables
  14. private static int SCALE = 50; // Picture Scale
  15. private static int SCALE_DIV2 = SCALE / 2;
  16. private static final int ITERATIONS = 50;
  17. private int CUR_ITERATION = 0;
  18. // ID of the Selected Object
  19. private CpsObject selectedCpsObject;
  20. private HolonElement selectedHolonElement;
  21. private CpsEdge selectedEdge;
  22. private int selectedID = 0;
  23. // eventuell wenn Canvasgröße gewählt werden kann
  24. private int HEIGHT;
  25. private int WIDTH;
  26. /*
  27. * Array of all categories in the model. It is set by default with the
  28. * categories ENERGY, BUILDINGS and COMPONENTS
  29. */
  30. private ArrayList<Category> categories;
  31. /*
  32. * Array of all CpsObjects in our canvas. It is set by default as an empty
  33. * list.
  34. */
  35. private ArrayList<CpsObject> objectsOnCanvas;
  36. /*
  37. * Array of all CpsObjects in our canvas. It is set by default as an empty
  38. * list.
  39. */
  40. private ArrayList<CpsEdge> edgesOnCanvas;
  41. /*
  42. * Array for all Listeners
  43. */
  44. private List<CategoryListener> categoryListeners;
  45. private List<ObjectListener> objectListeners;
  46. /*
  47. * Constructor for the model. It initializes the categories and
  48. * objectsOnCanvas by default values. Listeners are also initialized by
  49. * default values.
  50. */
  51. public Model() {
  52. setCategories(new ArrayList<Category>());
  53. setObjectsOnCanvas(new ArrayList<CpsObject>());
  54. setEdgesOnCanvas(new ArrayList<CpsEdge>());
  55. setCategoryListeners(new LinkedList<CategoryListener>());
  56. setObjectListeners(new LinkedList<ObjectListener>());
  57. }
  58. /**
  59. * @return the categories
  60. */
  61. public ArrayList<Category> getCategories() {
  62. return categories;
  63. }
  64. /**
  65. * @param categories
  66. * the categories to set
  67. */
  68. public void setCategories(ArrayList<Category> categories) {
  69. this.categories = categories;
  70. }
  71. /**
  72. * Transform the Arraylist of categories into a string of all objectName
  73. * with a separation (',') between each name
  74. *
  75. * @return String of all names separeted by ','
  76. */
  77. public String toStringCat() {
  78. String text = "";
  79. for (int i = 0; i < categories.size(); i++) {
  80. if (text == "") {
  81. text = categories.get(i).getName();
  82. } else {
  83. text = text + ", " + categories.get(i).getName();
  84. }
  85. }
  86. return text;
  87. }
  88. /**
  89. * @return the objectsOnCanvas
  90. */
  91. public ArrayList<CpsObject> getObjectsOnCanvas() {
  92. return objectsOnCanvas;
  93. }
  94. /**
  95. * @param objectsOnCanvas
  96. * the objectsOnCanvas to set
  97. */
  98. public void setObjectsOnCanvas(ArrayList<CpsObject> objectsOnCanvas) {
  99. this.objectsOnCanvas = objectsOnCanvas;
  100. }
  101. /**
  102. * @return the objectsOnCanvas
  103. */
  104. public ArrayList<CpsEdge> getEdgesOnCanvas() {
  105. return edgesOnCanvas;
  106. }
  107. /**
  108. * @param objectsOnCanvas
  109. * the objectsOnCanvas to set
  110. */
  111. public void addEdgeOnCanvas(CpsEdge edge) {
  112. this.edgesOnCanvas.add(edge);
  113. }
  114. /**
  115. * @param edgesOnCanvas
  116. * the edge to remove
  117. */
  118. public void removeEdgesOnCanvas(CpsEdge edge) {
  119. this.edgesOnCanvas.remove(edge);
  120. }
  121. /**
  122. * @param EdgesOnCanvas
  123. * the edgesOnCanvas to set
  124. */
  125. public void setEdgesOnCanvas(ArrayList<CpsEdge> arrayList) {
  126. this.edgesOnCanvas = arrayList;
  127. }
  128. /**
  129. * @return the objectListeners
  130. */
  131. public List<ObjectListener> getObjectListeners() {
  132. return objectListeners;
  133. }
  134. /**
  135. * @param linkedList
  136. * the objectListeners to set
  137. */
  138. public void setObjectListeners(LinkedList<ObjectListener> linkedList) {
  139. this.objectListeners = linkedList;
  140. }
  141. /**
  142. * @return the categoryListeners
  143. */
  144. public List<CategoryListener> getCategoryListeners() {
  145. return categoryListeners;
  146. }
  147. /**
  148. * @param linkedList
  149. * the categoryListeners to set
  150. */
  151. public void setCategoryListeners(LinkedList<CategoryListener> linkedList) {
  152. this.categoryListeners = linkedList;
  153. }
  154. /**
  155. * Set the ID of the selected Object 0 = no Object is selected
  156. *
  157. * @param ID
  158. *
  159. */
  160. public void setSelectedObjectID(int id) {
  161. this.selectedID = id;
  162. }
  163. /**
  164. * Returns the ID of the selected Object 0 = no Object is selected
  165. *
  166. * @return ID
  167. */
  168. public int getSelectedObjectID() {
  169. return selectedID;
  170. }
  171. public CpsObject getSelectedCpsObject() {
  172. return selectedCpsObject;
  173. }
  174. public void setSelectedCpsObject(CpsObject selectedCpsObject) {
  175. this.selectedCpsObject = selectedCpsObject;
  176. }
  177. public HolonElement getSelectedHolonElement() {
  178. return selectedHolonElement;
  179. }
  180. public void setSelectedHolonElement(HolonElement selectedHolonElement) {
  181. this.selectedHolonElement = selectedHolonElement;
  182. }
  183. /**
  184. * Returns SCALE
  185. *
  186. * @return SCALE
  187. */
  188. public int getScale() {
  189. return SCALE;
  190. }
  191. /**
  192. * Returns SCALE_DIV2
  193. *
  194. * @return SCALE_DIV2
  195. */
  196. public int getScaleDiv2() {
  197. return SCALE_DIV2;
  198. }
  199. public void setScale(int scale) {
  200. SCALE = scale;
  201. SCALE_DIV2 = SCALE / 2;
  202. }
  203. /**
  204. * Returns ITERATIONS
  205. *
  206. * @return ITERATIONS
  207. */
  208. public int getIterations() {
  209. return ITERATIONS;
  210. }
  211. /**
  212. * sets the current Iteration
  213. *
  214. * @param cur_it, the current Iteration
  215. */
  216. public void setCurIteration(int cur_it) {
  217. this.CUR_ITERATION = cur_it;
  218. }
  219. /**
  220. * Returns CUR_ITERATIONS
  221. *
  222. * @return CUR_ITERATIONS
  223. */
  224. public int getCurIteration() {
  225. return CUR_ITERATION;
  226. }
  227. /**
  228. * Set the selected Edge
  229. *
  230. * @param edge
  231. *
  232. */
  233. public void setSelectedEdge(CpsEdge edge) {
  234. this.selectedEdge = edge;
  235. }
  236. /**
  237. * Returns the selected Edge
  238. *
  239. * @return selectedEdge
  240. */
  241. public CpsEdge getSelectedEdge(){
  242. return selectedEdge;
  243. }
  244. }