From: <to...@us...> - 2006-08-10 14:31:09
|
Revision: 6771 Author: tohel Date: 2006-08-10 07:30:59 -0700 (Thu, 10 Aug 2006) ViewCVS: http://svn.sourceforge.net/cdk/?rev=6771&view=rev Log Message: ----------- added a flag to control if the structure or a part of it might be moved (connects to the behaviour, that if yyou click on an element in the actual selection, the dragMode switches to move) Modified Paths: -------------- trunk/cdk/src/org/openscience/cdk/controller/AbstractController2D.java trunk/cdk/src/org/openscience/cdk/controller/Controller2DModel.java Modified: trunk/cdk/src/org/openscience/cdk/controller/AbstractController2D.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/controller/AbstractController2D.java 2006-08-10 05:41:42 UTC (rev 6770) +++ trunk/cdk/src/org/openscience/cdk/controller/AbstractController2D.java 2006-08-10 14:30:59 UTC (rev 6771) @@ -137,6 +137,7 @@ double moveoldX; double moveoldY; private IUndoRedoHandler undoRedoHandler; + // Helper classes HydrogenAdder hydrogenAdder = new HydrogenAdder("org.openscience.cdk.tools.ValencyChecker"); @@ -226,7 +227,7 @@ int mouseY = mouseCoords[1]; highlightNearestChemObject(mouseX, mouseY); //this is the rotate feature - if(r2dm.getSelectedPart()!=null && r2dm.getHighlightedAtom()==null && r2dm.getHighlightedBond()==null && c2dm.getDrawMode() == Controller2DModel.LASSO){ + if(c2dm.isMovingAllowed() && r2dm.getSelectedPart()!=null && r2dm.getHighlightedAtom()==null && r2dm.getHighlightedBond()==null && c2dm.getDrawMode() == Controller2DModel.LASSO){ double xmin=Double.MAX_VALUE; double xmax=Double.MIN_VALUE; double ymin=Double.MAX_VALUE; @@ -408,7 +409,7 @@ r2dm.getRotateRadius()==0){ r2dm.setSelectedPart(atomInRange.getBuilder().newAtomContainer()); } - + if (c2dm.getDrawMode() == Controller2DModel.MOVE) { selectNearestChemObjectIfNoneSelected(mouseX, mouseY); @@ -431,7 +432,7 @@ dragMode = DRAG_MAKING_SQUARE_SELECTION; } else if (c2dm.getDrawMode() == Controller2DModel.LASSO && r2dm.getRotateRadius()==0) { - if(r2dm.getSelectedPart()!=null && (r2dm.getSelectedPart().contains(r2dm.getHighlightedAtom()) || r2dm.getSelectedPart().contains(r2dm.getHighlightedBond()))){ + if(c2dm.isMovingAllowed() && r2dm.getSelectedPart()!=null && (r2dm.getSelectedPart().contains(r2dm.getHighlightedAtom()) || r2dm.getSelectedPart().contains(r2dm.getHighlightedBond()))){ if(r2dm.getSelectedPart().getAtomCount()>0) c2dm.setDrawMode(Controller2DModel.MOVE); if(lastAction!=null){ @@ -440,7 +441,8 @@ moveButton.setBackground(Color.GRAY); } dragMode = DRAG_MOVING_SELECTED; - }else{ + } + else{ dragMode = DRAG_MAKING_LASSO_SELECTION; } } else if (c2dm.getDrawMode() == Controller2DModel.RING || @@ -450,6 +452,7 @@ } else if(r2dm.getRotateRadius()!=0){ dragMode = DRAG_ROTATE; } + if(dragMode==DRAG_MOVING_SELECTED){ if (r2dm.getSelectedPart() != null && r2dm.getSelectedPart().getAtom(0) != null) { moveoldX=((Point2d)r2dm.getRenderingCoordinate(r2dm.getSelectedPart().getAtom(0))).x; Modified: trunk/cdk/src/org/openscience/cdk/controller/Controller2DModel.java =================================================================== --- trunk/cdk/src/org/openscience/cdk/controller/Controller2DModel.java 2006-08-10 05:41:42 UTC (rev 6770) +++ trunk/cdk/src/org/openscience/cdk/controller/Controller2DModel.java 2006-08-10 14:30:59 UTC (rev 6771) @@ -81,8 +81,9 @@ private boolean autoUpdateImplicitHydrogens = false; private UndoManager undoManager; private UndoableEditSupport undoSupport; + //for controlling, if the structure or substructural parts might be moved + private boolean isMovingAllowed = true; - public Controller2DModel() { undoManager = new UndoManager(); undoManager.setLimit(100); @@ -371,4 +372,19 @@ this.undoManager = undoManager; } + /** + * To retrieve the value of the isMovingAllowed flag + * @return boolean isMovingAllowed + */ + public boolean isMovingAllowed() { + return isMovingAllowed; + } + + /** + * Lets you set the siMovingAllowed flag + * @param isMovingAllowed + */ + public void setMovingAllowed(boolean isMovingAllowed) { + this.isMovingAllowed = isMovingAllowed; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |