Revision 94 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.circlecr/src/main/java/org/gvsig/vectorediting/lib/prov/circlecr/CircleCREditingProvider.java
CircleCREditingProvider.java | ||
---|---|---|
20 | 20 |
import org.gvsig.fmap.geom.primitive.Circle; |
21 | 21 |
import org.gvsig.fmap.geom.primitive.Curve; |
22 | 22 |
import org.gvsig.fmap.geom.primitive.Point; |
23 |
import org.gvsig.fmap.geom.primitive.SurfaceAppearance; |
|
23 | 24 |
import org.gvsig.fmap.geom.type.GeometryType; |
24 | 25 |
import org.gvsig.tools.ToolsLocator; |
25 | 26 |
import org.gvsig.tools.dynobject.DynObject; |
... | ... | |
37 | 38 |
import org.gvsig.vectorediting.lib.spi.EditingProvider; |
38 | 39 |
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory; |
39 | 40 |
import org.gvsig.vectorediting.lib.spi.EditingProviderServices; |
41 |
import org.slf4j.Logger; |
|
42 |
import org.slf4j.LoggerFactory; |
|
40 | 43 |
|
41 | 44 |
public class CircleCREditingProvider extends AbstractEditingProvider implements |
42 | 45 |
EditingProvider { |
43 | 46 |
|
47 |
private static final Logger logger = LoggerFactory |
|
48 |
.getLogger(CircleCREditingProvider.class); |
|
49 |
|
|
44 | 50 |
private I18nManager i18nManager = ToolsLocator.getI18nManager(); |
45 | 51 |
|
46 | 52 |
protected GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
... | ... | |
71 | 77 |
Curve line = ((EditingProviderServices) getProviderServices()) |
72 | 78 |
.createLine(centerPoint.getX(), centerPoint.getY(), |
73 | 79 |
mousePosition.getX(), mousePosition.getY(), featureStore); |
74 |
Arc circle = ((EditingProviderServices) getProviderServices()) |
|
75 |
.createArc(centerPoint, mousePosition.distance(centerPoint), 0, |
|
76 |
2 * Math.PI, featureStore); |
|
80 |
double r = mousePosition.distance(centerPoint); |
|
81 |
Arc circle = ((EditingProviderServices) getProviderServices()).createArc(centerPoint, mousePosition.distance(centerPoint), 0, 2 * Math.PI, featureStore); |
|
77 | 82 |
geometries.addGeometry(circle); |
78 | 83 |
geometries.addGeometry(centerPoint); |
79 | 84 |
geometries.addGeometry(line); |
... | ... | |
163 | 168 |
GeometryType storeGeomType = editingProviderServices |
164 | 169 |
.getGeomType(featureStore); |
165 | 170 |
Geometry geometry = null; |
166 |
if (storeGeomType.isTypeOf(SURFACE) || storeGeomType.isTypeOf(GEOMETRY)) { |
|
171 |
if (storeGeomType.isTypeOf(MULTISURFACE)) { |
|
172 |
geometry = editingProviderServices.createCircle(centerPoint, |
|
173 |
radiusValue, featureStore); |
|
174 |
MultiSurface multisurface; |
|
175 |
multisurface = geomManager.createMultiSurface(storeGeomType |
|
176 |
.getSubType()); |
|
177 |
multisurface.addSurface((Circle) geometry); |
|
178 |
return multisurface; |
|
179 |
} else { |
|
167 | 180 |
geometry = editingProviderServices.createCircle(centerPoint, |
168 | 181 |
radiusValue, featureStore); |
169 | 182 |
} |
170 |
else if (storeGeomType.isTypeOf(MULTISURFACE)) { |
|
171 |
geometry = editingProviderServices.createCircle(centerPoint, |
|
172 |
radiusValue, featureStore); |
|
173 |
MultiSurface multisurface; |
|
174 |
multisurface = geomManager.createMultiSurface(storeGeomType |
|
175 |
.getSubType()); |
|
176 |
multisurface.addSurface((Circle) geometry); |
|
177 |
} |
|
178 | 183 |
return geometry; |
179 | 184 |
} |
180 | 185 |
catch (Exception e) { |
... | ... | |
183 | 188 |
} |
184 | 189 |
|
185 | 190 |
public void start() throws StartServiceException { |
191 |
//TODO: A?adir comprobaci?n de si se puede realizar la operaci?n |
|
186 | 192 |
this.values = new HashMap<EditingServiceParameter, Object>(); |
187 | 193 |
} |
188 | 194 |
|
Also available in: Unified diff