Statistics
| Revision:

root / branches / v2_0_0_prep / applications / appgvSIG / src / org / gvsig / app / project / documents / view / toolListeners / snapping / snappers / CentralPointSnapper.java @ 29598

History | View | Annotate | Download (2.02 KB)

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

    
3
import java.awt.Graphics;
4
import java.awt.geom.Point2D;
5

    
6
import org.gvsig.fmap.geom.Geometry;
7
import org.gvsig.fmap.geom.handler.CenterHandler;
8
import org.gvsig.fmap.geom.handler.Handler;
9
import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.AbstractSnapper;
10
import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapperVectorial;
11

    
12

    
13
/**
14
 * Central point snapper.
15
 *
16
 * @author Vicente Caballero Navarro
17
 */
18
public class CentralPointSnapper extends AbstractSnapper
19
    implements ISnapperVectorial {
20
        /* (non-Javadoc)
21
     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getSnapPoint(Point2D point,
22
     * IGeometry geom,double tolerance, Point2D lastPointEntered)
23
     */
24
        public Point2D getSnapPoint(Point2D point, Geometry geom,
25
        double tolerance, Point2D lastPointEntered) {
26
        Point2D resul = null;
27

    
28
        Handler[] handlers = geom.getHandlers(Geometry.SELECTHANDLER);
29

    
30
        double minDist = tolerance;
31

    
32
        for (int j = 0; j < handlers.length; j++) {
33
            if (handlers[j] instanceof CenterHandler) {
34
                Point2D handlerPoint = handlers[j].getPoint();
35
                double dist = handlerPoint.distance(point);
36

    
37
                if ((dist < minDist)) {
38
                    resul = handlerPoint;
39
                    minDist = dist;
40
                }
41
            }
42
        }
43

    
44
        return resul;
45
    }
46
        /* (non-Javadoc)
47
     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#getToolTipText()
48
     */
49
    public String getToolTipText() {
50
        return "central_point";
51
    }
52

    
53
    /* (non-Javadoc)
54
     * @see com.iver.cit.gvsig.gui.cad.snapping.ISnapper#draw(java.awt.Graphics, java.awt.geom.Point2D)
55
     */
56
    public void draw(Graphics g, Point2D pPixels) {
57
        g.setColor(getColor());
58

    
59
        int half = getSizePixels() / 2;
60
        g.drawOval((int) (pPixels.getX() - half),
61
            (int) (pPixels.getY() - half), getSizePixels(), getSizePixels());
62
    }
63
}