diff --git a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformCanvas.java b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformCanvas.java index b658d4c..cc8eb37 100644 --- a/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformCanvas.java +++ b/plugins/com.minres.scviewer.database.ui.swt/src/com/minres/scviewer/database/ui/swt/internal/WaveformCanvas.java @@ -570,7 +570,7 @@ public class WaveformCanvas extends Canvas implements IWaveformZoom{ break; case FULL: setScale(WaveformCanvas.ZOOM_FULL); - break; + break; } } diff --git a/plugins/com.minres.scviewer.e4.application/Application.e4xmi b/plugins/com.minres.scviewer.e4.application/Application.e4xmi index b2cf22b..56d12d1 100644 --- a/plugins/com.minres.scviewer.e4.application/Application.e4xmi +++ b/plugins/com.minres.scviewer.e4.application/Application.e4xmi @@ -160,6 +160,7 @@ + @@ -207,10 +208,10 @@ - + - + @@ -218,15 +219,20 @@ - - - - - + + + + + + + + + + @@ -289,6 +295,9 @@ + + + diff --git a/plugins/com.minres.scviewer.e4.application/icons/center_blue.png b/plugins/com.minres.scviewer.e4.application/icons/center_blue.png new file mode 100644 index 0000000..64f7575 Binary files /dev/null and b/plugins/com.minres.scviewer.e4.application/icons/center_blue.png differ diff --git a/plugins/com.minres.scviewer.e4.application/icons/next-green.png b/plugins/com.minres.scviewer.e4.application/icons/next-green.png new file mode 100644 index 0000000..329347c Binary files /dev/null and b/plugins/com.minres.scviewer.e4.application/icons/next-green.png differ diff --git a/plugins/com.minres.scviewer.e4.application/icons/previous-green.png b/plugins/com.minres.scviewer.e4.application/icons/previous-green.png new file mode 100644 index 0000000..fe8442f Binary files /dev/null and b/plugins/com.minres.scviewer.e4.application/icons/previous-green.png differ diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/PanHandler.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/PanHandler.java new file mode 100644 index 0000000..b21f3f3 --- /dev/null +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/PanHandler.java @@ -0,0 +1,49 @@ +/******************************************************************************* + * Copyright (c) 2015-2021 MINRES Technologies GmbH and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * MINRES Technologies GmbH - initial API and implementation + *******************************************************************************/ + +package com.minres.scviewer.e4.application.handlers; + +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.model.application.ui.basic.MPart; +import org.eclipse.e4.ui.workbench.modeling.EPartService; + +import com.minres.scviewer.e4.application.parts.WaveformViewer; + +public class PanHandler { + + final static String PARAMTER_ID="com.minres.scviewer.e4.application.command.pancommand.parameter.direction"; //$NON-NLS-1$ + + @CanExecute + public boolean canExecute(EPartService partService) { + return true; + } + + @Execute + public void execute(@Named(PARAMTER_ID) String level, EPartService partService) { + MPart part = partService.getActivePart(); + Object obj = part.getObject(); + if(obj instanceof WaveformViewer){ + WaveformViewer waveformViewerPart = (WaveformViewer) obj; + if("left".equalsIgnoreCase(level)) //$NON-NLS-1$ + waveformViewerPart.pan(-1); + else if("right".equalsIgnoreCase(level)) //$NON-NLS-1$ + waveformViewerPart.pan(+1); + else if("cursor".equalsIgnoreCase(level)) //$NON-NLS-1$ + waveformViewerPart.pan(0); + } + + } + + +} \ No newline at end of file diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/ZoomHandler.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/ZoomHandler.java index 863a911..168239d 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/ZoomHandler.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/handlers/ZoomHandler.java @@ -37,13 +37,13 @@ public class ZoomHandler { if(obj instanceof WaveformViewer){ WaveformViewer waveformViewerPart = (WaveformViewer) obj; if("in".equalsIgnoreCase(level)) //$NON-NLS-1$ - waveformViewerPart.setZoom(ZoomKind.IN); + waveformViewerPart.zoom(ZoomKind.IN); else if("out".equalsIgnoreCase(level)) //$NON-NLS-1$ - waveformViewerPart.setZoom(ZoomKind.OUT); + waveformViewerPart.zoom(ZoomKind.OUT); else if("fit".equalsIgnoreCase(level)) //$NON-NLS-1$ - waveformViewerPart.setZoom(ZoomKind.FIT); + waveformViewerPart.zoom(ZoomKind.FIT); else if("full".equalsIgnoreCase(level)) //$NON-NLS-1$ - waveformViewerPart.setZoom(ZoomKind.FULL); + waveformViewerPart.zoom(ZoomKind.FULL); } } diff --git a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java index 08e3e01..269168e 100644 --- a/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java +++ b/plugins/com.minres.scviewer.e4.application/src/com/minres/scviewer/e4/application/parts/WaveformViewer.java @@ -1039,13 +1039,35 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis } /** - * Execute the zoom kind. + * Execute the zoom according to kind. + * + * @param kind the type of zoom to execute */ - public void setZoom(ZoomKind kind) { + public void zoom(ZoomKind kind) { waveformPane.getWaveformZoom().zoom(kind); updateAll(); } + /** + * Execute the zoom kind. + * + * @param direction the direction of the pan (-1, 0, 1) + */ + public void pan(int direction) { + switch(direction) { + case -1: + waveformPane.scrollHorizontal(-10); + return; + case 1: + waveformPane.scrollHorizontal(10); + return; + case 0: + waveformPane.scrollTo(IWaveformView.CURSOR_POS); + return; + } + updateAll(); + } + /** * Gets the selection. *