1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 /******************************************************************************
25 * ValidatingCellRenderer.java
26 *
27 *****************************************************************************/
28
29 package zeus.gui.editors;
30
31 import java.awt.*;
32 import javax.swing.*;
33 import javax.swing.table.*;
34
35
36 public class ValidatingCellRenderer extends DefaultTableCellRenderer {
37 protected int[] columns = null;
38 protected ValidatingModel model;
39
40 public ValidatingCellRenderer(ValidatingModel model) {
41 this.model = model;
42 }
43 public ValidatingCellRenderer(ValidatingModel model, int column) {
44 this(model);
45 columns = new int[1];
46 columns[0] = column;
47 }
48 public ValidatingCellRenderer(ValidatingModel model, int[] input) {
49 this(model);
50 columns = new int[input.length];
51 for(int i = 0; i < input.length; i++ )
52 columns[i] = input[i];
53 }
54
55 protected boolean checkColumn(int c) {
56 if ( columns == null || columns.length == 0 ) return true;
57
58 for(int i = 0; i < columns.length; i++ )
59 if ( columns[i] == c ) return true;
60
61 return false;
62 }
63
64 public Component getTableCellRendererComponent(JTable table,
65 Object value, boolean isSelected, boolean hasFocus,
66 int row, int column) {
67
68 if ( checkColumn(column) ) {
69 if ( model.isValidEntry(row,column) )
70 setForeground(Color.black);
71 else
72 setForeground(Color.red);
73 }
74 else
75 setForeground(Color.black);
76
77 return super.getTableCellRendererComponent(table, value,
78 isSelected, hasFocus, row, column);
79 }
80 }