Revision 27525 branches/v2_0_0_prep/extensions/extEditing/src/com/iver/cit/gvsig/gui/cad/tools/CopyCADTool.java

View differences:

CopyCADTool.java
44 44
import java.awt.Image;
45 45
import java.awt.event.InputEvent;
46 46
import java.awt.geom.Point2D;
47
import java.util.Iterator;
48 47

  
49 48
import org.gvsig.fmap.dal.exception.DataException;
50 49
import org.gvsig.fmap.dal.exception.ReadException;
50
import org.gvsig.fmap.dal.feature.DisposableIterator;
51 51
import org.gvsig.fmap.dal.feature.Feature;
52 52
import org.gvsig.fmap.dal.feature.FeatureSelection;
53 53
import org.gvsig.fmap.dal.feature.FeatureSet;
......
149 149
    	FeatureStore featureStore=null;
150 150
    	try {
151 151
    		featureStore = vle.getFeatureStore();
152
//    		FeatureSelection selection = featureStore.createFeatureSelection();
153
//			selection.select((FeatureSet) featureStore.getSelection());
154
			FeatureSelection selection = (FeatureSelection) featureStore
155
					.getSelection();
152
    		//    		FeatureSelection selection = featureStore.createFeatureSelection();
153
    		//			selection.select((FeatureSet) featureStore.getSelection());
154
    		FeatureSelection selection = (FeatureSelection) featureStore
155
    		.getSelection();
156 156
    		if (status.equals("Copy.FirstPointToMove")) {
157 157
    			firstPoint = new Point2D.Double(x, y);
158 158
    		} else if (status.equals("Copy.SecondPointToMove")) {
......
161 161
    			featureStore.beginEditingGroup(getName());
162 162

  
163 163
    			FeatureSelection newSelection = featureStore
164
						.createFeatureSelection();
164
    			.createFeatureSelection();
165 165

  
166
    			Iterator iterator = selection.iterator();
166
    			DisposableIterator iterator = null;
167 167

  
168
    			featureStore.beginComplexNotification();
168
    			try{
169
    				iterator = selection.iterator();
169 170

  
170
    			while (iterator.hasNext()) {
171
    				Feature feature = (Feature) iterator.next();
172
    				// Movemos la geometr?a
173
    				Geometry geometry=(feature.getDefaultGeometry()).cloneGeometry();
174
//    				EditableFeature eFeature=featureStore.createNewFeature(true);
175
    				UtilFunctions.moveGeom(geometry, lastPoint.getX() -
176
    						firstPoint.getX(), lastPoint.getY() - firstPoint.getY());
177
//    				eFeature.setGeometry(featureStore.getDefaultFeatureType().getDefaultGeometryAttributeName(),geometry);
178
//    				featureStore.insert(eFeature);
179
					newSelection.select(insertGeometry(geometry, feature));
171
    				featureStore.beginComplexNotification();
172

  
173
    				while (iterator.hasNext()) {
174
    					Feature feature = (Feature) iterator.next();
175
    					// Movemos la geometr?a
176
    					Geometry geometry=(feature.getDefaultGeometry()).cloneGeometry();
177
    					//    				EditableFeature eFeature=featureStore.createNewFeature(true);
178
    					UtilFunctions.moveGeom(geometry, lastPoint.getX() -
179
    							firstPoint.getX(), lastPoint.getY() - firstPoint.getY());
180
    					//    				eFeature.setGeometry(featureStore.getDefaultFeatureType().getDefaultGeometryAttributeName(),geometry);
181
    					//    				featureStore.insert(eFeature);
182
    					newSelection.select(insertGeometry(geometry, feature));
183
    				}
184
    				//    			clearSelection();
185
    				featureStore.endComplexNotification();
186
    				featureStore.setSelection(newSelection);
187
    				featureStore.endEditingGroup();
188
    				PluginServices.getMDIManager().restoreCursor();
189
    			} catch (DataException e) {
190
    				featureStore.endComplexNotification();
191
    				throw e;
192
    			} finally{
193
    				if (iterator != null){
194
    					iterator.dispose();
195
    				}
180 196
    			}
181
//    			clearSelection();
182
    			featureStore.endComplexNotification();
183
				featureStore.setSelection(newSelection);
184
    			featureStore.endEditingGroup();
185
    			PluginServices.getMDIManager().restoreCursor();
197

  
198
    		} else {
199
    			}
200
    		} catch (DataException e) {
201
    			NotificationManager.addError(e.getMessage(),e);
186 202
    		}
187
    	} catch (ReadException e) {
188
    		NotificationManager.addError(e.getMessage(),e);
189
    	} catch (DataException e) {
190
    		// TODO Auto-generated catch block
191
    		e.printStackTrace();
192 203
    	}
193
    }
194 204

  
195 205
    /**
196 206
     * M?todo para dibujar la lo necesario para el estado en el que nos

Also available in: Unified diff