View Javadoc

1   package edu.uci.ics.jung.visualization.renderers;
2   
3   import java.awt.BasicStroke;
4   import java.awt.Color;
5   import java.awt.Component;
6   import java.awt.Graphics;
7   import java.awt.Graphics2D;
8   import java.awt.RenderingHints;
9   import java.awt.Shape;
10  import java.awt.Stroke;
11  import java.awt.geom.AffineTransform;
12  import java.awt.geom.GeneralPath;
13  import java.util.Collections;
14  
15  import javax.swing.Icon;
16  
17  /**
18   * a simple Icon that draws a checkmark in the lower-right quadrant of its
19   * area. Used to draw a checkmark on Picked Vertices.
20   * @author Tom Nelson
21   */
22  public class Checkmark implements Icon {
23  
24  	GeneralPath path = new GeneralPath();
25  	AffineTransform highlight = AffineTransform.getTranslateInstance(-1,-1);
26  	AffineTransform lowlight = AffineTransform.getTranslateInstance(1,1);
27  	AffineTransform shadow = AffineTransform.getTranslateInstance(2,2);
28  	Color color;
29  	public Checkmark() {
30  		this(Color.green);
31  	}
32  	public Checkmark(Color color) {
33  		this.color = color;
34  		path.moveTo(10,17);
35  		path.lineTo(13,20);
36  		path.lineTo(20,13);
37  	}
38  	public void paintIcon(Component c, Graphics g, int x, int y) {
39  		Shape shape = AffineTransform.getTranslateInstance(x, y).createTransformedShape(path);
40  		Graphics2D g2d = (Graphics2D)g;
41  		g2d.addRenderingHints(Collections.singletonMap(RenderingHints.KEY_ANTIALIASING, 
42  				RenderingHints.VALUE_ANTIALIAS_ON));
43  		Stroke stroke = g2d.getStroke();
44  		g2d.setStroke(new BasicStroke(4));
45  		g2d.setColor(Color.darkGray);
46  		g2d.draw(shadow.createTransformedShape(shape));
47  		g2d.setColor(Color.black);
48  		g2d.draw(lowlight.createTransformedShape(shape));
49  		g2d.setColor(Color.white);
50  		g2d.draw(highlight.createTransformedShape(shape));
51  		g2d.setColor(color);
52  		g2d.draw(shape);
53  		g2d.setStroke(stroke);
54  	}
55  
56  	public int getIconWidth() {
57  		return 20;
58  	}
59  
60  	public int getIconHeight() {
61  		return 20;
62  	}
63  }