X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.charts%2Fsrc%2Forg%2Fsimantics%2Fcharts%2Feditor%2Fe4%2FMoveHairlineHandler.java;fp=bundles%2Forg.simantics.charts%2Fsrc%2Forg%2Fsimantics%2Fcharts%2Feditor%2Fe4%2FMoveHairlineHandler.java;h=1d0508d5799de4bb89f2366366a483e2620f964b;hp=0000000000000000000000000000000000000000;hb=969bd23cab98a79ca9101af33334000879fb60c5;hpb=866dba5cd5a3929bbeae85991796acb212338a08 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 index 000000000..1d0508d57 --- /dev/null +++ b/bundles/org.simantics.charts/src/org/simantics/charts/editor/e4/MoveHairlineHandler.java @@ -0,0 +1,81 @@ +package org.simantics.charts.editor.e4; + +import java.util.List; + +import javax.inject.Named; + +import org.eclipse.e4.core.di.annotations.CanExecute; +import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.ui.di.AboutToHide; +import org.eclipse.e4.ui.di.AboutToShow; +import org.eclipse.e4.ui.model.application.ui.basic.MPart; +import org.eclipse.e4.ui.model.application.ui.menu.MDirectMenuItem; +import org.eclipse.e4.ui.model.application.ui.menu.MMenuElement; +import org.eclipse.e4.ui.model.application.ui.menu.MMenuFactory; +import org.eclipse.e4.ui.services.IServiceConstants; +import org.simantics.charts.editor.TrackExperimentTimeAction; +import org.simantics.trend.configuration.TrendSpec; +import org.simantics.trend.impl.ItemNode; +import org.simantics.trend.impl.TrendNode; +import org.simantics.trend.impl.TrendParticipant; + +public class MoveHairlineHandler { + + @AboutToShow + public void aboutToShow(List items) { + MDirectMenuItem menuItem = MMenuFactory.INSTANCE.createDirectMenuItem(); + menuItem.setContributionURI("bundleclass://org.simantics.charts/org.simantics.charts.editor.e4.MoveHairlineHandler"); + menuItem.setLabel("Move Hairline Here"); + items.add(menuItem); + } + + @AboutToHide + public void aboutToHide() { + + } + + @CanExecute + public boolean canExecute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart) { + if (activePart != null && activePart.getObject() instanceof TimeSeriesEditor) { + TimeSeriesEditor editor = (TimeSeriesEditor) activePart.getObject(); + + TrendNode trendNode = editor.trendNode; + TrendParticipant tp = editor.tp; + if (trendNode == null || tp == null) + return false; + + TrendSpec trendSpec = trendNode.getTrendSpec(); + boolean hairlineMovementAllowed = + !(trendSpec.experimentIsRunning && + trendSpec.viewProfile.trackExperimentTime); + + return hairlineMovementAllowed; + } + return false; + } + + @Execute + public void execute(@Named(IServiceConstants.ACTIVE_PART) MPart activePart) { + if (activePart.getObject() instanceof TimeSeriesEditor) { + TimeSeriesEditor editor = (TimeSeriesEditor) activePart.getObject(); + + TrendNode trendNode = editor.trendNode; + TrendParticipant tp = editor.tp; + if (trendNode == null || tp == null) + return; + + TrendSpec trendSpec = trendNode.getTrendSpec(); + ItemNode hoverItem = tp.hoveringItem; + + // #TODO Finish this when we are fully in E4 workbench + +// trend.valueTipTime = time; +// trend.repaint(); +// if (setTrackExperimentTime != null) { +// TrackExperimentTimeAction.setTracking(chart, setTrackExperimentTime); +// } + + } + } + +}