Revision 575 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.circle3p/src/main/java/org/gvsig/vectorediting/lib/prov/circle3p/Circumference3PEditingProvider.java
Circumference3PEditingProvider.java | ||
---|---|---|
26 | 26 |
|
27 | 27 |
import org.gvsig.fmap.geom.Geometry; |
28 | 28 |
import org.gvsig.fmap.geom.GeometryLocator; |
29 |
import org.gvsig.fmap.geom.GeometryManager; |
|
29 | 30 |
import org.gvsig.fmap.geom.aggregate.MultiCurve; |
30 |
import org.gvsig.fmap.geom.primitive.Arc;
|
|
31 |
import org.gvsig.fmap.geom.primitive.Circle;
|
|
31 |
import org.gvsig.fmap.geom.exception.CreateGeometryException;
|
|
32 |
import org.gvsig.fmap.geom.primitive.Circumference;
|
|
32 | 33 |
import org.gvsig.fmap.geom.primitive.Point; |
33 | 34 |
import org.gvsig.fmap.geom.type.GeometryType; |
35 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
|
34 | 36 |
import org.gvsig.tools.dynobject.DynObject; |
35 | 37 |
import org.gvsig.tools.service.spi.ProviderServices; |
36 |
import org.gvsig.vectorediting.lib.api.DrawingStatus; |
|
37 | 38 |
import org.gvsig.vectorediting.lib.api.exceptions.FinishServiceException; |
39 |
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus; |
|
38 | 40 |
import org.gvsig.vectorediting.lib.spi.EditingProvider; |
41 |
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator; |
|
42 |
import org.gvsig.vectorediting.lib.spi.EditingProviderManager; |
|
39 | 43 |
import org.gvsig.vectorediting.lib.spi.EditingProviderServices; |
40 | 44 |
|
41 | 45 |
public class Circumference3PEditingProvider extends Circle3PEditingProvider |
... | ... | |
49 | 53 |
@Override |
50 | 54 |
public Geometry finish() throws FinishServiceException { |
51 | 55 |
|
52 |
Point thridPointValue = (Point) values.get(thirdPoint); |
|
56 |
GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
57 |
|
|
53 | 58 |
EditingProviderServices editingProviderServices = |
54 | 59 |
(EditingProviderServices) getProviderServices(); |
55 | 60 |
|
... | ... | |
65 | 70 |
secondPointValue, thirdPointValue, subtype); |
66 | 71 |
double radius = center.distance(firstPointValue); |
67 | 72 |
|
68 |
Arc circumference = |
|
69 |
editingProviderServices.createArc(center, radius, 0, |
|
70 |
2 * Math.PI, subtype); |
|
73 |
Circumference circumference = (Circumference)geomManager.create(CIRCUMFERENCE, subtype); |
|
74 |
circumference.setPoints(center, radius); |
|
71 | 75 |
|
72 | 76 |
GeometryType geomType = |
73 | 77 |
editingProviderServices.getGeomType(featureStore); |
74 | 78 |
|
75 | 79 |
if (geomType.isTypeOf(MULTICURVE)) { |
76 |
|
|
77 |
MultiCurve multiCurve; |
|
78 |
multiCurve = |
|
80 |
MultiCurve multicurve; |
|
81 |
multicurve = |
|
79 | 82 |
GeometryLocator.getGeometryManager().createMultiCurve( |
80 | 83 |
geomType.getSubType()); |
81 |
multiCurve.addCurve(circumference);
|
|
82 |
return multiCurve;
|
|
84 |
multicurve.addCurve((Circumference) circumference);
|
|
85 |
return multicurve;
|
|
83 | 86 |
} |
84 | 87 |
|
85 | 88 |
return circumference; |
... | ... | |
93 | 96 |
return Circumference3PEditingProviderFactory.PROVIDER_NAME; |
94 | 97 |
} |
95 | 98 |
|
99 |
|
|
100 |
/** |
|
101 |
* @param drawingStatus |
|
102 |
* @param subtype |
|
103 |
* @param center |
|
104 |
* @param radius |
|
105 |
* @throws CreateGeometryException |
|
106 |
*/ |
|
107 |
protected void addTemporaryGeometryToDrawingStatus(DefaultDrawingStatus drawingStatus, int subtype, Point center, double radius) |
|
108 |
throws CreateGeometryException { |
|
109 |
EditingProviderManager editingProviderManager = |
|
110 |
EditingProviderLocator.getProviderManager(); |
|
111 |
ISymbol lineSymbolEditing = editingProviderManager.getSymbol("line-symbol-editing"); |
|
112 |
GeometryManager geomManager = GeometryLocator.getGeometryManager(); |
|
113 |
Circumference circumference = (Circumference)geomManager.create(Geometry.TYPES.CIRCUMFERENCE, subtype); |
|
114 |
circumference.setPoints(center, radius); |
|
115 |
drawingStatus.addStatus(circumference, lineSymbolEditing, ""); |
|
116 |
} |
|
117 |
|
|
96 | 118 |
} |
Also available in: Unified diff