src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java

Print this page


   1 /*
   2  * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  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


 199 
 200     /**
 201      * {@inheritDoc}
 202      */
 203     @Override
 204     protected void rolloverColumnUpdated(int oldColumn, int newColumn) {
 205         header.repaint(header.getHeaderRect(oldColumn));
 206         header.repaint(header.getHeaderRect(newColumn));
 207     }
 208 
 209     /**
 210      * {@inheritDoc}
 211      */
 212     @Override
 213     public void propertyChange(PropertyChangeEvent evt) {
 214         if (SynthLookAndFeel.shouldUpdateStyle(evt)) {
 215             updateStyle((JTableHeader)evt.getSource());
 216         }
 217     }
 218 

 219     private class HeaderRenderer extends DefaultTableCellHeaderRenderer {
 220         HeaderRenderer() {
 221             setHorizontalAlignment(JLabel.LEADING);
 222             setName("TableHeader.renderer");
 223         }
 224 
 225         @Override
 226         public Component getTableCellRendererComponent(JTable table, Object value,
 227                                                        boolean isSelected,
 228                                                        boolean hasFocus,
 229                                                        int row, int column) {
 230 
 231             boolean hasRollover = (column == getRolloverColumn());
 232             if (isSelected || hasRollover || hasFocus) {
 233                 SynthLookAndFeel.setSelectedUI((SynthLabelUI)SynthLookAndFeel.
 234                              getUIOfType(getUI(), SynthLabelUI.class),
 235                              isSelected, hasFocus, table.isEnabled(),
 236                              hasRollover);
 237             } else {
 238                 SynthLookAndFeel.resetSelectedUI();


   1 /*
   2  * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  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


 199 
 200     /**
 201      * {@inheritDoc}
 202      */
 203     @Override
 204     protected void rolloverColumnUpdated(int oldColumn, int newColumn) {
 205         header.repaint(header.getHeaderRect(oldColumn));
 206         header.repaint(header.getHeaderRect(newColumn));
 207     }
 208 
 209     /**
 210      * {@inheritDoc}
 211      */
 212     @Override
 213     public void propertyChange(PropertyChangeEvent evt) {
 214         if (SynthLookAndFeel.shouldUpdateStyle(evt)) {
 215             updateStyle((JTableHeader)evt.getSource());
 216         }
 217     }
 218 
 219     @SuppressWarnings("serial") // Superclass is not serializable across versions
 220     private class HeaderRenderer extends DefaultTableCellHeaderRenderer {
 221         HeaderRenderer() {
 222             setHorizontalAlignment(JLabel.LEADING);
 223             setName("TableHeader.renderer");
 224         }
 225 
 226         @Override
 227         public Component getTableCellRendererComponent(JTable table, Object value,
 228                                                        boolean isSelected,
 229                                                        boolean hasFocus,
 230                                                        int row, int column) {
 231 
 232             boolean hasRollover = (column == getRolloverColumn());
 233             if (isSelected || hasRollover || hasFocus) {
 234                 SynthLookAndFeel.setSelectedUI((SynthLabelUI)SynthLookAndFeel.
 235                              getUIOfType(getUI(), SynthLabelUI.class),
 236                              isSelected, hasFocus, table.isEnabled(),
 237                              hasRollover);
 238             } else {
 239                 SynthLookAndFeel.resetSelectedUI();