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

View differences:

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

  
48 49
import org.gvsig.fmap.data.ReadException;
50
import org.gvsig.fmap.data.feature.Feature;
49 51
import org.gvsig.fmap.data.feature.FeatureCollection;
52
import org.gvsig.fmap.data.feature.FeatureStore;
50 53
import org.gvsig.fmap.geom.Geometry;
54
import org.gvsig.fmap.geom.operation.GeometryOperationException;
55
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException;
56
import org.gvsig.fmap.geom.operation.tojts.ToJTS;
51 57
import org.gvsig.fmap.geom.util.Converter;
52 58
import org.gvsig.fmap.geom.util.UtilFunctions;
53 59

  
......
161 167
    		secondPoint = new Point2D.Double(x,y);
162 168
    		distance=secondPoint.distance(firstPoint);
163 169
    	} else if (status.equals("Equidistance.Position")) {
164
    		FeatureCollection selection = (FeatureCollection)getVLE().getFeatureStore().getSelection();
170
    		VectorialLayerEdited vle = getVLE();
171
    		FeatureStore featureStore=null;
172
			try {
173
				featureStore = vle.getFeatureStore();
174
			} catch (ReadException e) {
175
				// TODO Auto-generated catch block
176
				e.printStackTrace();
177
			}
178
//    		FeatureCollection selection = (FeatureCollection)getVLE().getFeatureStore().getSelection();
165 179
            ArrayList selectedRowAux=new ArrayList();
166
            VectorialLayerEdited vle = getVLE();
167
            VectorialEditableAdapter vea = vle.getVEA();
180
            Iterator iterator=featureStore.getSelection().iterator();
181
//            VectorialEditableAdapter vea = vle.getVEA();
168 182
            PluginServices.getMDIManager().setWaitCursor();
169
    			vea.startComplexRow();
170
    			for (int i = 0; i < selection.size(); i++) {
171
    				DefaultRowEdited row = (DefaultRowEdited) selectedRow
172
    						.get(i);
173
    				DefaultFeature fea = (DefaultFeature) row.getLinkedRow()
174
    						.cloneRow();
183
    			featureStore.getCommandsRecord().startComplex();
184
    			while (iterator.hasNext()) {
185
					Feature feature = (Feature) iterator.next();
175 186

  
176
    				Geometry geometry=compute(fea,new Point2D.Double(x,y));
187
//				}
188
//    			for (int i = 0; i < selection.size(); i++) {
189
//    				DefaultRowEdited row = (DefaultRowEdited) selectedRow
190
//    						.get(i);
191
//    				DefaultFeature fea = (DefaultFeature) row.getLinkedRow()
192
//    						.cloneRow();
193

  
194
    				Geometry geometry=compute(feature,new Point2D.Double(x,y));
177 195
    				addGeometry(geometry);
178 196
    			}
179 197

  
180
    			vea.endComplexRow(getName());
181
    			vle.setSelectionCache(VectorialLayerEdited.SAVEPREVIOUS, selectedRowAux);
198
    			featureStore.getCommandsRecord().endComplex(getName());
199
//    			vle.setSelectionCache(VectorialLayerEdited.SAVEPREVIOUS, selectedRowAux);
182 200
    			//clearSelection();
183 201
    			//selectedRow.addAll(selectedRowAux);
184 202
    		PluginServices.getMDIManager().restoreCursor();
185 203
    	}
186 204
    }
187 205

  
188
    private Geometry compute(DefaultFeature fea, Point2D position){
189
		Geometry geometry = fea.getGeometry();
206
    private Geometry compute(Feature fea, Point2D position){
207
		Geometry geometry = ((Geometry)fea.getDefaultGeometry()).cloneGeometry();
190 208
		int typeGeometry = geometry.getType();
191
		com.vividsolutions.jts.geom.Geometry g = geometry.toJTSGeometry();
209
		com.vividsolutions.jts.geom.Geometry g = null;
210
		try {
211
			g = (com.vividsolutions.jts.geom.Geometry)geometry.invokeOperation(ToJTS.CODE,null);
212
		} catch (GeometryOperationNotSupportedException e) {
213
			// TODO Auto-generated catch block
214
			e.printStackTrace();
215
		} catch (GeometryOperationException e) {
216
			// TODO Auto-generated catch block
217
			e.printStackTrace();
218
		}
219

  
220

  
221
//		com.vividsolutions.jts.geom.Geometry g = geometry.toJTSGeometry();
192 222
		GeometryFactory factory=g.getFactory();
193 223
	    Coordinate[] c2 = new Coordinate[2];
194 224
		com.vividsolutions.jts.geom.Geometry g2 = null;

Also available in: Unified diff