J. Duke | 319a3b9 | 2007-12-01 00:00:00 +0000 | [diff] [blame^] | 1 | /* |
| 2 | * Copyright 1997-1998 Sun Microsystems, Inc. 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. Sun designates this |
| 8 | * particular file as subject to the "Classpath" exception as provided |
| 9 | * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, |
| 22 | * CA 95054 USA or visit www.sun.com if you need additional information or |
| 23 | * have any questions. |
| 24 | */ |
| 25 | |
| 26 | package javax.swing.plaf; |
| 27 | |
| 28 | |
| 29 | /** |
| 30 | * This interface is used to mark objects created by ComponentUI delegates. |
| 31 | * The <code>ComponentUI.installUI()</code> and |
| 32 | * <code>ComponentUI.uninstallUI()</code> methods can use this interface |
| 33 | * to decide if a properties value has been overridden. For example, the |
| 34 | * JList cellRenderer property is initialized by BasicListUI.installUI(), |
| 35 | * only if it's initial value is null: |
| 36 | * <pre> |
| 37 | * if (list.getCellRenderer() == null) { |
| 38 | * list.setCellRenderer((ListCellRenderer)(UIManager.get("List.cellRenderer"))); |
| 39 | * } |
| 40 | * </pre> |
| 41 | * At uninstallUI() time we reset the property to null if its value |
| 42 | * is an instance of UIResource: |
| 43 | * <pre> |
| 44 | * if (list.getCellRenderer() instanceof UIResource) { |
| 45 | * list.setCellRenderer(null); |
| 46 | * } |
| 47 | *</pre> |
| 48 | * This pattern applies to all properties except the java.awt.Component |
| 49 | * properties font, foreground, and background. If one of these |
| 50 | * properties isn't initialized, or is explicitly set to null, |
| 51 | * its container provides the value. For this reason the |
| 52 | * <code>"== null"</code> is unreliable when installUI() is called |
| 53 | * to dynamically change a components look and feel. So at installUI() |
| 54 | * time we check to see if the current value is a UIResource: |
| 55 | *<pre> |
| 56 | * if (!(list.getFont() instanceof UIResource)) { |
| 57 | * list.setFont(UIManager.getFont("List.font")); |
| 58 | * } |
| 59 | * </pre> |
| 60 | * |
| 61 | * @see ComponentUI |
| 62 | * @author Hans Muller |
| 63 | * |
| 64 | */ |
| 65 | |
| 66 | public interface UIResource { |
| 67 | } |