CanvasController.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package ui.controller;
  2. import Interfaces.CategoryListener;
  3. import Interfaces.ObjectListener;
  4. import classes.CpsEdge;
  5. import classes.CpsObject;
  6. import ui.model.Model;
  7. public class CanvasController {
  8. private Model MODEL;
  9. public CanvasController(Model model) {
  10. this.MODEL = model;
  11. }
  12. /**
  13. * Add an CpsObject to the model and notify the ObjectListener for update.
  14. *
  15. * @param object
  16. * CpsObject to be added.
  17. */
  18. public void addObjectIntoCanvas(CpsObject object) {
  19. String objName = object.getObjName();
  20. MODEL.getObjectsOnCanvas().add(object);
  21. notifyObjListeners();
  22. System.out.println("Added: " + objName);
  23. }
  24. public void addObjectListener(ObjectListener objLis) {
  25. MODEL.getObjectListeners().add(objLis);
  26. }
  27. /**
  28. * notifies all listeners about changes in the Canvas
  29. */
  30. public void notifyObjListeners() {
  31. for (ObjectListener l : MODEL.getObjectListeners()) {
  32. l.onChange(MODEL.getObjectsOnCanvas());
  33. }
  34. }
  35. /**
  36. * Deletes an CpsObject on the Canvas and its connections
  37. *
  38. * @param CpsObject
  39. */
  40. public void deleteObjectOnCanvas(CpsObject obj) {
  41. CpsEdge e = null;
  42. for (CpsObject cps : MODEL.getObjectsOnCanvas()) {
  43. for (CpsEdge p : cps.getConnections()) {
  44. if (p.getA() == obj || p.getB() == obj) {
  45. e = p;
  46. }
  47. }
  48. cps.getConnectedTo().remove(e);
  49. MODEL.getEdgesOnCanvas().remove(e);
  50. }
  51. MODEL.getObjectsOnCanvas().remove(obj);
  52. }
  53. /**
  54. * @param objectsOnCanvas
  55. * the objectsOnCanvas to set
  56. */
  57. public void addEdgeOnCanvas(CpsEdge edge) {
  58. MODEL.getEdgesOnCanvas().add(edge);
  59. }
  60. /**
  61. * @param edgesOnCanvas
  62. * the edge to remove
  63. */
  64. public void removeEdgesOnCanvas(CpsEdge edge) {
  65. MODEL.getEdgesOnCanvas().remove(edge);
  66. }
  67. }