1 package org.simantics.charts.editor.e4;
5 import javax.inject.Named;
7 import org.eclipse.e4.core.di.annotations.CanExecute;
8 import org.eclipse.e4.core.di.annotations.Execute;
9 import org.eclipse.e4.ui.di.AboutToHide;
10 import org.eclipse.e4.ui.di.AboutToShow;
11 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
12 import org.eclipse.e4.ui.model.application.ui.menu.MDirectMenuItem;
13 import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement;
14 import org.eclipse.e4.ui.model.application.ui.menu.MMenuFactory;
15 import org.eclipse.e4.ui.services.IServiceConstants;
16 import org.simantics.charts.editor.TrackExperimentTimeAction;
17 import org.simantics.trend.configuration.TrendSpec;
18 import org.simantics.trend.impl.ItemNode;
19 import org.simantics.trend.impl.TrendNode;
20 import org.simantics.trend.impl.TrendParticipant;
22 public class MoveHairlineHandler {
25 public void aboutToShow(List<MMenuElement> items) {
26 MDirectMenuItem menuItem = MMenuFactory.INSTANCE.createDirectMenuItem();
27 menuItem.setContributionURI("bundleclass://org.simantics.charts/org.simantics.charts.editor.e4.MoveHairlineHandler");
28 menuItem.setLabel("Move Hairline Here");
33 public void aboutToHide() {
38 public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart) {
39 if (activePart != null && activePart.getObject() instanceof TimeSeriesEditor) {
40 TimeSeriesEditor editor = (TimeSeriesEditor) activePart.getObject();
42 TrendNode trendNode = editor.trendNode;
43 TrendParticipant tp = editor.tp;
44 if (trendNode == null || tp == null)
47 TrendSpec trendSpec = trendNode.getTrendSpec();
48 boolean hairlineMovementAllowed =
49 !(trendSpec.experimentIsRunning &&
50 trendSpec.viewProfile.trackExperimentTime);
52 return hairlineMovementAllowed;
58 public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart) {
59 if (activePart.getObject() instanceof TimeSeriesEditor) {
60 TimeSeriesEditor editor = (TimeSeriesEditor) activePart.getObject();
62 TrendNode trendNode = editor.trendNode;
63 TrendParticipant tp = editor.tp;
64 if (trendNode == null || tp == null)
67 TrendSpec trendSpec = trendNode.getTrendSpec();
68 ItemNode hoverItem = tp.hoveringItem;
70 // #TODO Finish this when we are fully in E4 workbench
72 // trend.valueTipTime = time;
74 // if (setTrackExperimentTime != null) {
75 // TrackExperimentTimeAction.setTracking(chart, setTrackExperimentTime);