Revision 575 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.spline/src/main/java/org/gvsig/vectorediting/lib/prov/spline/FilledSplineEditingProvider.java
FilledSplineEditingProvider.java | ||
---|---|---|
25 | 25 |
package org.gvsig.vectorediting.lib.prov.spline; |
26 | 26 |
|
27 | 27 |
import java.util.Iterator; |
28 |
import java.util.LinkedHashMap; |
|
29 | 28 |
|
30 | 29 |
import org.gvsig.fmap.geom.Geometry; |
31 | 30 |
import org.gvsig.fmap.geom.GeometryLocator; |
32 | 31 |
import org.gvsig.fmap.geom.GeometryManager; |
33 | 32 |
import org.gvsig.fmap.geom.aggregate.MultiSurface; |
33 |
import org.gvsig.fmap.geom.primitive.FilledSpline; |
|
34 | 34 |
import org.gvsig.fmap.geom.primitive.Point; |
35 |
import org.gvsig.fmap.geom.primitive.Spline; |
|
36 |
import org.gvsig.fmap.geom.primitive.Surface; |
|
37 | 35 |
import org.gvsig.fmap.geom.type.GeometryType; |
38 | 36 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
39 |
import org.gvsig.tools.ToolsLocator; |
|
40 | 37 |
import org.gvsig.tools.dynobject.DynObject; |
41 | 38 |
import org.gvsig.tools.exception.BaseException; |
42 |
import org.gvsig.tools.i18n.I18nManager; |
|
43 | 39 |
import org.gvsig.tools.service.spi.ProviderServices; |
44 | 40 |
import org.gvsig.vectorediting.lib.api.DrawingStatus; |
45 |
import org.gvsig.vectorediting.lib.api.EditingServiceParameter; |
|
46 | 41 |
import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException; |
47 | 42 |
import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException; |
48 | 43 |
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus; |
49 |
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter; |
|
50 | 44 |
import org.gvsig.vectorediting.lib.spi.EditingProvider; |
51 | 45 |
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator; |
52 | 46 |
import org.gvsig.vectorediting.lib.spi.EditingProviderManager; |
... | ... | |
76 | 70 |
EditingProviderLocator.getProviderManager(); |
77 | 71 |
ISymbol polygonSymbolEditing = editingProviderManager.getSymbol("polygon-symbol-editing"); |
78 | 72 |
ISymbol auxiliaryPointSymbolEditing = editingProviderManager.getSymbol("auxiliary-point-symbol-editing"); |
73 |
GeometryManager geometryManager = GeometryLocator.getGeometryManager(); |
|
79 | 74 |
|
80 |
|
|
81 | 75 |
if (values != null) { |
82 | 76 |
|
83 | 77 |
if (values.size() >= 1) { |
... | ... | |
92 | 86 |
try { |
93 | 87 |
int subtype = |
94 | 88 |
editingProviderServices.getSubType(featureStore); |
95 |
Spline spline = |
|
96 |
editingProviderServices.createSpline(values, subtype); |
|
97 | 89 |
|
98 |
spline.addVertex(mousePosition); |
|
90 |
FilledSpline filledSpline = (FilledSpline) geometryManager.create(Geometry.TYPES.FILLEDSPLINE, subtype); |
|
91 |
for (int i = 0; i < values.size(); i++) { |
|
92 |
filledSpline.addVertex(values.get(i)); |
|
93 |
} |
|
94 |
filledSpline.addVertex(mousePosition); |
|
95 |
filledSpline.addVertex(values.get(0)); |
|
99 | 96 |
|
100 |
spline.addVertex(values.get(0)); |
|
101 |
|
|
102 | 97 |
drawingStatus.addStatus(mousePosition, auxiliaryPointSymbolEditing, ""); |
103 |
drawingStatus.addStatus(spline, polygonSymbolEditing, "");
|
|
98 |
drawingStatus.addStatus(filledSpline, polygonSymbolEditing, "");
|
|
104 | 99 |
|
105 |
// drawingStatus.addGeometry(spline); |
|
106 | 100 |
} catch (BaseException e) { |
107 | 101 |
throw new DrawServiceException(e); |
108 | 102 |
} |
... | ... | |
117 | 111 |
|
118 | 112 |
EditingProviderServices editingProviderServices = |
119 | 113 |
(EditingProviderServices) getProviderServices(); |
120 |
GeometryManager geometryManager = |
|
121 |
GeometryLocator.getGeometryManager(); |
|
114 |
GeometryManager geometryManager = GeometryLocator.getGeometryManager(); |
|
122 | 115 |
|
123 | 116 |
try { |
124 |
// values.add(values.get(0)); |
|
125 |
|
|
126 | 117 |
int subtype = editingProviderServices.getSubType(featureStore); |
127 |
Spline spline = |
|
128 |
editingProviderServices.createSpline(values, subtype); |
|
129 | 118 |
|
130 |
spline.addVertex(values.get(0)); |
|
131 |
|
|
132 |
Surface surface = geometryManager.createPolygon(subtype); |
|
133 |
for (int i = 0; i < spline.getNumVertices(); i++) { |
|
134 |
surface.addVertex(spline.getVertex(i)); |
|
119 |
FilledSpline filledSpline = (FilledSpline) geometryManager.create(Geometry.TYPES.FILLEDSPLINE, subtype); |
|
120 |
for (int i = 0; i < values.size(); i++) { |
|
121 |
filledSpline.addVertex(values.get(i)); |
|
135 | 122 |
} |
123 |
filledSpline.addVertex(values.get(0)); |
|
136 | 124 |
|
137 |
GeometryType geomType = |
|
138 |
editingProviderServices.getGeomType(featureStore); |
|
125 |
GeometryType geomType = editingProviderServices.getGeomType(featureStore); |
|
139 | 126 |
|
140 | 127 |
if (geomType.isTypeOf(MULTISURFACE)) { |
128 |
MultiSurface multisurface; |
|
129 |
multisurface = |
|
130 |
GeometryLocator.getGeometryManager().createMultiSurface( |
|
131 |
geomType.getSubType()); |
|
132 |
multisurface.addSurface((FilledSpline) filledSpline); |
|
133 |
return multisurface; |
|
141 | 134 |
|
142 |
MultiSurface multiSurface = |
|
143 |
geometryManager.createMultiSurface(geomType |
|
144 |
.getSubType()); |
|
145 |
multiSurface.addSurface(surface); |
|
146 |
return multiSurface; |
|
147 |
|
|
148 | 135 |
} else { |
149 |
return surface;
|
|
136 |
return filledSpline;
|
|
150 | 137 |
} |
151 | 138 |
|
152 | 139 |
} catch (BaseException e) { |
Also available in: Unified diff