MetricboxManager.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package de.tu_darmstadt.informatik.tk.scopviz.ui;
  2. import de.tu_darmstadt.informatik.tk.scopviz.main.Layer;
  3. import de.tu_darmstadt.informatik.tk.scopviz.main.Main;
  4. import de.tu_darmstadt.informatik.tk.scopviz.metrics.CommunicationCostMetric;
  5. import de.tu_darmstadt.informatik.tk.scopviz.metrics.OperatorInfoMetric;
  6. import de.tu_darmstadt.informatik.tk.scopviz.metrics.PlacementCostMetric;
  7. import de.tu_darmstadt.informatik.tk.scopviz.metrics.TaskFulfillmentMetric;
  8. import javafx.collections.FXCollections;
  9. import javafx.collections.ObservableList;
  10. /**
  11. * Manager for the metric box
  12. *
  13. * @author Julian Ohl
  14. * @version 1.3.0.0
  15. */
  16. public class MetricboxManager {
  17. private static GUIController controller;
  18. private static ObservableList<MetricRowData> metrics;
  19. /**
  20. * Private Constructor to prevent Instantiation.
  21. */
  22. private MetricboxManager() {
  23. }
  24. /**
  25. * Initialize metricbox by setting controller, initializing all metrics and
  26. * set them as items
  27. *
  28. * @param guiController
  29. */
  30. public static void initialize(GUIController guiController) {
  31. controller = guiController;
  32. initializeMetrics();
  33. controller.metricbox.setItems(metrics);
  34. }
  35. /**
  36. * Initializes all metrics for employment
  37. *
  38. * ****Central method to add a new metric***** Add line: metrics.add(new
  39. * MetricRowData(new YourMetric())); for using it in the metricbox
  40. * **************************************************************
  41. *
  42. */
  43. private static void initializeMetrics() {
  44. metrics = FXCollections.observableArrayList();
  45. metrics.add(new MetricRowData(new OperatorInfoMetric()));
  46. metrics.add(new MetricRowData(new TaskFulfillmentMetric()));
  47. metrics.add(new MetricRowData(new PlacementCostMetric()));
  48. metrics.add(new MetricRowData(new CommunicationCostMetric()));
  49. }
  50. /**
  51. * if in mapping layer: updates all values of all metrics that are checked
  52. * and refreshes the metricbox
  53. */
  54. public static void updateMetrics() {
  55. if (GraphDisplayManager.getCurrentLayer() == Layer.MAPPING) {
  56. for (MetricRowData d : metrics) {
  57. if (d.getChecked()) {
  58. d.updateMetric(Main.getInstance().getGraphManager().getGraph());
  59. }
  60. }
  61. controller.metricbox.refresh();
  62. }
  63. }
  64. }