Revision 2209 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.extendline/src/main/java/org/gvsig/vectorediting/lib/prov/extendline/ExtendLineEditingProvider.java
ExtendLineEditingProvider.java | ||
---|---|---|
40 | 40 |
import static org.gvsig.fmap.geom.Geometry.TYPES.MULTICURVE; |
41 | 41 |
import org.gvsig.fmap.geom.GeometryLocator; |
42 | 42 |
import org.gvsig.fmap.geom.GeometryManager; |
43 |
import org.gvsig.fmap.geom.GeometryUtils; |
|
44 | 43 |
import org.gvsig.fmap.geom.aggregate.MultiCurve; |
45 | 44 |
import org.gvsig.fmap.geom.exception.CreateGeometryException; |
46 | 45 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
... | ... | |
273 | 272 |
if (value instanceof Point) { |
274 | 273 |
Point point = (Point) value; |
275 | 274 |
|
276 |
// EditingProviderServices editingProviderServices = (EditingProviderServices) getProviderServices(); |
|
277 | 275 |
Geometry geometry = getGeometry(point); //editingProviderServices.getGeometryOfVisibleLayers(point, featureStore, mapContext); |
278 | 276 |
if (geometry != null) { |
279 | 277 |
values.put(parameter, geometry); |
280 | 278 |
insertedPoint = point; |
279 |
return; |
|
281 | 280 |
} |
282 | 281 |
|
283 |
// try { |
|
284 |
// double tolerance = |
|
285 |
// mapContext.getViewPort() |
|
286 |
// .toMapDistance(TOLERANCE_PIXELS); |
|
287 |
// |
|
288 |
// // Create buffer with tolerance to get geometries to be |
|
289 |
// // extended |
|
290 |
// Geometry buffer = point.buffer(tolerance); |
|
291 |
// FeatureSet geometries = getGeometryByBuffer(buffer); |
|
292 |
// |
|
293 |
// if (geometries.getSize() > 0) { |
|
294 |
// |
|
295 |
// geometries.accept(new Visitor() { |
|
296 |
// |
|
297 |
// public void visit(Object obj) |
|
298 |
// throws VisitCanceledException, BaseException { |
|
299 |
// Feature feature = (Feature) obj; |
|
300 |
// Geometry geometry = |
|
301 |
// feature.getDefaultGeometry(); |
|
302 |
// GeometryType geoType = |
|
303 |
// geometry.getGeometryType(); |
|
304 |
// |
|
305 |
// if (!geoType.isTypeOf(CURVE) |
|
306 |
// && !geoType.isTypeOf(MULTICURVE)) { |
|
307 |
// throw new InvalidEntryException(null); |
|
308 |
// } |
|
309 |
// } |
|
310 |
// }); |
|
311 |
// |
|
312 |
// insertedPoint = point; |
|
313 |
// geometryToExtendTo = geometries; |
|
314 |
// return; |
|
315 |
// } |
|
316 |
// } catch (BaseException e) { |
|
317 |
// throw new InvalidEntryException(e); |
|
318 |
// } |
|
319 | 282 |
} |
320 | 283 |
} |
321 | 284 |
throw new InvalidEntryException(null); |
... | ... | |
427 | 390 |
eFeature.setDefaultGeometry(extendedCurve); |
428 | 391 |
} |
429 | 392 |
|
430 |
// Curve extendedCurve |
|
431 |
// = extendLine(insertedPoint, (Curve) geometry, geometryToExtendTo); |
|
432 |
// eFeature.setDefaultGeometry(extendedCurve); |
|
433 | 393 |
selection.update(eFeature); |
434 | 394 |
} |
435 | 395 |
|
436 | 396 |
}); |
437 | 397 |
|
438 |
// geometryToExtendTo.accept(new Visitor() { |
|
439 |
// |
|
440 |
// public void visit(Object obj) |
|
441 |
// throws VisitCanceledException, BaseException { |
|
442 |
// Feature feature = (Feature) obj; |
|
443 |
// Geometry geometry = feature.getDefaultGeometry(); |
|
444 |
// EditableFeature eFeature = feature.getEditable(); |
|
445 |
// |
|
446 |
// if (geometry instanceof MultiCurve) { |
|
447 |
// |
|
448 |
// // Create new multicurve geometry |
|
449 |
// MultiCurve extendedMultiCurve = |
|
450 |
// createMultiCurve(geometry); |
|
451 |
// |
|
452 |
// // Iterate overs primitives and execute extend |
|
453 |
// // line operation |
|
454 |
// MultiCurve multiCurve = (MultiCurve) geometry; |
|
455 |
// |
|
456 |
// for (int i = 0; i < multiCurve |
|
457 |
// .getPrimitivesNumber(); i++) { |
|
458 |
// |
|
459 |
// Curve curve = multiCurve.getCurveAt(i); |
|
460 |
// Curve extendedCurve = |
|
461 |
// extendLine(insertedPoint, curve); |
|
462 |
// extendedMultiCurve.addCurve(extendedCurve); |
|
463 |
// } |
|
464 |
// |
|
465 |
// eFeature.setDefaultGeometry(extendedMultiCurve); |
|
466 |
// |
|
467 |
// } else if (geometry instanceof Curve) { |
|
468 |
// Curve extendedCurve = |
|
469 |
// extendLine(insertedPoint, (Curve) geometry); |
|
470 |
// eFeature.setDefaultGeometry(extendedCurve); |
|
471 |
// } |
|
472 |
// |
|
473 |
// geometryToExtendTo.update(eFeature); |
|
474 |
// } |
|
475 |
// }); |
|
476 |
// |
|
477 |
// geometryToExtendTo.dispose(); |
|
478 | 398 |
} catch (BaseException e) { |
479 | 399 |
throw new FinishServiceException(e); |
480 | 400 |
} |
Also available in: Unified diff