From: <gog...@us...> - 2009-03-24 13:04:02
|
Revision: 14520 http://cdk.svn.sourceforge.net/cdk/?rev=14520&view=rev Author: goglepox Date: 2009-03-24 13:03:53 +0000 (Tue, 24 Mar 2009) Log Message: ----------- Refactored common code to two methods, some dormant code for zooming to cursor. Modified Paths: -------------- cdk/branches/jchempaint-primary/src/main/org/openscience/cdk/controller/ZoomModule.java Modified: cdk/branches/jchempaint-primary/src/main/org/openscience/cdk/controller/ZoomModule.java =================================================================== --- cdk/branches/jchempaint-primary/src/main/org/openscience/cdk/controller/ZoomModule.java 2009-03-24 13:03:31 UTC (rev 14519) +++ cdk/branches/jchempaint-primary/src/main/org/openscience/cdk/controller/ZoomModule.java 2009-03-24 13:03:53 UTC (rev 14520) @@ -1,30 +1,57 @@ package org.openscience.cdk.controller; +import javax.vecmath.Point2d; +import javax.vecmath.Vector2d; + +import org.openscience.cdk.renderer.Renderer; import org.openscience.cdk.renderer.RendererModel; /** * @cdk.module control */ public class ZoomModule extends ControllerModuleAdapter { - + + Point2d worldCoord=null; + public ZoomModule(IChemModelRelay chemModelRelay) { super(chemModelRelay); } - + public void mouseWheelMovedForward(int clicks) { - RendererModel model = chemModelRelay.getRenderer().getRenderer2DModel(); - if (model.getZoomFactor()*.9 > .1) - model.setZoomFactor(model.getZoomFactor() * 0.9); + doZoom( .9 ); + chemModelRelay.fireZoomEvent(); chemModelRelay.updateView(); } - + public void mouseWheelMovedBackward(int clicks) { - RendererModel model = chemModelRelay.getRenderer().getRenderer2DModel(); - if (model.getZoomFactor()*1.1 < 10) - model.setZoomFactor(model.getZoomFactor() * 1.1); + doZoom( 1.1 ); + chemModelRelay.fireZoomEvent(); chemModelRelay.updateView(); } + private void doZoom(double z) { + Renderer renderer= chemModelRelay.getRenderer(); + Point2d screenCoord = renderer.toScreenCoordinates( worldCoord.x, worldCoord.y); + zoom(z); + Point2d newScreenCoords = renderer.toScreenCoordinates( worldCoord.x, + worldCoord.y ); + Vector2d v= new Vector2d(); + v.sub( screenCoord ,newScreenCoords ); +// renderer.shiftDrawCenter( v.x, v.y ); + } + private void zoom(double zoomFactor) { + RendererModel model = chemModelRelay.getRenderer().getRenderer2DModel(); + double zoom = model.getZoomFactor(); + zoom = zoom * zoomFactor; + if(zoom < .1 && zoom > 100) + return; + chemModelRelay.getRenderer().setZoom( zoom ); + } + + @Override + public void mouseMove( Point2d worldCoord ) { + this.worldCoord = worldCoord; + } public String getDrawModeString() { return "Zoom"; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |