/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.gui.workflow;
import org.eclipse.gef.editparts.ZoomManager;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseWheelListener;
/**
* Listener to uniform Editor's zooming behavior via mouse wheel and hotkeys.
*
* @author Oliver Seebach
*/
public class EditorMouseWheelAndKeyListener implements MouseWheelListener, KeyListener {
private ZoomManager zoomManager;
public EditorMouseWheelAndKeyListener(ZoomManager zoomManager) {
this.zoomManager = zoomManager;
}
@Override
public void mouseScrolled(MouseEvent mouseEvent) {
if (mouseEvent.stateMask == SWT.CONTROL) {
int notches = mouseEvent.count;
if (notches < 0) {
zoomOut();
} else {
zoomIn();
}
}
}
@Override
public void keyPressed(KeyEvent keyEvent) {
if (keyEvent.stateMask == SWT.CTRL && keyEvent.keyCode == '+') {
zoomIn();
} else if (keyEvent.stateMask == SWT.CTRL && keyEvent.keyCode == '-') {
zoomOut();
}
}
@Override
public void keyReleased(KeyEvent keyEvent) {}
private void zoomIn() {
zoomManager.zoomIn();
}
private void zoomOut() {
zoomManager.zoomOut();
}
}