Revision 38544 branches/v2_0_0_prep/extensions/extEditing/src/org/gvsig/editing/gui/cad/tools/SelectionCADTool.java
SelectionCADTool.java | ||
---|---|---|
178 | 178 |
for (int i=0 ; i<selectedFeatures.size() ; i++){ |
179 | 179 |
Feature feature = (Feature) selectedFeatures.get(i); |
180 | 180 |
|
181 |
Geometry geometry = (Geometry)selectedGeometries.get(i); |
|
181 |
Geometry changing_geometry = (Geometry)selectedGeometries.get(i); |
|
182 |
Geometry old_geometry = changing_geometry.cloneGeometry(); |
|
182 | 183 |
|
183 | 184 |
// Draw the moved geometry. It has been reprojected in the |
184 | 185 |
// select handler method |
... | ... | |
189 | 190 |
|
190 | 191 |
//If the layer is reprojected, It is necessary |
191 | 192 |
//to reproject the geometry |
192 |
if (coordTrans != null){ |
|
193 |
geometry = geometry.cloneGeometry(); |
|
194 |
geometry.reProject(coordTrans.getInverted()); |
|
193 |
if (coordTrans != null) { |
|
194 |
changing_geometry = changing_geometry.cloneGeometry(); |
|
195 |
changing_geometry.reProject(coordTrans.getInverted()); |
|
196 |
// ========================== |
|
197 |
// this is already an independent clone |
|
198 |
old_geometry.reProject(coordTrans.getInverted()); |
|
195 | 199 |
} |
196 | 200 |
|
201 |
// restore old geometry in feature |
|
202 |
// this is because selectedGeometries and |
|
203 |
// selectedFeature point |
|
204 |
// at the same geometries at least sometimes |
|
197 | 205 |
EditableFeature eFeature = feature.getEditable(); |
198 |
eFeature.setDefaultGeometry(geometry); |
|
206 |
eFeature.setDefaultGeometry(old_geometry); |
|
207 |
|
|
208 |
Feature old_geom_feature = eFeature.getNotEditableCopy(); |
|
209 |
|
|
210 |
// set new (old remains as source for undoing) |
|
211 |
eFeature = old_geom_feature.getEditable(); |
|
212 |
eFeature.setDefaultGeometry(changing_geometry); |
|
213 |
|
|
214 |
|
|
199 | 215 |
featureStore.update(eFeature); |
200 | 216 |
} |
201 | 217 |
|
Also available in: Unified diff