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.
*