diff options
| author | Laurent Redor | 2016-09-02 15:18:12 +0000 |
|---|---|---|
| committer | Laurent Redor | 2016-09-05 07:55:03 +0000 |
| commit | 704da52f8cac23be9b6e90b820c1e75a273a2556 (patch) | |
| tree | 60f776ff98fa8ddb72a9596fd5dc74b6a320227f | |
| parent | 4940e506e560c6c3cc313c3feb60b921af9a0171 (diff) | |
| download | org.eclipse.sirius-704da52f8cac23be9b6e90b820c1e75a273a2556.tar.gz org.eclipse.sirius-704da52f8cac23be9b6e90b820c1e75a273a2556.tar.xz org.eclipse.sirius-704da52f8cac23be9b6e90b820c1e75a273a2556.zip | |
[498494] Fix NPE regression caused by this issue
All the method concerned by the zoom manager must be overridden to use
the specific zoom manager.
Bug: 498494
Change-Id: I8a430c49150e0a98790cbabf7993766f1b6b9357
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
| -rw-r--r-- | plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/graphical/edit/part/DDiagramRootEditPart.java | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/graphical/edit/part/DDiagramRootEditPart.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/graphical/edit/part/DDiagramRootEditPart.java index 8dbc2bb193..a5acdc691f 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/graphical/edit/part/DDiagramRootEditPart.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/internal/graphical/edit/part/DDiagramRootEditPart.java @@ -17,6 +17,8 @@ import org.eclipse.draw2d.LayeredPane; import org.eclipse.draw2d.ScalableFigure; import org.eclipse.draw2d.ScalableFreeformLayeredPane; import org.eclipse.draw2d.Viewport; +import org.eclipse.draw2d.geometry.Point; +import org.eclipse.draw2d.geometry.Rectangle; import org.eclipse.gef.AutoexposeHelper; import org.eclipse.gef.LayerConstants; import org.eclipse.gef.editparts.ZoomManager; @@ -24,6 +26,7 @@ import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramRootEditPart; import org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemsAwareFreeFormLayer; import org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants; import org.eclipse.gmf.runtime.diagram.ui.render.editparts.RenderedDiagramRootEditPart; +import org.eclipse.gmf.runtime.gef.ui.internal.editparts.AnimatableZoomManager; import org.eclipse.gmf.runtime.notation.MeasurementUnit; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.sirius.diagram.ui.tools.internal.figure.DConnectionLayerEx; @@ -34,6 +37,7 @@ import org.eclipse.sirius.diagram.ui.tools.internal.handler.SiriusAnimatableZoom * * @author ymortier */ +@SuppressWarnings("restriction") public class DDiagramRootEditPart extends RenderedDiagramRootEditPart { private SiriusAnimatableZoomManager siriusZoomManager; @@ -103,6 +107,42 @@ public class DDiagramRootEditPart extends RenderedDiagramRootEditPart { return siriusZoomManager; } + @Override + public void zoomIn() { + getZoomManager().zoomIn(); + } + + @Override + public void zoomIn(Point center) { + if (getZoomManager() instanceof AnimatableZoomManager) { + ((AnimatableZoomManager) getZoomManager()).zoomTo(getZoomManager().getNextZoomLevel(), center); + } + } + + @Override + public void zoomOut() { + getZoomManager().zoomOut(); + } + + @Override + public void zoomOut(Point center) { + if (getZoomManager() instanceof AnimatableZoomManager) { + ((AnimatableZoomManager) getZoomManager()).zoomTo(getZoomManager().getPreviousZoomLevel(), center); + } + } + + @Override + public void zoomTo(double zoom, Point center) { + if (getZoomManager() instanceof AnimatableZoomManager) { + ((AnimatableZoomManager) getZoomManager()).zoomTo(zoom, center); + } + } + + @Override + public void zoomTo(Rectangle rect) { + getZoomManager().zoomTo(rect); + } + /** * Duplicated method from super DiagramRootEditPart. */ |
