Revision 2616 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.polyline/src/main/java/org/gvsig/vectorediting/lib/prov/polyline/PolygonEditingProvider.java
PolygonEditingProvider.java | ||
---|---|---|
24 | 24 |
|
25 | 25 |
package org.gvsig.vectorediting.lib.prov.polyline; |
26 | 26 |
|
27 |
import java.util.LinkedHashMap; |
|
28 |
|
|
29 | 27 |
import org.gvsig.fmap.geom.Geometry; |
30 | 28 |
import org.gvsig.fmap.geom.GeometryLocator; |
31 | 29 |
import org.gvsig.fmap.geom.GeometryManager; |
32 |
import org.gvsig.fmap.geom.aggregate.MultiSurface;
|
|
33 |
import org.gvsig.fmap.geom.primitive.Surface;
|
|
30 |
import org.gvsig.fmap.geom.aggregate.MultiPolygon;
|
|
31 |
import org.gvsig.fmap.geom.primitive.Line;
|
|
34 | 32 |
import org.gvsig.fmap.geom.type.GeometryType; |
35 |
import org.gvsig.tools.ToolsLocator; |
|
36 | 33 |
import org.gvsig.tools.dynobject.DynObject; |
37 |
import org.gvsig.tools.i18n.I18nManager; |
|
38 | 34 |
import org.gvsig.tools.service.spi.ProviderServices; |
39 |
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE; |
|
40 | 35 |
import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException; |
41 |
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter; |
|
42 | 36 |
import org.gvsig.vectorediting.lib.spi.EditingProvider; |
43 | 37 |
|
44 | 38 |
public class PolygonEditingProvider extends PolylineEditingProvider implements |
... | ... | |
56 | 50 |
editingProviderServices.getGeomType(featureStore); |
57 | 51 |
GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
58 | 52 |
|
59 |
Surface surface = |
|
60 |
geomManager.createPolygon(storeGeomType.getSubType()); |
|
61 |
calculateFinalGeometry(storeGeomType, surface); |
|
62 |
surface = (Surface) closeGeometryIfNecessary(surface); |
|
53 |
Line line = calculatePolyline(null); |
|
54 |
if(line == null){ |
|
55 |
return null; |
|
56 |
} |
|
57 |
|
|
58 |
MultiPolygon polygons = line.toPolygons(); |
|
59 |
|
|
63 | 60 |
if (storeGeomType.isTypeOf(MULTISURFACE)) { |
64 |
MultiSurface multiSurface = |
|
65 |
geomManager.createMultiSurface(storeGeomType.getSubType()); |
|
66 |
multiSurface.addSurface(surface); |
|
67 |
return multiSurface; |
|
61 |
return polygons; |
|
68 | 62 |
} else { |
69 |
return surface;
|
|
63 |
return polygons.getPrimitiveAt(0);
|
|
70 | 64 |
} |
71 | 65 |
} catch (Exception e) { |
72 | 66 |
throw new FinishServiceException(e); |
Also available in: Unified diff