Configurable wheel zoom

This commit is contained in:
bancika
2011-01-24 18:21:57 +00:00
parent b33b6b6495
commit 6d361283a1
@@ -28,6 +28,8 @@ public class CanvasPlugin implements IPlugIn {
private static final Logger LOG = Logger.getLogger(CanvasPlugin.class); private static final Logger LOG = Logger.getLogger(CanvasPlugin.class);
private static final String WHEEL_ZOOM = "wheelZoom";
private RulerScrollPane scrollPane; private RulerScrollPane scrollPane;
private CanvasPanel canvasPanel; private CanvasPanel canvasPanel;
private IPlugInPort plugInPort; private IPlugInPort plugInPort;
@@ -62,8 +64,9 @@ public class CanvasPlugin implements IPlugIn {
SizeUnit.in).convertToPixels()); SizeUnit.in).convertToPixels());
boolean metric = ConfigurationManager.getInstance().readBoolean(Presenter.METRIC_KEY, boolean metric = ConfigurationManager.getInstance().readBoolean(Presenter.METRIC_KEY,
true); true);
boolean wheelZoom = ConfigurationManager.getInstance().readBoolean(WHEEL_ZOOM, false);
scrollPane.setMetric(metric); scrollPane.setMetric(metric);
scrollPane.setWheelScrollingEnabled(false); scrollPane.setWheelScrollingEnabled(!wheelZoom);
scrollPane.addUnitListener(new IRulerListener() { scrollPane.addUnitListener(new IRulerListener() {
@Override @Override
@@ -71,27 +74,30 @@ public class CanvasPlugin implements IPlugIn {
plugInPort.setMetric(isMetric); plugInPort.setMetric(isMetric);
} }
}); });
scrollPane.addMouseWheelListener(new MouseWheelListener() { if (wheelZoom) {
scrollPane.addMouseWheelListener(new MouseWheelListener() {
@Override @Override
public void mouseWheelMoved(MouseWheelEvent e) { public void mouseWheelMoved(MouseWheelEvent e) {
double d = plugInPort.getZoomLevel(); double d = plugInPort.getZoomLevel();
Double[] availableZoomLevels = plugInPort.getAvailableZoomLevels(); Double[] availableZoomLevels = plugInPort.getAvailableZoomLevels();
if (e.getWheelRotation() > 0) { if (e.getWheelRotation() > 0) {
int i = availableZoomLevels.length - 1; int i = availableZoomLevels.length - 1;
while (i > 0 && availableZoomLevels[i] >= d) { while (i > 0 && availableZoomLevels[i] >= d) {
i--; i--;
}
plugInPort.setZoomLevel(availableZoomLevels[i]);
} else {
int i = 0;
while (i < availableZoomLevels.length - 1
&& availableZoomLevels[i] <= d) {
i++;
}
plugInPort.setZoomLevel(availableZoomLevels[i]);
} }
plugInPort.setZoomLevel(availableZoomLevels[i]);
} else {
int i = 0;
while (i < availableZoomLevels.length - 1 && availableZoomLevels[i] <= d) {
i++;
}
plugInPort.setZoomLevel(availableZoomLevels[i]);
} }
} });
}); }
} }
return scrollPane; return scrollPane;
} }