From: <emm...@us...> - 2008-11-07 10:48:54
|
Revision: 4188 http://fudaa.svn.sourceforge.net/fudaa/?rev=4188&view=rev Author: emmanuel_martin Date: 2008-11-07 10:48:51 +0000 (Fri, 07 Nov 2008) Log Message: ----------- Bugfix : undo/redo se fait en plusieurs fois sur le rafinement et la d?\195?\169cimation Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-11-07 10:43:51 UTC (rev 4187) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-11-07 10:48:51 UTC (rev 4188) @@ -265,6 +265,8 @@ if (pnDecimation_==null) pnDecimation_=new MdlDecimationPanel(); + CtuluCommandComposite cmd=new CtuluCommandComposite(); + String title; if (getScene().isAtomicMode()) title=MdlResource.MDL.getString("D\xE9cimation entre 2 sommets"); @@ -294,12 +296,14 @@ if (mdld instanceof MdlModel2dLine) { MdlModel2dLine mdl=(MdlModel2dLine)mdld; mdl.decimate(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnDecimation_.isNbPtsGiven() ? 0:1, pnDecimation_ - .getNbPts(), pnDecimation_.getDistance(), getMng()); + .getNbPts(), pnDecimation_.getDistance(), cmd); } super.getScene().clearSelection(); } } + if(getMng()!=null) + getMng().addCmd(cmd.getSimplify()); } /** @@ -309,6 +313,8 @@ if (pnRaffinement_==null) pnRaffinement_=new MdlRefinementPanel(); + CtuluCommandComposite cmd=new CtuluCommandComposite(); + String title; if (getScene().isAtomicMode()) title=MdlResource.MDL.getString("Raffinement entre 2 sommets"); @@ -338,12 +344,14 @@ if (mdld instanceof MdlModel2dLine) { MdlModel2dLine mdl=(MdlModel2dLine)mdld; mdl.refine(getScene().sceneId2LayerId(idxGeom), idxdeb, idxfin, pnRaffinement_.isNbPtsGiven() ? 0:1, pnRaffinement_ - .getNbPts(), pnRaffinement_.getDistance(), getMng()); + .getNbPts(), pnRaffinement_.getDistance(), cmd); } super.getScene().clearSelection(); } } + if(getMng()!=null) + getMng().addCmd(cmd.getSimplify()); } /** Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java 2008-11-07 10:43:51 UTC (rev 4187) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLine.java 2008-11-07 10:48:51 UTC (rev 4188) @@ -11,6 +11,7 @@ import java.util.ArrayList; +import org.fudaa.ctulu.CtuluCommandComposite; import org.fudaa.ctulu.CtuluCommandContainer; import org.fudaa.ctulu.CtuluListSelection; import org.fudaa.ctulu.CtuluListSelectionInterface; @@ -77,9 +78,12 @@ } if (coords.length>=2) { GISPolyligne poly=(GISPolyligne)GISGeometryFactory.INSTANCE.createLineString(coords); - int idx=getGeomData().addGeometry(poly, null, _cmd); + CtuluCommandComposite cmd=new CtuluCommandComposite(); + int idx=getGeomData().addGeometry(poly, null, cmd); if (idx!=-1) - setGeomModif(idx, _cmd); + setGeomModif(idx, cmd); + if(_cmd!=null) + _cmd.addCmd(cmd.getSimplify()); return true; } else @@ -177,8 +181,11 @@ } CtuluListSelectionInterface ids = new CtuluListSelection(list.toNativeArray()); - getGeomData().removeAtomics(_idxGeom, ids, null, _cmd); // L'UI est null, le cas ou moins de 2 points ne peut pas arriver. - setGeomModif(_idxGeom, _cmd); // Modification de l'etat de la g\xE9om\xE9trie + CtuluCommandComposite cmd=new CtuluCommandComposite(); + getGeomData().removeAtomics(_idxGeom, ids, null, cmd); // L'UI est null, le cas ou moins de 2 points ne peut pas arriver. + setGeomModif(_idxGeom, cmd); // Modification de l'etat de la g\xE9om\xE9trie + if(_cmd!=null) + _cmd.addCmd(cmd.getSimplify()); return true; } @@ -238,8 +245,11 @@ } GISPolyligne newgeom=(GISPolyligne)GISGeometryFactory.INSTANCE.createLineString((Coordinate[])coords.toArray(new Coordinate[0])); - getGeomData().setGeometry(_idxGeom, newgeom, _cmd); - setGeomModif(_idxGeom, _cmd); // Modification de l'etat de la g\xE9om\xE9trie + CtuluCommandComposite cmd=new CtuluCommandComposite(); + getGeomData().setGeometry(_idxGeom, newgeom, cmd); + setGeomModif(_idxGeom, cmd); // Modification de l'etat de la g\xE9om\xE9trie + if(_cmd!=null) + _cmd.addCmd(cmd.getSimplify()); return true; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |