Revision 38544

View differences:

branches/v2_0_0_prep/extensions/extEditing/src/org/gvsig/editing/gui/cad/tools/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