1 package jimm.datavision.gui; 2 import java.awt.Component ; 3 import java.awt.Graphics ; 4 import java.awt.Color ; 5 import javax.swing.border.AbstractBorder ; 6 7 12 class FWBorder extends AbstractBorder { 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 c, Graphics 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 g.drawLine(x, y, x + CORNER_LINE_LEN, y); 39 g.drawLine(x, y, x, y + CORNER_LINE_LEN); 40 g.drawLine(x + width - CORNER_LINE_LEN, y, x + width, y); 42 g.drawLine(x + width, y, x + width, y + CORNER_LINE_LEN); 43 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 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 |