16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package sun.tools.jconsole.inspector;
27
28 import java.awt.Color;
29 import java.awt.Component;
30 import java.awt.Font;
31 import javax.swing.JTable;
32 import javax.swing.table.DefaultTableCellRenderer;
33 import javax.swing.table.DefaultTableModel;
34 import javax.swing.table.TableCellRenderer;
35
36 public abstract class XTable extends JTable {
37 static final int NAME_COLUMN = 0;
38 static final int VALUE_COLUMN = 1;
39 private Color defaultColor, editableColor, droppableColor, errorColor;
40 private Font normalFont, boldFont;
41
42 public XTable () {
43 super();
44 @SuppressWarnings("serial")
45 final TableSorter sorter = new TableSorter();
46 setModel(sorter);
47 sorter.addMouseListenerToHeaderInTable(this);
48 setRowSelectionAllowed(false);
49 setColumnSelectionAllowed(false);
50 setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
51 }
52
53 Color getDefaultColor() {
54 return defaultColor;
55 }
56
57 Color getEditableColor() {
58 return editableColor;
59 }
60
61 /**
62 * Called by TableSorter if a mouse event requests to sort the rows.
63 * @param column the column against which the rows are sorted
64 */
122 && isWritable(row));
123 }
124
125 //returns null, means no tool tip
126 public String getToolTip(int row, int column) {
127 return null;
128 }
129
130 /**
131 * This method sets read write rows to be blue, and other rows to be their
132 * default rendered colour.
133 */
134 @Override
135 public TableCellRenderer getCellRenderer(int row, int column) {
136 DefaultTableCellRenderer tcr =
137 (DefaultTableCellRenderer) super.getCellRenderer(row,column);
138 tcr.setToolTipText(getToolTip(row,column));
139 if (defaultColor == null) {
140 defaultColor = tcr.getForeground();
141 editableColor = Color.blue;
142 droppableColor = Color.green;
143 errorColor = Color.red;
144 // this sometimes happens for some reason
145 if (defaultColor == null) {
146 return tcr;
147 }
148 }
149 if (column != VALUE_COLUMN) {
150 tcr.setForeground(defaultColor);
151 return tcr;
152 }
153 if (isCellError(row,column)) {
154 tcr.setForeground(errorColor);
155 } else if (isCellEditable(row, column)) {
156 tcr.setForeground(editableColor);
157 } else {
158 tcr.setForeground(defaultColor);
159 }
160 return tcr;
161 }
162
|
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package sun.tools.jconsole.inspector;
27
28 import java.awt.Color;
29 import java.awt.Component;
30 import java.awt.Font;
31 import javax.swing.JTable;
32 import javax.swing.table.DefaultTableCellRenderer;
33 import javax.swing.table.DefaultTableModel;
34 import javax.swing.table.TableCellRenderer;
35
36 @SuppressWarnings("serial")
37 public abstract class XTable extends JTable {
38 static final int NAME_COLUMN = 0;
39 static final int VALUE_COLUMN = 1;
40 private Color defaultColor, editableColor, errorColor;
41 private Font normalFont, boldFont;
42
43 public XTable () {
44 super();
45 final TableSorter sorter = new TableSorter();
46 setModel(sorter);
47 sorter.addMouseListenerToHeaderInTable(this);
48 setRowSelectionAllowed(false);
49 setColumnSelectionAllowed(false);
50 setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
51 }
52
53 Color getDefaultColor() {
54 return defaultColor;
55 }
56
57 Color getEditableColor() {
58 return editableColor;
59 }
60
61 /**
62 * Called by TableSorter if a mouse event requests to sort the rows.
63 * @param column the column against which the rows are sorted
64 */
122 && isWritable(row));
123 }
124
125 //returns null, means no tool tip
126 public String getToolTip(int row, int column) {
127 return null;
128 }
129
130 /**
131 * This method sets read write rows to be blue, and other rows to be their
132 * default rendered colour.
133 */
134 @Override
135 public TableCellRenderer getCellRenderer(int row, int column) {
136 DefaultTableCellRenderer tcr =
137 (DefaultTableCellRenderer) super.getCellRenderer(row,column);
138 tcr.setToolTipText(getToolTip(row,column));
139 if (defaultColor == null) {
140 defaultColor = tcr.getForeground();
141 editableColor = Color.blue;
142 errorColor = Color.red;
143 // this sometimes happens for some reason
144 if (defaultColor == null) {
145 return tcr;
146 }
147 }
148 if (column != VALUE_COLUMN) {
149 tcr.setForeground(defaultColor);
150 return tcr;
151 }
152 if (isCellError(row,column)) {
153 tcr.setForeground(errorColor);
154 } else if (isCellEditable(row, column)) {
155 tcr.setForeground(editableColor);
156 } else {
157 tcr.setForeground(defaultColor);
158 }
159 return tcr;
160 }
161
|