CpsAPI.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package api;
  2. import java.awt.Color;
  3. import java.util.ArrayList;
  4. import classes.CpsEdge;
  5. import classes.AbstractCpsObject;
  6. import classes.HolonObject;
  7. import classes.HolonSwitch;
  8. import classes.SubNet;
  9. import ui.controller.Control;
  10. import ui.controller.SimulationManager;
  11. /**
  12. * Api Class for the Cps Controller.
  13. *
  14. * @author Gruppe14
  15. */
  16. public class CpsAPI {
  17. private Control controller;
  18. private SimulationManager simManager;
  19. /**
  20. * Constructor.
  21. *
  22. * @param cont
  23. * Controller
  24. */
  25. public CpsAPI(Control cont) {
  26. this.controller = cont;
  27. this.simManager = controller.getSimManager();
  28. }
  29. /**
  30. * a SubNet contains all Components.
  31. *
  32. * @return all SubNets on Canvas
  33. */
  34. public ArrayList<SubNet> getSubNets() {
  35. simManager.searchForSubNets();
  36. return simManager.getSubNets();
  37. }
  38. /**
  39. * Return all Objects on the Canvas in no Specific order.
  40. *
  41. * @return all Objects on Canvas in no specific order
  42. */
  43. public ArrayList<AbstractCpsObject> getAllObjOnCanvas() {
  44. return controller.getModel().getObjectsOnCanvas();
  45. }
  46. /**
  47. * Reutn all Edges on the Canvas in no specific order.
  48. *
  49. * @return all Edges on Canvas
  50. */
  51. public ArrayList<CpsEdge> getAllEdges() {
  52. ArrayList<CpsEdge> result = new ArrayList<CpsEdge>();
  53. for (SubNet sN : getSubNets()) {
  54. result.addAll(sN.getEdges());
  55. }
  56. return result;
  57. }
  58. /**
  59. * Return all Swtiches on the Canvas in no specific order.
  60. *
  61. * @return all Switches on Canvas.
  62. */
  63. public ArrayList<HolonSwitch> getAllSwitches() {
  64. ArrayList<HolonSwitch> result = new ArrayList<HolonSwitch>();
  65. for (SubNet sN : getSubNets()) {
  66. result.addAll(sN.getSwitches());
  67. }
  68. return result;
  69. }
  70. /**
  71. * Return all Holon Objects on the Canvas in no specific order.
  72. *
  73. * @return all Holon Objects
  74. */
  75. public ArrayList<HolonObject> getAllHolonObjects() {
  76. ArrayList<HolonObject> result = new ArrayList<HolonObject>();
  77. for (SubNet sN : getSubNets()) {
  78. result.addAll(sN.getObjects());
  79. }
  80. return result;
  81. }
  82. /**
  83. * prints a given text on the console.
  84. *
  85. * @param text
  86. * Text
  87. */
  88. public void consolePrint(String text) {
  89. controller.addTextToConsole(text);
  90. }
  91. /**
  92. * prints a given text on the console with more details.
  93. *
  94. * @param text
  95. * the text that will be printed
  96. * @param color
  97. * the color the text will have
  98. * @param p
  99. * font size
  100. * @param bold
  101. * true or false
  102. * @param italic
  103. * true or false
  104. * @param nl
  105. * new line after text
  106. */
  107. public void consolePrint(String text, Color color, int p, boolean bold, boolean italic, boolean nl) {
  108. controller.addTextToConsole(text, color, p, bold, italic, nl);
  109. }
  110. /**
  111. * changes the border color of given object to given color.
  112. *
  113. * @param toChange
  114. * CpsObject
  115. * @param color
  116. * Color
  117. */
  118. public void setBorderColorForObj(AbstractCpsObject toChange, Color color) {
  119. toChange.setBorderColor(color);
  120. }
  121. /**
  122. * changes the borderColor for all objects in List to given color.
  123. *
  124. * @param objects
  125. * AttayList of CpsObject
  126. * @param color
  127. * Color
  128. */
  129. public void setBorderColorForMultObj(ArrayList<AbstractCpsObject> objects, Color color) {
  130. for (AbstractCpsObject cps : objects) {
  131. setBorderColorForObj(cps, color);
  132. }
  133. }
  134. /**
  135. * resets the bordercolor of given object to default (white).
  136. *
  137. * @param toReset
  138. * CpsObject
  139. */
  140. public void resetBorderColor(AbstractCpsObject toReset) {
  141. toReset.setBorderColor(Color.WHITE);
  142. }
  143. /**
  144. * resets the bordercolor for all objects on canvas.
  145. */
  146. public void resetBorderColorForAll() {
  147. setBorderColorForMultObj(getAllObjOnCanvas(), Color.WHITE);
  148. }
  149. }