From: <emm...@us...> - 2008-11-10 12:31:07
|
Revision: 4199 http://fudaa.svn.sourceforge.net/fudaa/?rev=4199&view=rev Author: emmanuel_martin Date: 2008-11-10 12:31:02 +0000 (Mon, 10 Nov 2008) Log Message: ----------- bugfix : ?\195?\169crasement des valeurs d'attributs des g?\195?\169om?\195?\169tries (sauf la premi?\195?\168re) lors qu'un d?\195?\169placement vers un calque cible qui se trouve plus 'haut' dans l'arbre. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.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-10 10:22:58 UTC (rev 4198) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-11-10 12:31:02 UTC (rev 4199) @@ -7,7 +7,6 @@ */ package org.fudaa.fudaa.modeleur; -import java.awt.Dimension; import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -161,6 +160,10 @@ } } + // Nouveaux objets + Geometry[] newGeom=new Geometry[idxGeom.length]; + Object[][] newData=new Object[idxGeom.length][]; + // Ajout des nouveaux objets. for (int i=0; i<idxGeom.length; i++) { @@ -247,23 +250,26 @@ } } + // Enregistrement temporaire des data + newData[i]=datadest; + // La g\xE9om\xE9trie - if (mdldest instanceof MdlModel2dMultiPoint) { - Geometry gn=GISGeometryFactory.INSTANCE.createMultiPoint(geoms[i].getCoordinates()); - coldest.addGeometry(gn,datadest,cmp); - } + if (mdldest instanceof MdlModel2dMultiPoint) + newGeom[i]=GISGeometryFactory.INSTANCE.createMultiPoint(geoms[i].getCoordinates()); else if (mdldest instanceof MdlModel2dLine) { - Geometry gn; CoordinateSequence coordSeq=((GISCoordinateSequenceContainerInterface) geoms[i]).getCoordinateSequence(); boolean isFerme=coordSeq.getCoordinate(0).equals(coordSeq.getCoordinate(coordSeq.size()-1)); if((calque.canAddForme(DeForme.LIGNE_BRISEE)&&!isFerme)||!calque.canAddForme(DeForme.POLYGONE)) - gn=GISLib.toPolyligne(coordSeq); + newGeom[i]=GISLib.toPolyligne(coordSeq); else - gn=GISLib.toPolygone(coordSeq); - coldest.addGeometry(gn,datadest,cmp); + newGeom[i]=GISLib.toPolygone(coordSeq); } } + // Ajout des nouvelles g\xE9om\xE9tries + for (int i=0; i<newGeom.length; i++) + coldest.addGeometry(newGeom[i], newData[i], cmp); + // Suppression des anciens. removeSelectedObjects(cmp); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |