Revision 23086 branches/v2_0_0_prep/extensions/extCAD/src/com/iver/cit/gvsig/gui/cad/tools/SymmetryCADTool.java

View differences:

SymmetryCADTool.java
45 45
import java.awt.event.InputEvent;
46 46
import java.awt.geom.Point2D;
47 47
import java.util.ArrayList;
48
import java.util.Iterator;
48 49

  
50
import org.gvsig.fmap.data.DataException;
49 51
import org.gvsig.fmap.data.ReadException;
52
import org.gvsig.fmap.data.feature.Feature;
50 53
import org.gvsig.fmap.data.feature.FeatureCollection;
54
import org.gvsig.fmap.data.feature.FeatureStore;
51 55
import org.gvsig.fmap.geom.Geometry;
52 56
import org.gvsig.fmap.geom.GeometryFactory;
53 57
import org.gvsig.fmap.geom.GeometryManager;
......
174 178
		}
175 179
    }
176 180
private void drawSymmetry(Graphics g,Point2D pAux) {
177
	ArrayList selectedRow=getSelectedRows();
181

  
178 182
    VectorialLayerEdited vle=getVLE();
183
    FeatureCollection selection=null;
184
	try {
185
		selection = (FeatureCollection)vle.getFeatureStore().getSelection();
186
	} catch (ReadException e1) {
187
		// TODO Auto-generated catch block
188
		e1.printStackTrace();
189
	}
179 190
	ViewPort vp=vle.getLayer().getMapContext().getViewPort();
180 191

  
181 192
	GeneralPathX gpx=new GeneralPathX();
......
193 204
		e.printStackTrace();
194 205
	}
195 206
//	geomFactory.createPolyline2D(gpx).draw((Graphics2D)g,vp,DefaultCADTool.axisReferencesSymbol);
196
	for (int i = 0; i < selectedRow.size(); i++) {
197
		DefaultRowEdited row=(DefaultRowEdited) selectedRow.get(i);
198
		DefaultFeature fea = (DefaultFeature) row.getLinkedRow();
207
	Iterator iterator=selection.iterator();
208
	while (iterator.hasNext()) {
209
		Feature feature = (Feature) iterator.next();
199 210

  
200
		Geometry geom = fea.getGeometry().cloneGeometry();
201
		Handler[] handlers = geom.getHandlers(IGeometry.SELECTHANDLER);
211
//	}
212
//	for (int i = 0; i < selectedRow.size(); i++) {
213
//		DefaultRowEdited row=(DefaultRowEdited) selectedRow.get(i);
214
//		DefaultFeature fea = (DefaultFeature) row.getLinkedRow();
202 215

  
216
		Geometry geom = ((Geometry)feature.getDefaultGeometry()).cloneGeometry();
217
		Handler[] handlers = geom.getHandlers(Geometry.SELECTHANDLER);
218

  
203 219
			for (int j = 0; j < handlers.length; j++) {
204 220
				Handler h = (Handler) handlers[j];
205 221
				Point2D p = h.getPoint();
......
214 230
							inter.getY() + dif.getY());
215 231
				}
216 232
			}
217
			DrawOperationContext doc=new DrawOperationContext();
233
//			DrawOperationContext doc=new DrawOperationContext();
218 234
			doc.setGraphics((Graphics2D)g);
219 235
			doc.setViewPort(getCadToolAdapter().getMapControl().getViewPort());
220 236
			doc.setSymbol(DefaultCADTool.axisReferencesSymbol);
......
239 255
    	 SymmetryCADToolState actualState = (SymmetryCADToolState) _fsm
240 256
				.getPreviousState();
241 257
		String status = actualState.getName();
242
		ArrayList selectedRow = getSelectedRows();
243
		ArrayList selectedRowAux=new ArrayList();
244 258
		VectorialLayerEdited vle = getVLE();
245
		VectorialEditableAdapter vea = vle.getVEA();
259
		FeatureStore featureStore=null;
260
		try {
261
			featureStore = vle.getFeatureStore();
262
		} catch (ReadException e1) {
263
			// TODO Auto-generated catch block
264
			e1.printStackTrace();
265
		}
266
		FeatureCollection selection = (FeatureCollection)featureStore.getSelection();
267
//		ArrayList selectedRowAux=new ArrayList();
268

  
269
//		VectorialEditableAdapter vea = vle.getVEA();
246 270
		if (status.equals("Symmetry.CutOrCopy")) {
247 271
			PluginServices.getMDIManager().setWaitCursor();
248 272
			try {
249
				vea.startComplexRow();
250
				for (int i = 0; i < selectedRow.size(); i++) {
251
					DefaultRowEdited row = (DefaultRowEdited) selectedRow
252
							.get(i);
253
					DefaultFeature fea = (DefaultFeature) row.getLinkedRow()
254
							.cloneRow();
273
				featureStore.getCommandsRecord().startComplex();
274
				Iterator iterator=selection.iterator();
275
				while (iterator.hasNext()) {
276
					Feature feature = (Feature) iterator.next();
255 277

  
256
					Geometry geom = fea.getGeometry();
278
//				}
279
//				for (int i = 0; i < selectedRow.size(); i++) {
280
//					DefaultRowEdited row = (DefaultRowEdited) selectedRow
281
//							.get(i);
282
//					DefaultFeature fea = (DefaultFeature) row.getLinkedRow()
283
//							.cloneRow();
284

  
285
					Geometry geom = (Geometry)feature.getDefaultGeometry();
257 286
					Handler[] handlers = geom
258 287
							.getHandlers(Geometry.SELECTHANDLER);
259 288

  
......
272 301

  
273 302
					if (s.equals(PluginServices.getText(this, "cut"))
274 303
							|| s.equals("s") || s.equals("S")) {
275
						vea.modifyRow(row.getIndex(), fea,
276
								getName(), EditionEvent.GRAPHIC);
304
						featureStore.update(feature);
305
//						vea.modifyRow(row.getIndex(), fea,
306
//								getName(), EditionEvent.GRAPHIC);
277 307

  
278
						selectedRowAux.add(new DefaultRowEdited(fea,
279
								IRowEdited.STATUS_MODIFIED, row.getIndex()));
308
//						selectedRowAux.add(new DefaultRowEdited(fea,
309
//								IRowEdited.STATUS_MODIFIED, row.getIndex()));
280 310
					} else {
281
						int index=addGeometry(geom,fea.getAttributes());
282
						selectedRowAux.add(new DefaultRowEdited(fea,
283
								IRowEdited.STATUS_ADDED, index));
311
						featureStore.insert(feature);
312
//						int index=addGeometry(geom,fea.getAttributes());
313
//						selectedRowAux.add(new DefaultRowEdited(fea,
314
//								IRowEdited.STATUS_ADDED, index));
284 315
						refresh();
285 316
					}
286 317

  
287 318
				}
288 319

  
289
				vea.endComplexRow(getName());
290
				vle.setSelectionCache(VectorialLayerEdited.SAVEPREVIOUS, selectedRowAux);
320
				featureStore.getCommandsRecord().endComplex(getName());
321
//				vle.setSelectionCache(VectorialLayerEdited.SAVEPREVIOUS, selectedRowAux);
291 322
				//clearSelection();
292 323
				//selectedRow.addAll(selectedRowAux);
293
			} catch (ValidateRowException e) {
294
				NotificationManager.addError(e.getMessage(),e);
295
			} catch (ExpansionFileWriteException e) {
296
				NotificationManager.addError(e.getMessage(),e);
297 324
			} catch (ReadException e) {
298 325
				NotificationManager.addError(e.getMessage(),e);
326
			} catch (DataException e) {
327
				// TODO Auto-generated catch block
328
				e.printStackTrace();
299 329
			}
300 330
			PluginServices.getMDIManager().restoreCursor();
301 331
		}

Also available in: Unified diff