CpsAPI.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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. public class CpsAPI {
  12. private Control controller;
  13. private SimulationManager simManager;
  14. public CpsAPI(Control cont){
  15. this.controller = cont;
  16. this.simManager = controller.getSimManager();
  17. }
  18. /**
  19. * a SubNet contains all Components
  20. * @return all SubNets on Canvas
  21. */
  22. public ArrayList<SubNet> getSubNets(){
  23. simManager.searchForSubNets();
  24. return simManager.getSubNets();
  25. }
  26. /**
  27. *
  28. * @return all Objects on Canvas in no specific order
  29. */
  30. public ArrayList<AbstractCpsObject> getAllObjOnCanvas(){
  31. return controller.getModel().getObjectsOnCanvas();
  32. }
  33. /**
  34. *
  35. * @return all Edges on Canvas
  36. */
  37. public ArrayList<CpsEdge> getAllEdges(){
  38. ArrayList<CpsEdge> result = new ArrayList<CpsEdge>();
  39. for(SubNet sN: getSubNets()){
  40. result.addAll(sN.getEdges());
  41. }
  42. return result;
  43. }
  44. /**
  45. *
  46. * @return all Switches on Canvas
  47. */
  48. public ArrayList<HolonSwitch> getAllSwitches(){
  49. ArrayList<HolonSwitch> result = new ArrayList<HolonSwitch>();
  50. for(SubNet sN: getSubNets()){
  51. result.addAll(sN.getSwitches());
  52. }
  53. return result;
  54. }
  55. public ArrayList<HolonObject> getAllHolonObjects(){
  56. ArrayList<HolonObject> result = new ArrayList<HolonObject>();
  57. for(SubNet sN: getSubNets()){
  58. result.addAll(sN.getObjects());
  59. }
  60. return result;
  61. }
  62. /**
  63. * prints a given text on the console
  64. * @param text
  65. */
  66. public void consolePrint(String text){
  67. controller.addTextToConsole(text);
  68. }
  69. /**
  70. * prints a given text on the console with more details
  71. * @param text: the text that will be printed
  72. * @param color: the color the text will have
  73. * @param p: font size
  74. * @param bold: true or false
  75. * @param italic: true or false
  76. * @param nl: new line after text
  77. */
  78. public void consolePrint(String text, Color color, int p, boolean bold, boolean italic, boolean nl){
  79. controller.addTextToConsole(text, color, p, bold, italic, nl);
  80. }
  81. /**
  82. * changes the bordercolor of given object to given color
  83. * @param toChange
  84. * @param color
  85. */
  86. public void setBorderColorForObj(AbstractCpsObject toChange, Color color){
  87. toChange.setBorderColor(color);
  88. }
  89. /**
  90. * changes the borderColor for all objects in List to given color
  91. * @param objects
  92. * @param color
  93. */
  94. public void setBorderColorForMultObj(ArrayList<AbstractCpsObject> objects, Color color){
  95. for(AbstractCpsObject cps: objects){
  96. setBorderColorForObj(cps, color);
  97. }
  98. }
  99. /**
  100. * resets the bordercolor of given object to default (white)
  101. * @param toReset
  102. */
  103. public void resetBorderColor(AbstractCpsObject toReset){
  104. toReset.setBorderColor(Color.WHITE);
  105. }
  106. /**
  107. * resets the bordercolor for all objects on canvas
  108. */
  109. public void resetBorderColorForAll(){
  110. setBorderColorForMultObj(getAllObjOnCanvas(), Color.WHITE);
  111. }
  112. }