]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.charts/src/org/simantics/charts/editor/e4/MoveHairlineHandler.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.charts / src / org / simantics / charts / editor / e4 / MoveHairlineHandler.java
diff --git a/bundles/org.simantics.charts/src/org/simantics/charts/editor/e4/MoveHairlineHandler.java b/bundles/org.simantics.charts/src/org/simantics/charts/editor/e4/MoveHairlineHandler.java
new file mode 100644 (file)
index 0000000..1d0508d
--- /dev/null
@@ -0,0 +1,81 @@
+package org.simantics.charts.editor.e4;\r
+\r
+import java.util.List;\r
+\r
+import javax.inject.Named;\r
+\r
+import org.eclipse.e4.core.di.annotations.CanExecute;\r
+import org.eclipse.e4.core.di.annotations.Execute;\r
+import org.eclipse.e4.ui.di.AboutToHide;\r
+import org.eclipse.e4.ui.di.AboutToShow;\r
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;\r
+import org.eclipse.e4.ui.model.application.ui.menu.MDirectMenuItem;\r
+import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement;\r
+import org.eclipse.e4.ui.model.application.ui.menu.MMenuFactory;\r
+import org.eclipse.e4.ui.services.IServiceConstants;\r
+import org.simantics.charts.editor.TrackExperimentTimeAction;\r
+import org.simantics.trend.configuration.TrendSpec;\r
+import org.simantics.trend.impl.ItemNode;\r
+import org.simantics.trend.impl.TrendNode;\r
+import org.simantics.trend.impl.TrendParticipant;\r
+\r
+public class MoveHairlineHandler {\r
+\r
+    @AboutToShow\r
+    public void aboutToShow(List<MMenuElement> items) {\r
+        MDirectMenuItem menuItem = MMenuFactory.INSTANCE.createDirectMenuItem();\r
+        menuItem.setContributionURI("bundleclass://org.simantics.charts/org.simantics.charts.editor.e4.MoveHairlineHandler");\r
+        menuItem.setLabel("Move Hairline Here");\r
+        items.add(menuItem);\r
+    }\r
+    \r
+    @AboutToHide\r
+    public void aboutToHide() {\r
+        \r
+    }\r
+    \r
+    @CanExecute\r
+    public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart) {\r
+        if (activePart != null && activePart.getObject() instanceof TimeSeriesEditor) {\r
+            TimeSeriesEditor editor = (TimeSeriesEditor) activePart.getObject();\r
+            \r
+            TrendNode trendNode = editor.trendNode;\r
+            TrendParticipant tp = editor.tp;\r
+            if (trendNode == null || tp == null)\r
+                return false;\r
+            \r
+            TrendSpec trendSpec = trendNode.getTrendSpec();\r
+            boolean hairlineMovementAllowed =\r
+                    !(trendSpec.experimentIsRunning &&\r
+                      trendSpec.viewProfile.trackExperimentTime);\r
+            \r
+            return hairlineMovementAllowed;\r
+        }\r
+        return false;\r
+    }\r
+    \r
+    @Execute\r
+    public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart) {\r
+        if (activePart.getObject() instanceof TimeSeriesEditor) {\r
+            TimeSeriesEditor editor = (TimeSeriesEditor) activePart.getObject();\r
+            \r
+            TrendNode trendNode = editor.trendNode;\r
+            TrendParticipant tp = editor.tp;\r
+            if (trendNode == null || tp == null)\r
+                return;\r
+\r
+            TrendSpec trendSpec = trendNode.getTrendSpec();\r
+            ItemNode hoverItem = tp.hoveringItem;\r
+            \r
+            // #TODO Finish this when we are fully in E4 workbench\r
+            \r
+//            trend.valueTipTime = time;\r
+//            trend.repaint();\r
+//            if (setTrackExperimentTime != null) {\r
+//                TrackExperimentTimeAction.setTracking(chart, setTrackExperimentTime);\r
+//            }\r
+            \r
+        }\r
+    }\r
+\r
+}\r