Statistics
| Revision:

root / tags / v2_0_0_Build_2049 / applications / appgvSIG / src / org / gvsig / app / project / documents / view / toolListeners / snapping / snappers / FinalPointSnapper.java @ 38460

History | View | Annotate | Download (1.95 KB)

1
package org.gvsig.app.project.documents.view.toolListeners.snapping.snappers;
2

    
3
import java.awt.geom.Point2D;
4

    
5
import org.gvsig.fmap.geom.Geometry;
6
import org.gvsig.fmap.geom.handler.Handler;
7
import org.gvsig.fmap.mapcontrol.PrimitivesDrawer;
8
import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperVectorial;
9
import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.impl.AbstractSnapper;
10
import org.gvsig.i18n.Messages;
11

    
12

    
13
public class FinalPointSnapper extends AbstractSnapper implements ISnapperVectorial {
14
        public Point2D getSnapPoint(Point2D point, Geometry geom, double tolerance, Point2D lastPointEntered) {
15
                Point2D resul = null;
16
                Handler[] handlers = geom.getHandlers(Geometry.SELECTHANDLER);
17
                //                Point2D initPoint=handlers[0].getPoint();
18
                //                Point2D endPoint=handlers[handlers.length-1].getPoint();
19
                //                if (initPoint.equals(endPoint))
20
                //                        return resul;
21

    
22
                double minDist = tolerance;
23
                //                double dist = initPoint.distance(point);
24
                //                if (dist < minDist) {
25
                //                        resul = initPoint;
26
                //                        minDist = dist;
27
                //                }
28
                //
29
                //                dist = endPoint.distance(point);
30
                //                if (dist < minDist) {
31
                //                        resul = endPoint;
32
                //                }
33

    
34
                for (int j = 0; j < handlers.length; j++) {
35
                        Point2D handlerPoint = handlers[j].getPoint();
36
                        double dist = handlerPoint.distance(point);
37
                        if ((dist < minDist)) {
38
                                resul = handlerPoint;
39
                                minDist = dist;
40
                        }
41
                }
42

    
43
                return resul;
44
        }
45

    
46
        public String getToolTipText() {
47
            return Messages.getText("Final_point");
48
        }
49

    
50
        /*
51
         * (non-Javadoc)
52
         * @see org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper#draw(org.gvsig.fmap.mapcontrol.PrimitivesDrawer, java.awt.geom.Point2D)
53
         */
54
        public void draw(PrimitivesDrawer primitivesDrawer, Point2D pPixels) {
55
                primitivesDrawer.setColor(getColor());
56

    
57
                int half = getSizePixels() / 2;
58
                primitivesDrawer.drawRect((int) (pPixels.getX() - half),
59
                                (int) (pPixels.getY() - half),
60
                                getSizePixels(), getSizePixels());
61
        }
62
}