Statistics
| Revision:

gvsig-vectorediting / org.gvsig.vectorediting / trunk / org.gvsig.vectorediting / org.gvsig.vectorediting.lib / org.gvsig.vectorediting.lib.prov / org.gvsig.vectorediting.lib.prov.editvertex / src / main / java / org / gvsig / vectorediting / lib / prov / editvertex / operation / CircleEditVertexOperation.java @ 368

History | View | Annotate | Download (2.87 KB)

1
package org.gvsig.vectorediting.lib.prov.editvertex.operation;
2

    
3
import java.util.ArrayList;
4
import java.util.List;
5

    
6
import org.gvsig.fmap.geom.Geometry;
7
import org.gvsig.fmap.geom.GeometryLocator;
8
import org.gvsig.fmap.geom.GeometryManager;
9
import org.gvsig.fmap.geom.exception.CreateGeometryException;
10
import org.gvsig.fmap.geom.primitive.Circle;
11
import org.gvsig.fmap.geom.primitive.Envelope;
12
import org.gvsig.fmap.geom.primitive.Line;
13
import org.gvsig.fmap.geom.primitive.Point;
14
import org.gvsig.fmap.geom.primitive.Primitive;
15
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
16
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
17
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator;
18
import org.gvsig.vectorediting.lib.spi.EditingProviderManager;
19

    
20
public class CircleEditVertexOperation implements EditVertexOperation {
21

    
22
    public CircleEditVertexOperation() {
23
        // TODO Auto-generated constructor stub
24
    }
25

    
26
    public Geometry insertVertex(Primitive geom, int index)
27
        throws CreateGeometryException {
28
        return null;
29
    }
30

    
31
    public Geometry removeVertex(Primitive geom, int index)
32
        throws CreateGeometryException {
33
        return null;
34
    }
35

    
36
    public Geometry moveVertex(Primitive geom, int index, Point point) {
37
        Circle result = (Circle) geom.cloneGeometry();
38
        if(index == 0){
39
            result.setPoints(point, ((Circle)geom).getRadious());
40
        } else if (index == 1){
41
            result.setPoints(((Circle)geom).getCenter(), point);
42
        }
43
        return result;
44
    }
45

    
46
    public List<Point> getVertexesList(Primitive geom) throws CreateGeometryException {
47
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
48
        ArrayList<Point> vertexList = new ArrayList<Point>();
49
        Circle circle = (Circle) geom;
50
        Point center = circle.getCenter();
51
        vertexList.add(center);
52
        vertexList.add(geometryManager.createPoint(center.getX()
53
            + circle.getRadious(), center.getY(), geom
54
            .getGeometryType().getSubType()));
55

    
56
        return vertexList;
57
    }
58

    
59
    public int getNumVertex(Primitive geom) {
60
        return 2;
61
    }
62

    
63
    public boolean canInsertVertex(Primitive geom, int index) {
64
        return false;
65
    }
66

    
67
    public boolean canRemoveVertex(Primitive geom, int index) {
68
        return false;
69
    }
70

    
71
    public boolean canMoveVertex(int index, Point point) {
72
        return true;
73
    }
74

    
75
    public void addToDrawingStatus(DefaultDrawingStatus drawingStatus,
76
        Primitive primitive) {
77
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
78
        EditingProviderManager editingProviderManager =
79
            EditingProviderLocator.getProviderManager();
80
        ISymbol polygonSymbolEditing =
81
            editingProviderManager.getSymbol("polygon-symbol-editing");
82
        drawingStatus.addStatus(primitive, polygonSymbolEditing, "");
83
    }
84

    
85
}