KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jimm > datavision > gui > FWBorder


1 package jimm.datavision.gui;
2 import java.awt.Component JavaDoc;
3 import java.awt.Graphics JavaDoc;
4 import java.awt.Color JavaDoc;
5 import javax.swing.border.AbstractBorder JavaDoc;
6
7 /**
8  * A border for field widgets.
9  *
10  * @author Jim Menard, <a HREF="mailto:jimm@io.com">jimm@io.com</a>
11  */

12 class FWBorder extends AbstractBorder JavaDoc {
13
14 protected static final int CORNER_LINE_LEN = 5;
15 protected static final int SELECTED_BORDER_THICKNESS = 1;
16
17 protected FieldWidget fw;
18
19 FWBorder(FieldWidget fw) {
20     this.fw = fw;
21 }
22
23 public void paintBorder(Component JavaDoc c, Graphics JavaDoc g, int x, int y, int width,
24             int height)
25 {
26     --width;
27     --height;
28
29     if (fw.isSelected()) {
30     g.setColor(Color.gray);
31     for (int i = 0; i < SELECTED_BORDER_THICKNESS; ++i)
32         g.drawRect(x+i, y+i, width-2*i, height-2*i);
33     }
34     else {
35     g.setColor(fw.getColor());
36     g.setPaintMode();
37     // top left
38
g.drawLine(x, y, x + CORNER_LINE_LEN, y);
39     g.drawLine(x, y, x, y + CORNER_LINE_LEN);
40     // top right
41
g.drawLine(x + width - CORNER_LINE_LEN, y, x + width, y);
42     g.drawLine(x + width, y, x + width, y + CORNER_LINE_LEN);
43     // bottom right
44
g.drawLine(x + width - CORNER_LINE_LEN, y + height, x + width,
45            y + height);
46     g.drawLine(x + width, y + height - CORNER_LINE_LEN, x + width,
47            y + height);
48     // bottom left
49
g.drawLine(x, y + height, x + CORNER_LINE_LEN, y + height);
50     g.drawLine(x, y + height - CORNER_LINE_LEN, x, y + height);
51     }
52 }
53
54 }
55
Popular Tags