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 / PointEditVertexOperation.java @ 2616

History | View | Annotate | Download (2.57 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.exception.CreateGeometryException;
7
import org.gvsig.fmap.geom.primitive.Point;
8
import org.gvsig.fmap.geom.primitive.Primitive;
9
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
10
import org.gvsig.vectorediting.lib.spi.DefaultDrawingStatus;
11
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator;
12
import org.gvsig.vectorediting.lib.spi.EditingProviderManager;
13

    
14
/**
15
 * @author fdiaz
16
 *
17
 */
18
public class PointEditVertexOperation implements EditVertexOperation {
19

    
20
    /**
21
     *
22
     */
23
    public PointEditVertexOperation() {
24
        // TODO Auto-generated constructor stub
25
    }
26

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

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

    
37
    @Override
38
    public Geometry moveVertex(Primitive geom, int index, Point point) {
39
        if(index!=0) {
40
            return geom;
41
        }
42
        Point p = ((Point)geom);
43
        int min = point.getDimension() < p.getDimension() ? point.getDimension() : p.getDimension();
44
        for (int i = 0; i < min; i++) {
45
            p.setCoordinateAt(i, point.getCoordinateAt(i));
46
        }
47
        return p;
48
    }
49

    
50
    @Override
51
    public List<Point> getVertexesList(Primitive geom) {
52
        ArrayList<Point> vertexList = new ArrayList<>();
53
        if (geom instanceof Point) {
54
            Point point = (Point) geom;
55
            vertexList.add(point);
56
        }
57
        return vertexList;
58
    }
59

    
60
    @Override
61
    public int getNumVertex(Primitive geom) {
62
        return 1;
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
        EditingProviderManager editingProviderManager =
84
            EditingProviderLocator.getProviderManager();
85
        ISymbol pointSymbolEditing =
86
            editingProviderManager.getSymbol("point-symbol-editing");
87
        drawingStatus.addStatus(primitive, drawingStatus.getPreviewSymbol(), "");
88
        drawingStatus.addStatus(primitive, pointSymbolEditing, "");
89
    }
90

    
91
}