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 @ 2616

History | View | Annotate | Download (2.98 KB)

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

    
3
import java.util.ArrayList;
4
import java.util.List;
5
import org.gvsig.fmap.geom.Geometry;
6
import org.gvsig.fmap.geom.GeometryLocator;
7
import org.gvsig.fmap.geom.GeometryManager;
8
import org.gvsig.fmap.geom.exception.CreateGeometryException;
9
import org.gvsig.fmap.geom.primitive.Circle;
10
import org.gvsig.fmap.geom.primitive.Point;
11
import org.gvsig.fmap.geom.primitive.Primitive;
12
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
13
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
14
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator;
15
import org.gvsig.vectorediting.lib.spi.EditingProviderManager;
16

    
17
public class CircleEditVertexOperation implements EditVertexOperation {
18

    
19
    public CircleEditVertexOperation() {
20
        // TODO Auto-generated constructor stub
21
    }
22

    
23
    @Override
24
    public Geometry insertVertex(Primitive geom, int index)
25
        throws CreateGeometryException {
26
        return null;
27
    }
28

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

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

    
57
        return vertexList;
58
    }
59

    
60
    @Override
61
    public int getNumVertex(Primitive geom) {
62
        return 2;
63
    }
64

    
65
    @Override
66
    public boolean canInsertVertex(Primitive geom, int index) {
67
        return false;
68
    }
69

    
70
    @Override
71
    public boolean canRemoveVertex(Primitive geom, int index) {
72
        return false;
73
    }
74

    
75
    @Override
76
    public boolean canMoveVertex(int index, Point point) {
77
        return true;
78
    }
79

    
80
    @Override
81
    public void addToDrawingStatus(DefaultDrawingStatus drawingStatus,
82
        Primitive primitive) {
83
        GeometryManager geometryManager = GeometryLocator.getGeometryManager();
84
        EditingProviderManager editingProviderManager =
85
            EditingProviderLocator.getProviderManager();
86
        ISymbol polygonSymbolEditing =
87
            editingProviderManager.getSymbol("polygon-symbol-editing");
88
        drawingStatus.addStatus(primitive, drawingStatus.getPreviewSymbol(), "");
89
        drawingStatus.addStatus(primitive, polygonSymbolEditing, "");
90
    }
91

    
92
}