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 / CircumferenceEditVertexOperation.java @ 575

History | View | Annotate | Download (2.77 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.Circumference;
11
import org.gvsig.fmap.geom.primitive.Point;
12
import org.gvsig.fmap.geom.primitive.Primitive;
13
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
14
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
15
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator;
16
import org.gvsig.vectorediting.lib.spi.EditingProviderManager;
17

    
18
public class CircumferenceEditVertexOperation implements EditVertexOperation {
19

    
20
    public CircumferenceEditVertexOperation() {
21
        // TODO Auto-generated constructor stub
22
    }
23

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

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

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

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

    
54
        return vertexList;
55
    }
56

    
57
    public int getNumVertex(Primitive geom) {
58
        return 2;
59
    }
60

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

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

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

    
73
    public void addToDrawingStatus(DefaultDrawingStatus drawingStatus,
74
        Primitive primitive) {
75
        EditingProviderManager editingProviderManager =
76
            EditingProviderLocator.getProviderManager();
77
        ISymbol lineSymbolEditing =
78
            editingProviderManager.getSymbol("line-symbol-editing");
79
        drawingStatus.addStatus(primitive, lineSymbolEditing, "");
80
    }
81

    
82
}