src/share/classes/sun/tools/jconsole/inspector/XTable.java

Print this page




  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