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

View differences:

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