JAL-1807 includes ?j2sdebug flag and DebugJS._(msg)
[jalviewjs.git] / site / j2s / swingjs / plaf / HTML5LookAndFeel.java
index b4fb2b3..fd87de8 100644 (file)
-/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package swingjs.plaf;
-
-//import jsjava.awt.AWTEvent;
-import jsjava.awt.Color;
-import jsjava.awt.Dimension;
-import jsjava.awt.Font;
-import jsjavax.swing.DefaultListCellRenderer;
-import jsjavax.swing.JTextField;
-//import jsjava.awt.Component;
-//import jsjava.awt.Dimension;
-//import jsjava.awt.Font;
-//import jsjava.awt.Point;
-//import jsjava.awt.Toolkit;
-//import jsjava.awt.Window;
-//import jsjava.awt.event.AWTEventListener;
-//import jsjava.awt.event.ActionEvent;
-//import jsjava.awt.event.KeyEvent;
-//import jsjava.awt.event.MouseEvent;
-//import jsjava.beans.PropertyChangeEvent;
-//import jsjava.beans.PropertyChangeListener;
-//import jsjava.beans.PropertyVetoException;
-//import java.io.BufferedInputStream;
-//import java.io.ByteArrayInputStream;
-//import java.io.ByteArrayOutputStream;
-//import java.io.IOException;
-//import java.io.InputStream;
-////import java.io.Serializable;
-//import jsjava.security.AccessController;
-//import jsjava.security.PrivilegedAction;
-//import java.util.HashSet;
-//import jsjava.util.Locale;
-//
-////import jsjavax.sound.sampled.AudioInputStream;
-////import jsjavax.sound.sampled.AudioSystem;
-////import jsjavax.sound.sampled.Clip;
-////import jsjavax.sound.sampled.DataLine;
-////import jsjavax.sound.sampled.LineEvent;
-////import jsjavax.sound.sampled.LineListener;
-//import jsjavax.swing.AbstractAction;
-//import jsjavax.swing.Action;
-//import jsjavax.swing.ActionMap;
-//import jsjavax.swing.DefaultListCellRenderer;
-//import jsjavax.swing.JComponent;
-////import jsjavax.swing.JInternalFrame;
-//import jsjavax.swing.JTextField;
-//import jsjavax.swing.LookAndFeel;
-//import jsjavax.swing.MenuElement;
-//import jsjavax.swing.MenuSelectionManager;
-//import jsjavax.swing.SwingUtilities;
-import jsjavax.swing.LookAndFeel;
-import jsjavax.swing.UIDefaults;
-//import jsjavax.swing.UIManager;
-//import jsjavax.swing.border.BevelBorder;
-//import jsjavax.swing.plaf.ActionMapUIResource;
-//import jsjavax.swing.plaf.BorderUIResource;
-import jsjavax.swing.plaf.ColorUIResource;
-import jsjavax.swing.plaf.FontUIResource;
-//import jsjavax.swing.plaf.ComponentUI;
-import jsjavax.swing.plaf.DimensionUIResource;
-//import jsjavax.swing.plaf.DimensionUIResource;
-//import jsjavax.swing.plaf.InsetsUIResource;
-////import jsjavax.swing.plaf.basic.popupMenuUI;
-////import jsjavax.swing.plaf.basic.BasicSplitPaneDivider;
-//import jsjavax.swing.text.DefaultEditorKit;
-//
-//import jssun.awt.AppContext;
-//import jssun.swing.SwingUtilities2;
-////import jssun.swing.SwingLazyValue;
-//
-import jsjavax.swing.plaf.InsetsUIResource;
-import jssun.swing.SwingLazyValue;
-
-/**
- * A base class to use in creating a look and feel for Swing.
- * <p>
- * Each of the {@code ComponentUI}s provided by {@code BasicLookAndFeel} derives
- * its behavior from the defaults table. Unless otherwise noted each of the
- * {@code ComponentUI} implementations in this package document the set of
- * defaults they use. Unless otherwise noted the defaults are installed at the
- * time {@code installUI} is invoked, and follow the recommendations outlined in
- * {@code LookAndFeel} for installing defaults.
- * <p>
- * <strong>Warning:</strong> Serialized objects of this class will not be
- * compatible with future Swing releases. The current serialization support is
- * appropriate for short term storage or RMI between applications running the
- * same version of Swing. As of 1.4, support for long term storage of all
- * JavaBeans<sup><font size="-2">TM</font></sup> has been added to the
- * <code>java.beans</code> package. Please see {@link java.beans.XMLEncoder}.
- * 
- * @author unattributed
- */
-public class HTML5LookAndFeel extends LookAndFeel {
-       // /**
-       // * Whether or not the developer has created a JPopupMenu.
-       // */
-       // static boolean needsEventHelper;
-       //
-       // /**
-       // * Lock used when manipulating clipPlaying.
-       // */
-       // private transient Object audioLock = new Object();
-       // /**
-       // * The Clip that is currently playing (set in AudioAction).
-       // */
-       // private Clip clipPlaying;
-       //
-       // AWTEventHelper invocator = null;
-       //
-       // /*
-       // * Listen for our AppContext being disposed
-       // */
-       // private PropertyChangeListener disposer = null;
-       //
-       /**
-        * Returns the look and feel defaults. The returned {@code UIDefaults} is
-        * populated by invoking, in order, {@code initClassDefaults},
-        * {@code initSystemColorDefaults} and {@code initComponentDefaults}.
-        * <p>
-        * While this method is public, it should only be invoked by the
-        * {@code UIManager} when the look and feel is set as the current look and
-        * feel and after {@code initialize} has been invoked.
-        * 
-        * @return the look and feel defaults
-        * 
-        * @see #initClassDefaults
-        * @see #initSystemColorDefaults
-        * @see #initComponentDefaults
-        */
-       public UIDefaults getDefaults() {
-               UIDefaults table = new UIDefaults(610, 0.75f);
-
-               initClassDefaults(table);
-               initSystemColorDefaults(table);
-               initComponentDefaults(table);
-
-               return table;
-       }
-
-       /**
-        * {@inheritDoc}
-        */
-       public void initialize() {
-               // if (needsEventHelper) {
-               // installAWTEventListener();
-               // }
-       }
-
-       void installAWTEventListener() {
-               // if (invocator == null) {
-               // invocator = new AWTEventHelper();
-               // needsEventHelper = true;
-               //
-               // // Add a PropertyChangeListener to our AppContext so we're alerted
-               // // when the AppContext is disposed(), at which time this laf should
-               // // be uninitialize()d.
-               // disposer = new PropertyChangeListener() {
-               // public void propertyChange(PropertyChangeEvent prpChg) {
-               // uninitialize();
-               // }
-               // };
-               // AppContext.getAppContext().addPropertyChangeListener(
-               // AppContext.GUI_DISPOSED,
-               // disposer);
-               // }
-       }
-
-       /**
-        * {@inheritDoc}
-        */
-       public void uninitialize() {
-               // AppContext context = AppContext.getAppContext();
-               // synchronized (popupMenuUI.MOUSE_GRABBER_KEY) {
-               // Object grabber = context.get(popupMenuUI.MOUSE_GRABBER_KEY);
-               // if (grabber != null) {
-               // ((popupMenuUI.MouseGrabber)grabber).uninstall();
-               // }
-               // }
-               // synchronized (popupMenuUI.MENU_KEYBOARD_HELPER_KEY) {
-               // Object helper =
-               // context.get(popupMenuUI.MENU_KEYBOARD_HELPER_KEY);
-               // if (helper != null) {
-               // ((popupMenuUI.MenuKeyboardHelper)helper).uninstall();
-               // }
-               // }
-               //
-               // if(invocator != null) {
-               // AccessController.doPrivileged(invocator);
-               // invocator = null;
-               // }
-               //
-               // if (disposer != null) {
-               // // Note that we're likely calling removePropertyChangeListener()
-               // // during the course of AppContext.firePropertyChange().
-               // // However, EventListenerAggreggate has code to safely modify
-               // // the list under such circumstances.
-               // context.removePropertyChangeListener(AppContext.GUI_DISPOSED,
-               // disposer);
-               // disposer = null;
-               // }
-       }
-
-       /**
-        * Populates {@code table} with mappings from {@code uiClassID} to the fully
-        * qualified name of the ui class. The value for a particular
-        * {@code uiClassID} is {@code "jsjavax.swing.plaf.basic.Basic + uiClassID"}.
-        * For example, the value for the {@code uiClassID} {@code TreeUI} is
-        * {@code "jsjavax.swing.plaf.basic.BasicTreeUI"}.
-        * 
-        * @param table
-        *          the {@code UIDefaults} instance the entries are added to
-        * @throws NullPointerException
-        *           if {@code table} is {@code null}
-        * 
-        * @see jsjavax.swing.LookAndFeel
-        * @see #getDefaults
-        */
-       protected void initClassDefaults(UIDefaults table) {
-               final String packageName = "swingjs.plaf.";
-               Object[] uiDefaults = { 
-               /**/            "ButtonUI",                                             packageName + "JSButtonUI",
-               /**/            "CheckBoxUI",                                   packageName + "JSCheckBoxUI", 
-                               "ColorChooserUI",                               packageName + "JSColorChooserUI", 
-         /**/          "FormattedTextFieldUI", packageName + "JSFormattedTextFieldUI", 
-         /**/          "MenuBarUI",                                            packageName + "JSMenuBarUI", 
-         /**/          "MenuUI",                                                       packageName + "JSMenuUI",
-         /**/          "MenuItemUI",                                   packageName + "JSMenuItemUI", 
-         /**/          "CheckBoxMenuItemUI",   packageName + "JSCheckBoxMenuItemUI", 
-         /**/          "RadioButtonMenuItemUI", packageName + "JSRadioButtonMenuItemUI", 
-         /**/          "RadioButtonUI",                                packageName + "JSRadioButtonUI", 
-         /**/          "ToggleButtonUI",                       packageName + "JSToggleButtonUI", 
-         /**/          "PopupMenuUI",                                  packageName + "JSPopupMenuUI", 
-                               "ProgressBarUI",                                packageName + "JSProgressBarUI", 
-               /**/            "ScrollBarUI",                                  packageName + "JSScrollBarUI", 
-               /**/            "ScrollPaneUI",                                 packageName + "JSScrollPaneUI", 
-                               "SplitPaneUI",                                  packageName + "JSSplitPaneUI", 
-         /**/          "SliderUI",                                             packageName + "JSSliderUI",
-               /**/            "SeparatorUI",                                  packageName + "JSSeparatorUI", 
-                               "SpinnerUI",                                            packageName + "JSSpinnerUI", 
-               /**/     "ToolBarSeparatorUI",  packageName + "JSToolBarSeparatorUI", 
-               /**/   "PopupMenuSeparatorUI", packageName + "JSPopupMenuSeparatorUI", 
-                               "TabbedPaneUI",                                 packageName + "JSTabbedPaneUI", 
-         /**/   "TextAreaUI",                                  packageName + "JSTextAreaUI", 
-         /**/   "TextFieldUI",                                         packageName + "JSTextFieldUI", 
-         /**/   "PasswordFieldUI",                     packageName + "JSPasswordFieldUI", 
-        "TextPaneUI",                                  packageName + "JSTextPaneUI", 
-                               "EditorPaneUI",                                 packageName + "JSEditorPaneUI", 
-                               "TreeUI",                                                               packageName + "JSTreeUI",
-               /**/     "LabelUI",                                                     packageName + "JSLabelUI", 
-                               "ListUI",                                                       packageName + "JSListUI", 
-                               "ToolBarUI",                                            packageName + "JSToolBarUI",
-                               "ToolTipUI",                                            packageName + "JSToolTipUI", 
-               /**/     "ComboBoxUI",                                  packageName + "JSComboBoxUI", 
-                               "TableUI",                                                      packageName + "JSTableUI",
-                               "TableHeaderUI",                                packageName + "JSTableHeaderUI", 
-                               "InternalFrameUI",                      packageName + "JSInternalFrameUI", 
-                               "DesktopPaneUI",                                packageName + "JSDesktopPaneUI", 
-                               "DesktopIconUI",                                packageName + "JSDesktopIconUI", 
-                               "OptionPaneUI",                                 packageName + "JSOptionPaneUI", 
-         /**/          "PanelUI",                                                      packageName + "JSPanelUI",
-               /**/            "ViewportUI",                                   packageName + "JSViewportUI", 
-         /**/    "RootPaneUI",                                         packageName + "JSRootPaneUI"
-                               };
-
-               table.putDefaults(uiDefaults);
-       }
-
-       /**
-        * Populates {@code table} with system colors. This creates an array of
-        * {@code name-color} pairs and invokes {@code loadSystemColors}.
-        * <p>
-        * The name is a {@code String} that corresponds to the name of one of the
-        * static {@code SystemColor} fields in the {@code SystemColor} class. A
-        * name-color pair is created for every such {@code SystemColor} field.
-        * <p>
-        * The {@code color} corresponds to a hex {@code String} as understood by
-        * {@code Color.decode}. For example, one of the {@code name-color} pairs is
-        * {@code "desktop"-"#005C5C"}. This corresponds to the {@code SystemColor}
-        * field {@code desktop}, with a color value of {@code new Color(0x005C5C)}.
-        * <p>
-        * The following shows two of the {@code name-color} pairs:
-        * 
-        * <pre>
-        * String[] nameColorPairs = new String[] { &quot;desktop&quot;, &quot;#005C5C&quot;, &quot;activeCaption&quot;,
-        *              &quot;#000080&quot; };
-        * loadSystemColors(table, nameColorPairs, isNativeLookAndFeel());
-        * </pre>
-        * 
-        * As previously stated, this invokes {@code loadSystemColors} with the
-        * supplied {@code table} and {@code name-color} pair array. The last argument
-        * to {@code loadSystemColors} indicates whether the value of the field in
-        * {@code SystemColor} should be used. This method passes the value of
-        * {@code isNativeLookAndFeel()} as the last argument to
-        * {@code loadSystemColors}.
-        * 
-        * @param table
-        *          the {@code UIDefaults} object the values are added to
-        * @throws NullPointerException
-        *           if {@code table} is {@code null}
-        * 
-        * @see jsjava.awt.SystemColor
-        * @see #getDefaults
-        * @see #loadSystemColors
-        */
-       protected void initSystemColorDefaults(UIDefaults table) {
-               String[] defaultSystemColors = { 
-                               
-                               
-//             "desktop", "#005C5C", /*
-//                                                                                                                                                                                                                                              * Color of the
-//                                                                                                                                                                                                                                              * desktop
-//                                                                                                                                                                                                                                              * background
-//                                                                                                                                                                                                                                              */
-//             "activeCaption", "#000080", /*
-//                                                                                                                              * Color for captions (title bars) when they are
-//                                                                                                                              * active.
-//                                                                                                                              */
-//             "activeCaptionText", "#FFFFFF", /*
-//                                                                                                                                              * Text color for text in captions (title
-//                                                                                                                                              * bars).
-//                                                                                                                                              */
-//             "activeCaptionBorder", "#C0C0C0", /*
-//                                                                                                                                                      * Border color for caption (title bar)
-//                                                                                                                                                      * window borders.
-//                                                                                                                                                      */
-//             "inactiveCaption", "#808080", /*
-//                                                                                                                                      * Color for captions (title bars) when not
-//                                                                                                                                      * active.
-//                                                                                                                                      */
-//             "inactiveCaptionText", "#C0C0C0", /*
-//                                                                                                                                                      * Text color for text in inactive
-//                                                                                                                                                      * captions (title bars).
-//                                                                                                                                                      */
-//             "inactiveCaptionBorder", "#C0C0C0", /*
-//                                                                                                                                                              * Border color for inactive caption
-//                                                                                                                                                              * (title bar) window borders.
-//                                                                                                                                                              */
-                               // plaf.metal.OceanTheme
-               "window", "#FFFFFF", /* Default color for the interior of windows */
-//             "windowBorder", "#000000", /* ??? */
-               "windowText", "#333333", /* ??? */
-               "menu", "#C0C0C0", /* Background color for menus */
-               "menuText", "#333333", /* Text color for menus */
-               "text", "#C0C0C0", /* Text background color */
-               "textText", "#333333", /* Text foreground color */
-//             "textHighlight", "#000080", /* Text background color when selected */
-//             "textHighlightText", "#FFFFFF", /* Text color when selected */
-//             "textInactiveText", "#808080", /* Text color when disabled */
-               "control", "#EEEEEE", // SECONDARY3 Default color for controls (buttons, sliders, etc)
-               "controlText", "#333333", //  Default color for text in controls 
-//             "controlHighlight", "#C0C0C0", /*
-//                                                                                                                                              * Specular highlight (opposite of the
-//                                                                                                                                              * shadow)
-//                                                                                                                                              */
-//             "controlLtHighlight", "#FFFFFF", /* Highlight color for controls */
-//             "controlShadow", "#808080", /* Shadow color for controls */
-//             "controlDkShadow", "#000000", /* Dark shadow color for controls */
-               "scrollbar", "#E0E0E0", /* Scrollbar background (usually the "track") */
-               "info", "#FFFFE1", /* ??? */
-               "infoText", "#000000" /* ??? */
-               };
-
-               loadSystemColors(table, defaultSystemColors, isNativeLookAndFeel());
-       }
-
-       /**
-        * Populates {@code table} with the {@code name-color} pairs in
-        * {@code systemColors}. Refer to {@link #initSystemColorDefaults(UIDefaults)}
-        * for details on the format of {@code systemColors}.
-        * <p>
-        * An entry is added to {@code table} for each of the {@code name-color} pairs
-        * in {@code systemColors}. The entry key is the {@code name} of the
-        * {@code name-color} pair.
-        * <p>
-        * The value of the entry corresponds to the {@code color} of the
-        * {@code name-color} pair. The value of the entry is calculated in one of two
-        * ways. With either approach the value is always a {@code ColorUIResource}.
-        * <p>
-        * If {@code useNative} is {@code false}, the {@code color} is created by
-        * using {@code Color.decode} to convert the {@code String} into a
-        * {@code Color}. If {@code decode} can not convert the {@code String} into a
-        * {@code Color} ({@code NumberFormatException} is thrown) then a
-        * {@code ColorUIResource} of black is used.
-        * <p>
-        * If {@code useNative} is {@code true}, the {@code color} is the value of the
-        * field in {@code SystemColor} with the same name as the {@code name} of the
-        * {@code name-color} pair. If the field is not valid, a
-        * {@code ColorUIResource} of black is used.
-        * 
-        * @param table
-        *          the {@code UIDefaults} object the values are added to
-        * @param systemColors
-        *          array of {@code name-color} pairs as described in
-        *          {@link #initSystemColorDefaults(UIDefaults)}
-        * @param useNative
-        *          whether the color is obtained from {@code SystemColor} or
-        *          {@code Color.decode}
-        * @throws NullPointerException
-        *           if {@code systemColors} is {@code null}; or {@code systemColors}
-        *           is not empty, and {@code table} is {@code null}; or one of the
-        *           names of the {@code name-color} pairs is {@code null}; or
-        *           {@code useNative} is {@code false} and one of the {@code colors}
-        *           of the {@code name-color} pairs is {@code null}
-        * @throws ArrayIndexOutOfBoundsException
-        *           if {@code useNative} is {@code false} and
-        *           {@code systemColors.length} is odd
-        * 
-        * @see #initSystemColorDefaults(jsjavax.swing.UIDefaults)
-        * @see jsjava.awt.SystemColor
-        * @see jsjava.awt.Color#decode(String)
-        */
-       protected void loadSystemColors(UIDefaults table, String[] systemColors,
-                       boolean useNative) {
-               /*
-                * PENDING(hmuller) We don't load the system colors below because they're
-                * not reliable. Hopefully we'll be able to do better in a future version of
-                * AWT.
-                */
-//             if (useNative) {
-//                     for (int i = 0; i < systemColors.length; i += 2) {
-//                             Color color = Color.black;
-//                             // try {
-//                             // String name = systemColors[i];
-//                             // color = (Color)(SystemColor.class.getField(name).get(null));
-//                             // } catch (Exception e) {
-//                             // }
-//                             table.put(systemColors[i], new ColorUIResource(color));
-//                     }
-//             } else {
-                       for (int i = 0; i < systemColors.length; i += 2) {
-                               Color color = Color.black;
-                               try {
-                                       color = Color.decode(systemColors[i + 1]);
-                               } catch (NumberFormatException e) {
-                                       e.printStackTrace();
-                               }
-                               table.put(systemColors[i], new ColorUIResource(color));
-                       }
-//             }
-       }
-
-       /**
-        * Initialize the defaults table with the name of the ResourceBundle used for
-        * getting localized defaults. Also initialize the default locale used when no
-        * locale is passed into UIDefaults.get(). The default locale should generally
-        * not be relied upon. It is here for compatability with releases prior to
-        * 1.4.
-        */
-       private void initResourceBundle(UIDefaults table) {
-               // table.setDefaultLocale( Locale.getDefault() );
-               // table.addResourceBundle(
-               // "com.sun.swing.internal.plaf.basic.resources.basic" );
-       }
-
-       /**
-        * Populates {@code table} with the defaults for the basic look and feel.
-        * 
-        * @param table
-        *          the {@code UIDefaults} to add the values to
-        * @throws NullPointerException
-        *           if {@code table} is {@code null}
-        */
-       protected void initComponentDefaults(UIDefaults table) {
-
-               initResourceBundle(table);
-
-               // // *** Shared Integers
-               // Integer fiveHundred = new Integer(500);
-
-               // *** Shared Longs
-               Long oneThousand = new Long(1000);
-
-               // *** Shared Fonts
-               Integer twelve = new Integer(12);
-               Integer fontPlain = new Integer(Font.PLAIN);
-               // Integer fontBold = new Integer(Font.BOLD);
-               // Object dialogPlain12 = new SwingLazyValue(
-               // "jsjavax.swing.plaf.FontUIResource",
-               // null,
-               // new Object[] {Font.DIALOG, fontPlain, twelve});
-               Object serifPlain12 = new FontUIResource(Font.SERIF, Font.PLAIN, 12);
-               Object sansSerifPlain12 = new FontUIResource(Font.SANS_SERIF, Font.PLAIN,
-                               12);
-               Object dialogPlain12 = new FontUIResource(Font.DIALOG, Font.PLAIN, 12);
-               Object monospacedPlain12 = new FontUIResource(Font.MONOSPACED, Font.PLAIN, 12);
-               // Object dialogBold12 = new SwingLazyValue(
-               // "jsjavax.swing.plaf.FontUIResource",
-               // null,
-               // new Object[] {Font.DIALOG, fontBold, twelve});
-               //
-
-               // *** Shared Colors
-               // ColorUIResource red = new ColorUIResource(Color.red);
-               ColorUIResource black = new ColorUIResource(Color.black);
-               ColorUIResource white = new ColorUIResource(Color.white);
-               // ColorUIResource yellow = new ColorUIResource(Color.yellow);
-               ColorUIResource gray = new ColorUIResource(Color.gray);
-               // ColorUIResource lightGray = new ColorUIResource(Color.lightGray);
-               ColorUIResource darkGray = new ColorUIResource(Color.darkGray);
-               // ColorUIResource scrollBarTrack = new ColorUIResource(224, 224, 224);
-
-               Color control = table.getColor("control");
-               // Color controlDkShadow = table.getColor("controlDkShadow");
-               // Color controlHighlight = table.getColor("controlHighlight");
-               // Color controlLtHighlight = table.getColor("controlLtHighlight");
-               // Color controlShadow = table.getColor("controlShadow");
-               Color controlText = table.getColor("controlText");
-               Color menu = table.getColor("menu");
-               Color menuText = table.getColor("menuText");
-               // Color textHighlight = table.getColor("textHighlight");
-               // Color textHighlightText = table.getColor("textHighlightText");
-               // Color textInactiveText = table.getColor("textInactiveText");
-               Color textText = table.getColor("textText");
-               Color window = table.getColor("window");
-
-               // *** Shared Insets
-               InsetsUIResource zeroInsets = new InsetsUIResource(0, 0, 0, 0);
-               InsetsUIResource twoInsets = new InsetsUIResource(2, 2, 2, 2);
-               InsetsUIResource threeInsets = new InsetsUIResource(3, 3, 3, 3);
-
-               // // *** Shared Borders
-               // Object marginBorder = new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicBorders$MarginBorder");
-               // Object etchedBorder = new SwingLazyValue(
-               // "jsjavax.swing.plaf.BorderUIResource",
-               // "getEtchedBorderUIResource");
-               // Object loweredBevelBorder = new SwingLazyValue(
-               // "jsjavax.swing.plaf.BorderUIResource",
-               // "getLoweredBevelBorderUIResource");
-               //
-               // Object popupMenuBorder = new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicBorders",
-               // "getInternalFrameBorder");
-               //
-               // Object blackLineBorder = new SwingLazyValue(
-               // "jsjavax.swing.plaf.BorderUIResource",
-               // "getBlackLineBorderUIResource");
-               // Object focusCellHighlightBorder = new SwingLazyValue(
-               // "jsjavax.swing.plaf.BorderUIResource$LineBorderUIResource",
-               // null,
-               // new Object[] {yellow});
-               //
-               // Object noFocusBorder = new
-               // BorderUIResource.EmptyBorderUIResource(1,1,1,1);
-               //
-               // Object tableHeaderBorder = new SwingLazyValue(
-               // "jsjavax.swing.plaf.BorderUIResource$BevelBorderUIResource",
-               // null,
-               // new Object[] { new Integer(BevelBorder.RAISED),
-               // controlLtHighlight,
-               // control,
-               // controlDkShadow,
-               // controlShadow });
-               //
-               //
-               // // *** Button value objects
-               //
-               // Object buttonBorder =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicBorders",
-               // "getButtonBorder");
-               //
-               // Object buttonToggleBorder =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicBorders",
-               // "getToggleButtonBorder");
-               //
-               // Object radioButtonBorder =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicBorders",
-               // "getRadioButtonBorder");
-               //
-               // // *** FileChooser / FileView value objects
-               //
-               // Object newFolderIcon = SwingUtilities2.makeIcon(getClass(),
-               // BasicLookAndFeel.class,
-               // "icons/NewFolder.gif");
-               // Object upFolderIcon = SwingUtilities2.makeIcon(getClass(),
-               // BasicLookAndFeel.class,
-               // "icons/UpFolder.gif");
-               // Object homeFolderIcon = SwingUtilities2.makeIcon(getClass(),
-               // BasicLookAndFeel.class,
-               // "icons/HomeFolder.gif");
-               // Object detailsViewIcon = SwingUtilities2.makeIcon(getClass(),
-               // BasicLookAndFeel.class,
-               // "icons/DetailsView.gif");
-               // Object listViewIcon = SwingUtilities2.makeIcon(getClass(),
-               // BasicLookAndFeel.class,
-               // "icons/ListView.gif");
-               // Object directoryIcon = SwingUtilities2.makeIcon(getClass(),
-               // BasicLookAndFeel.class,
-               // "icons/Directory.gif");
-               // Object fileIcon = SwingUtilities2.makeIcon(getClass(),
-               // BasicLookAndFeel.class,
-               // "icons/File.gif");
-               // Object computerIcon = SwingUtilities2.makeIcon(getClass(),
-               // BasicLookAndFeel.class,
-               // "icons/Computer.gif");
-               // Object hardDriveIcon = SwingUtilities2.makeIcon(getClass(),
-               // BasicLookAndFeel.class,
-               // "icons/HardDrive.gif");
-               // Object floppyDriveIcon = SwingUtilities2.makeIcon(getClass(),
-               // BasicLookAndFeel.class,
-               // "icons/FloppyDrive.gif");
-               //
-               //
-               // // *** InternalFrame value objects
-               //
-               // Object internalFrameBorder = new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicBorders",
-               // "getInternalFrameBorder");
-               //
-               // // *** List value objects
-               //
-               Object listCellRendererActiveValue = new UIDefaults.ActiveValue() {
-                       public Object createValue(UIDefaults table) {
-                               return new DefaultListCellRenderer.UIResource();
-                       }
-               };
-
-               //
-               // // *** Menus value objects
-               //
-               // Object menuBarBorder =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicBorders",
-               // "getMenuBarBorder");
-               //
-               // Object menuItemCheckIcon =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicIconFactory",
-               // "getMenuItemCheckIcon");
-               //
-               // Object menuItemArrowIcon =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicIconFactory",
-               // "getMenuItemArrowIcon");
-               //
-               //
-               // Object menuArrowIcon =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicIconFactory",
-               // "getMenuArrowIcon");
-               //
-               // Object checkBoxIcon =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicIconFactory",
-               // "getCheckBoxIcon");
-               //
-               // Object radioButtonIcon =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicIconFactory",
-               // "getRadioButtonIcon");
-               //
-               // Object checkBoxMenuItemIcon =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicIconFactory",
-               // "getCheckBoxMenuItemIcon");
-               //
-               // Object radioButtonMenuItemIcon =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicIconFactory",
-               // "getRadioButtonMenuItemIcon");
-               //
-               // Object menuItemAcceleratorDelimiter = new String("+");
-               //
-               // // *** OptionPane value objects
-               //
-               // Object optionPaneMinimumSize = new DimensionUIResource(262, 90);
-               //
-               Integer zero = new Integer(0);
-               // Object zeroBorder = new SwingLazyValue(
-               // "jsjavax.swing.plaf.BorderUIResource$EmptyBorderUIResource",
-               // new Object[] {zero, zero, zero, zero});
-               //
-               // Integer ten = new Integer(10);
-               // Object optionPaneBorder = new SwingLazyValue(
-               // "jsjavax.swing.plaf.BorderUIResource$EmptyBorderUIResource",
-               // new Object[] {ten, ten, twelve, ten});
-               //
-               // Object optionPaneButtonAreaBorder = new SwingLazyValue(
-               // "jsjavax.swing.plaf.BorderUIResource$EmptyBorderUIResource",
-               // new Object[] {new Integer(6), zero, zero, zero});
-               //
-               //
-               // // *** ProgessBar value objects
-               //
-               // Object progressBarBorder =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicBorders",
-               // "getProgressBarBorder");
-               //
-               // // ** ScrollBar value objects
-               //
-               // Object minimumThumbSize = new DimensionUIResource(8,8);
-               // Object maximumThumbSize = new DimensionUIResource(4096,4096);
-               //
-               // // ** Slider value objects
-               //
-               // Object sliderFocusInsets = twoInsets;
-               //
-               // Object toolBarSeparatorSize = new DimensionUIResource( 10, 10 );
-               //
-               //
-               // // *** SplitPane value objects
-               //
-               // Object splitPaneBorder =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicBorders",
-               // "getSplitPaneBorder");
-               // Object splitPaneDividerBorder =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicBorders",
-               // "getSplitPaneDividerBorder");
-               //
-               // ** TabbedBane value objects
-
-               Object tabbedPaneTabInsets = new InsetsUIResource(0, 4, 1, 4);
-
-               Object tabbedPaneTabPadInsets = new InsetsUIResource(2, 2, 2, 1);
-
-               Object tabbedPaneTabAreaInsets = new InsetsUIResource(3, 2, 0, 2);
-
-               Object tabbedPaneContentBorderInsets = new InsetsUIResource(2, 2, 3, 3);
-
-               // *** Text value objects
-
-               // Object textFieldBorder =
-               // new SwingLazyValue(
-               // "jsjavax.swing.plaf.basic.BasicBorders",
-               // "getTextFieldBorder");
-               //
-               Object editorMargin = threeInsets;
-
-               // Object caretBlinkRate = fiveHundred;
-               Integer four = new Integer(4);
-               //
-               // Object[] allAuditoryCues = new Object[] {
-               // "CheckBoxMenuItem.commandSound",
-               // "InternalFrame.closeSound",
-               // "InternalFrame.maximizeSound",
-               // "InternalFrame.minimizeSound",
-               // "InternalFrame.restoreDownSound",
-               // "InternalFrame.restoreUpSound",
-               // "MenuItem.commandSound",
-               // "OptionPane.errorSound",
-               // "OptionPane.informationSound",
-               // "OptionPane.questionSound",
-               // "OptionPane.warningSound",
-               // "PopupMenu.popupSound",
-               // "RadioButtonMenuItem.commandSound"};
-               //
-               // Object[] noAuditoryCues = new Object[] {"mute"};
-               //
-               // // *** Component Defaults
-               //
-               Object[] defaults = {
-                               "*.font",
-                               dialogPlain12,
-                               "*.background",
-                               control,
-                               "*.foreground",
-                               controlText,
-                               // *** Auditory Feedback
-                               // "AuditoryCues.cueList", allAuditoryCues,
-                               // "AuditoryCues.allAuditoryCues", allAuditoryCues,
-                               // "AuditoryCues.noAuditoryCues", noAuditoryCues,
-                               // // this key defines which of the various cues to render.
-                               // // L&Fs that want auditory feedback NEED to override playList.
-                               // "AuditoryCues.playList", null,
-
-                               // *** Buttons
-                               // "Button.defaultButtonFollowsFocus", Boolean.TRUE,
-                               // "Button.font", dialogPlain12,
-                               // "Button.background", control,
-                               // "Button.foreground", controlText,
-                               // "Button.shadow", controlShadow,
-                               // "Button.darkShadow", controlDkShadow,
-                               // "Button.light", controlHighlight,
-                               // "Button.highlight", controlLtHighlight,
-                               // "Button.border", buttonBorder,
-                               "Button.margin",
-                               new InsetsUIResource(2, 14, 2, 14),
-                               // "Button.textIconGap", four,
-                               // "Button.textShiftOffset", zero,
-                               // "Button.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
-                               // "SPACE", "pressed",
-                               // "released SPACE", "released",
-                               // "ENTER", "pressed",
-                               // "released ENTER", "released"
-                               // }),
-                               //
-                               // "ToggleButton.font", dialogPlain12,
-                               // "ToggleButton.background", control,
-                               // "ToggleButton.foreground", controlText,
-                               // "ToggleButton.shadow", controlShadow,
-                               // "ToggleButton.darkShadow", controlDkShadow,
-                               // "ToggleButton.light", controlHighlight,
-                               // "ToggleButton.highlight", controlLtHighlight,
-                               // "ToggleButton.border", buttonToggleBorder,
-                               "ToggleButton.margin",
-                               new InsetsUIResource(2, 14, 2, 14),
-                               "ToggleButton.textIconGap",
-                               four,
-                               "ToggleButton.textShiftOffset",
-                               zero,
-                               // "ToggleButton.focusInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "SPACE", "pressed",
-                               // "released SPACE", "released"
-                               // }),
-                               //
-                               // "RadioButton.font", dialogPlain12,
-                               // "RadioButton.background", control,
-                               // "RadioButton.foreground", controlText,
-                               // "RadioButton.shadow", controlShadow,
-                               // "RadioButton.darkShadow", controlDkShadow,
-                               // "RadioButton.light", controlHighlight,
-                               // "RadioButton.highlight", controlLtHighlight,
-                               // "RadioButton.border", radioButtonBorder,
-                               "RadioButton.margin",
-                               twoInsets,
-                               "RadioButton.textIconGap",
-                               four,
-                               "RadioButton.textShiftOffset",
-                               zero,
-                               // "RadioButton.icon", radioButtonIcon,
-                               // "RadioButton.focusInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "SPACE", "pressed",
-                               // "released SPACE", "released",
-                               // "RETURN", "pressed"
-                               // }),
-                               //
-                               // "CheckBox.font", dialogPlain12,
-                               // "CheckBox.background", control,
-                               // "CheckBox.foreground", controlText,
-                               // "CheckBox.border", radioButtonBorder,
-                               "CheckBox.margin",
-                               twoInsets,
-                               "CheckBox.textIconGap",
-                               four,
-                               "CheckBox.textShiftOffset",
-                               zero,
-                               // "CheckBox.icon", checkBoxIcon,
-                               // "CheckBox.focusInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "SPACE", "pressed",
-                               // "released SPACE", "released"
-                               // }),
-                               // "FileChooser.useSystemExtensionHiding", Boolean.FALSE,
-
-                               // *** ColorChooser
-                               // "ColorChooser.font", dialogPlain12,
-                               // "ColorChooser.background", control,
-                               // "ColorChooser.foreground", controlText,
-                               //
-                               "ColorChooser.swatchesSwatchSize",
-                               new Dimension(10, 10),
-                               "ColorChooser.swatchesRecentSwatchSize",
-                               new Dimension(10, 10),
-                               "ColorChooser.swatchesDefaultRecentColor",
-                               control,
-
-                               // *** ComboBox
-                               "ComboBox.font",
-                               sansSerifPlain12,
-                               "ComboBox.background",
-                               window,
-                               "ComboBox.foreground",
-                               textText,
-                               // "ComboBox.buttonBackground", control,
-                               // "ComboBox.buttonShadow", controlShadow,
-                               // "ComboBox.buttonDarkShadow", controlDkShadow,
-                               // "ComboBox.buttonHighlight", controlLtHighlight,
-                               // "ComboBox.selectionBackground", textHighlight,
-                               // "ComboBox.selectionForeground", textHighlightText,
-                               // "ComboBox.disabledBackground", control,
-                               // "ComboBox.disabledForeground", textInactiveText,
-                               "ComboBox.timeFactor",
-                               oneThousand,
-                               "ComboBox.isEnterSelectablePopup",
-                               Boolean.FALSE,
-                               // "ComboBox.ancestorInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "ESCAPE", "hidePopup",
-                               // "PAGE_UP", "pageUpPassThrough",
-                               // "PAGE_DOWN", "pageDownPassThrough",
-                               // "HOME", "homePassThrough",
-                               // "END", "endPassThrough",
-                               // "ENTER", "enterPressed"
-                               // }),
-                               //
-                               // *** FileChooser
-
-                               // "FileChooser.newFolderIcon", newFolderIcon,
-                               // "FileChooser.upFolderIcon", upFolderIcon,
-                               // "FileChooser.homeFolderIcon", homeFolderIcon,
-                               // "FileChooser.detailsViewIcon", detailsViewIcon,
-                               // "FileChooser.listViewIcon", listViewIcon,
-                               "FileChooser.readOnly",
-                               Boolean.FALSE,
-                               // "FileChooser.usesSingleFilePane", Boolean.FALSE,
-                               // "FileChooser.ancestorInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "ESCAPE", "cancelSelection",
-                               // "F5", "refresh",
-                               // }),
-                               //
-                               // "FileView.directoryIcon", directoryIcon,
-                               // "FileView.fileIcon", fileIcon,
-                               // "FileView.computerIcon", computerIcon,
-                               // "FileView.hardDriveIcon", hardDriveIcon,
-                               // "FileView.floppyDriveIcon", floppyDriveIcon,
-
-                               // *** InternalFrame
-                               // "InternalFrame.titleFont", dialogBold12,
-                               // "InternalFrame.borderColor", control,
-                               // "InternalFrame.borderShadow", controlShadow,
-                               // "InternalFrame.borderDarkShadow", controlDkShadow,
-                               // "InternalFrame.borderHighlight", controlLtHighlight,
-                               // "InternalFrame.borderLight", controlHighlight,
-                               // "InternalFrame.border", internalFrameBorder,
-                               // "InternalFrame.icon", SwingUtilities2.makeIcon(getClass(),
-                               // BasicLookAndFeel.class,
-                               // "icons/JavaCup16.png"),
-                               //
-                               // /* Default frame icons are undefined for Basic. */
-                               // "InternalFrame.maximizeIcon",
-                               // new SwingLazyValue(
-                               // "jsjavax.swing.plaf.basic.BasicIconFactory",
-                               // "createEmptyFrameIcon"),
-                               // "InternalFrame.minimizeIcon",
-                               // new SwingLazyValue(
-                               // "jsjavax.swing.plaf.basic.BasicIconFactory",
-                               // "createEmptyFrameIcon"),
-                               // "InternalFrame.iconifyIcon",
-                               // new SwingLazyValue(
-                               // "jsjavax.swing.plaf.basic.BasicIconFactory",
-                               // "createEmptyFrameIcon"),
-                               // "InternalFrame.closeIcon",
-                               // new SwingLazyValue(
-                               // "jsjavax.swing.plaf.basic.BasicIconFactory",
-                               // "createEmptyFrameIcon"),
-                               // // InternalFrame Auditory Cue Mappings
-                               // "InternalFrame.closeSound", null,
-                               // "InternalFrame.maximizeSound", null,
-                               // "InternalFrame.minimizeSound", null,
-                               // "InternalFrame.restoreDownSound", null,
-                               // "InternalFrame.restoreUpSound", null,
-                               //
-                               // "InternalFrame.activeTitleBackground", table.get("activeCaption"),
-                               // "InternalFrame.activeTitleForeground",
-                               // table.get("activeCaptionText"),
-                               // "InternalFrame.inactiveTitleBackground",
-                               // table.get("inactiveCaption"),
-                               // "InternalFrame.inactiveTitleForeground",
-                               // table.get("inactiveCaptionText"),
-                               // "InternalFrame.windowBindings", new Object[] {
-                               // "shift ESCAPE", "showSystemMenu",
-                               // "ctrl SPACE", "showSystemMenu",
-                               // "ESCAPE", "hideSystemMenu"},
-                               //
-                               // "InternalFrameTitlePane.iconifyButtonOpacity", Boolean.TRUE,
-                               // "InternalFrameTitlePane.maximizeButtonOpacity", Boolean.TRUE,
-                               // "InternalFrameTitlePane.closeButtonOpacity", Boolean.TRUE,
-
-                               // "DesktopIcon.border", internalFrameBorder,
-                               //
-                               // "Desktop.minOnScreenInsets", threeInsets,
-                               // "Desktop.background", table.get("desktop"),
-                               // "Desktop.ancestorInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "ctrl F5", "restore",
-                               // "ctrl F4", "close",
-                               // "ctrl F7", "move",
-                               // "ctrl F8", "resize",
-                               // "RIGHT", "right",
-                               // "KP_RIGHT", "right",
-                               // "shift RIGHT", "shrinkRight",
-                               // "shift KP_RIGHT", "shrinkRight",
-                               // "LEFT", "left",
-                               // "KP_LEFT", "left",
-                               // "shift LEFT", "shrinkLeft",
-                               // "shift KP_LEFT", "shrinkLeft",
-                               // "UP", "up",
-                               // "KP_UP", "up",
-                               // "shift UP", "shrinkUp",
-                               // "shift KP_UP", "shrinkUp",
-                               // "DOWN", "down",
-                               // "KP_DOWN", "down",
-                               // "shift DOWN", "shrinkDown",
-                               // "shift KP_DOWN", "shrinkDown",
-                               // "ESCAPE", "escape",
-                               // "ctrl F9", "minimize",
-                               // "ctrl F10", "maximize",
-                               // "ctrl F6", "selectNextFrame",
-                               // "ctrl TAB", "selectNextFrame",
-                               // "ctrl alt F6", "selectNextFrame",
-                               // "shift ctrl alt F6", "selectPreviousFrame",
-                               // "ctrl F12", "navigateNext",
-                               // "shift ctrl F12", "navigatePrevious"
-                               // }),
-
-                               // *** Label
-                               // "Label.font", dialogPlain12,
-                               // "Label.background", control,
-                               // "Label.foreground", controlText,
-                               // "Label.disabledForeground", white,
-                               // "Label.disabledShadow", controlShadow,
-                               "Label.border",
-                               null,
-
-                               // *** List
-                               // "List.font", dialogPlain12,
-                               "List.background",
-                               window,
-                               "List.foreground",
-                               textText,
-                               // "List.selectionBackground", textHighlight,
-                               // "List.selectionForeground", textHighlightText,
-                               // "List.noFocusBorder", noFocusBorder,
-                               // "List.focusCellHighlightBorder", focusCellHighlightBorder,
-                               // "List.dropLineColor", controlShadow,
-                               // "List.border", null,
-                               "List.cellRenderer",
-                               listCellRendererActiveValue,
-                               "List.timeFactor",
-                               oneThousand,
-                               // "List.focusInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "ctrl C", "copy",
-                               // "ctrl V", "paste",
-                               // "ctrl X", "cut",
-                               // "COPY", "copy",
-                               // "PASTE", "paste",
-                               // "CUT", "cut",
-                               // "control INSERT", "copy",
-                               // "shift INSERT", "paste",
-                               // "shift DELETE", "cut",
-                               // "UP", "selectPreviousRow",
-                               // "KP_UP", "selectPreviousRow",
-                               // "shift UP", "selectPreviousRowExtendSelection",
-                               // "shift KP_UP", "selectPreviousRowExtendSelection",
-                               // "ctrl shift UP", "selectPreviousRowExtendSelection",
-                               // "ctrl shift KP_UP", "selectPreviousRowExtendSelection",
-                               // "ctrl UP", "selectPreviousRowChangeLead",
-                               // "ctrl KP_UP", "selectPreviousRowChangeLead",
-                               // "DOWN", "selectNextRow",
-                               // "KP_DOWN", "selectNextRow",
-                               // "shift DOWN", "selectNextRowExtendSelection",
-                               // "shift KP_DOWN", "selectNextRowExtendSelection",
-                               // "ctrl shift DOWN", "selectNextRowExtendSelection",
-                               // "ctrl shift KP_DOWN", "selectNextRowExtendSelection",
-                               // "ctrl DOWN", "selectNextRowChangeLead",
-                               // "ctrl KP_DOWN", "selectNextRowChangeLead",
-                               // "LEFT", "selectPreviousColumn",
-                               // "KP_LEFT", "selectPreviousColumn",
-                               // "shift LEFT", "selectPreviousColumnExtendSelection",
-                               // "shift KP_LEFT", "selectPreviousColumnExtendSelection",
-                               // "ctrl shift LEFT", "selectPreviousColumnExtendSelection",
-                               // "ctrl shift KP_LEFT", "selectPreviousColumnExtendSelection",
-                               // "ctrl LEFT", "selectPreviousColumnChangeLead",
-                               // "ctrl KP_LEFT", "selectPreviousColumnChangeLead",
-                               // "RIGHT", "selectNextColumn",
-                               // "KP_RIGHT", "selectNextColumn",
-                               // "shift RIGHT", "selectNextColumnExtendSelection",
-                               // "shift KP_RIGHT", "selectNextColumnExtendSelection",
-                               // "ctrl shift RIGHT", "selectNextColumnExtendSelection",
-                               // "ctrl shift KP_RIGHT", "selectNextColumnExtendSelection",
-                               // "ctrl RIGHT", "selectNextColumnChangeLead",
-                               // "ctrl KP_RIGHT", "selectNextColumnChangeLead",
-                               // "HOME", "selectFirstRow",
-                               // "shift HOME", "selectFirstRowExtendSelection",
-                               // "ctrl shift HOME", "selectFirstRowExtendSelection",
-                               // "ctrl HOME", "selectFirstRowChangeLead",
-                               // "END", "selectLastRow",
-                               // "shift END", "selectLastRowExtendSelection",
-                               // "ctrl shift END", "selectLastRowExtendSelection",
-                               // "ctrl END", "selectLastRowChangeLead",
-                               // "PAGE_UP", "scrollUp",
-                               // "shift PAGE_UP", "scrollUpExtendSelection",
-                               // "ctrl shift PAGE_UP", "scrollUpExtendSelection",
-                               // "ctrl PAGE_UP", "scrollUpChangeLead",
-                               // "PAGE_DOWN", "scrollDown",
-                               // "shift PAGE_DOWN", "scrollDownExtendSelection",
-                               // "ctrl shift PAGE_DOWN", "scrollDownExtendSelection",
-                               // "ctrl PAGE_DOWN", "scrollDownChangeLead",
-                               // "ctrl A", "selectAll",
-                               // "ctrl SLASH", "selectAll",
-                               // "ctrl BACK_SLASH", "clearSelection",
-                               // "SPACE", "addToSelection",
-                               // "ctrl SPACE", "toggleAndAnchor",
-                               // "shift SPACE", "extendTo",
-                               // "ctrl shift SPACE", "moveSelectionTo"
-                               // }),
-                               // "List.focusInputMap.RightToLeft",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "LEFT", "selectNextColumn",
-                               // "KP_LEFT", "selectNextColumn",
-                               // "shift LEFT", "selectNextColumnExtendSelection",
-                               // "shift KP_LEFT", "selectNextColumnExtendSelection",
-                               // "ctrl shift LEFT", "selectNextColumnExtendSelection",
-                               // "ctrl shift KP_LEFT", "selectNextColumnExtendSelection",
-                               // "ctrl LEFT", "selectNextColumnChangeLead",
-                               // "ctrl KP_LEFT", "selectNextColumnChangeLead",
-                               // "RIGHT", "selectPreviousColumn",
-                               // "KP_RIGHT", "selectPreviousColumn",
-                               // "shift RIGHT", "selectPreviousColumnExtendSelection",
-                               // "shift KP_RIGHT", "selectPreviousColumnExtendSelection",
-                               // "ctrl shift RIGHT", "selectPreviousColumnExtendSelection",
-                               // "ctrl shift KP_RIGHT", "selectPreviousColumnExtendSelection",
-                               // "ctrl RIGHT", "selectPreviousColumnChangeLead",
-                               // "ctrl KP_RIGHT", "selectPreviousColumnChangeLead",
-                               // }),
-                               //
-                               // *** Menus
-                         "MenuBar.font", 
-                         dialogPlain12,
-                               "MenuBar.background",
-                               menu,
-                               "MenuBar.foreground",
-                               menuText,
-                               // "MenuBar.shadow", controlShadow,
-                               // "MenuBar.highlight", controlLtHighlight,
-                               // "MenuBar.border", menuBarBorder,
-                               // "MenuBar.windowBindings", new Object[] {
-                               // "F10", "takeFocus" },
-                               //
-                               "MenuItem.font", dialogPlain12,
-                               //"MenuItem.acceleratorFont", dialogPlain12,
-                               "MenuItem.background",
-                               menu,
-                               "MenuItem.foreground",
-                               menuText,
-                               // "MenuItem.selectionForeground", textHighlightText,
-                               // "MenuItem.selectionBackground", textHighlight,
-                               // "MenuItem.disabledForeground", null,
-                               // "MenuItem.acceleratorForeground", menuText,
-                               // "MenuItem.acceleratorSelectionForeground", textHighlightText,
-                               // "MenuItem.acceleratorDelimiter", menuItemAcceleratorDelimiter,
-                               // "MenuItem.border", marginBorder,
-                               // "MenuItem.borderPainted", Boolean.FALSE,
-                               "MenuItem.margin",
-                               twoInsets,
-                               // "MenuItem.checkIcon", menuItemCheckIcon,
-                               // "MenuItem.arrowIcon", menuItemArrowIcon,
-                               // "MenuItem.commandSound", null,
-                               //
-                         "RadioButtonMenuItem.font", dialogPlain12,
-                               // "RadioButtonMenuItem.acceleratorFont", dialogPlain12,
-                               "RadioButtonMenuItem.background",
-                               menu,
-                               "RadioButtonMenuItem.foreground",
-                               menuText,
-                               // "RadioButtonMenuItem.selectionForeground", textHighlightText,
-                               // "RadioButtonMenuItem.selectionBackground", textHighlight,
-                               // "RadioButtonMenuItem.disabledForeground", null,
-                               // "RadioButtonMenuItem.acceleratorForeground", menuText,
-                               // "RadioButtonMenuItem.acceleratorSelectionForeground",
-                               // textHighlightText,
-                               // "RadioButtonMenuItem.border", marginBorder,
-                               // "RadioButtonMenuItem.borderPainted", Boolean.FALSE,
-                               "RadioButtonMenuItem.margin",
-                               twoInsets,
-                               // "RadioButtonMenuItem.checkIcon", radioButtonMenuItemIcon,
-                               // "RadioButtonMenuItem.arrowIcon", menuItemArrowIcon,
-                               // "RadioButtonMenuItem.commandSound", null,
-
-                        "CheckBoxMenuItem.font", dialogPlain12,
-                               // "CheckBoxMenuItem.acceleratorFont", dialogPlain12,
-                               "CheckBoxMenuItem.background",
-                               menu,
-                               "CheckBoxMenuItem.foreground",
-                               menuText,
-                               // "CheckBoxMenuItem.selectionForeground", textHighlightText,
-                               // "CheckBoxMenuItem.selectionBackground", textHighlight,
-                               // "CheckBoxMenuItem.disabledForeground", null,
-                               // "CheckBoxMenuItem.acceleratorForeground", menuText,
-                               // "CheckBoxMenuItem.acceleratorSelectionForeground", textHighlightText,
-                               // "CheckBoxMenuItem.border", marginBorder,
-                               // "CheckBoxMenuItem.borderPainted", Boolean.FALSE,
-                               "CheckBoxMenuItem.margin",
-                               twoInsets,
-                               // "CheckBoxMenuItem.checkIcon", checkBoxMenuItemIcon,
-                               // "CheckBoxMenuItem.arrowIcon", menuItemArrowIcon,
-                               // "CheckBoxMenuItem.commandSound", null,
-
-                               // "Menu.font", dialogPlain12,
-                               // "Menu.acceleratorFont", dialogPlain12,
-                               "Menu.background",
-                               menu,
-                               "Menu.foreground",
-                               menuText,
-                               // "Menu.selectionForeground", textHighlightText,
-                               // "Menu.selectionBackground", textHighlight,
-                               // "Menu.disabledForeground", null,
-                               // "Menu.acceleratorForeground", menuText,
-                               // "Menu.acceleratorSelectionForeground", textHighlightText,
-                               // "Menu.border", marginBorder,
-                               // "Menu.borderPainted", Boolean.FALSE,
-                               "Menu.margin",
-                               twoInsets,
-                               // "Menu.checkIcon", menuItemCheckIcon,
-                               // "Menu.arrowIcon", menuArrowIcon,
-                               // "Menu.menuPopupOffsetX", new Integer(0),
-                               // "Menu.menuPopupOffsetY", new Integer(0),
-                               // "Menu.submenuPopupOffsetX", new Integer(0),
-                               // "Menu.submenuPopupOffsetY", new Integer(0),
-                               // "Menu.shortcutKeys", new int[] {KeyEvent.ALT_MASK},
-                               // "Menu.crossMenuMnemonic", Boolean.TRUE,
-                               // Menu.cancelMode affects the cancel menu action behaviour;
-                               // currently supports:
-                               // "hideLastSubmenu" (default)
-                               // hides the last open submenu,
-                               // and move selection one step back
-                               // "hideMenuTree"
-                               // resets selection and
-                               // hide the entire structure of open menu and its submenus
-                               // "Menu.cancelMode", "hideLastSubmenu",
-
-                               // Menu.preserveTopLevelSelection affects
-                               // the cancel menu action behaviour
-                               // if set to true then top level menu selection
-                               // will be preserved when the last popup was cancelled;
-                               // the menu itself will be unselect with the next cancel action
-                               // "Menu.preserveTopLevelSelection", Boolean.FALSE,
-
-                               // PopupMenu
-                               // "PopupMenu.font", dialogPlain12,
-                               "PopupMenu.background",
-                               menu,
-                               "PopupMenu.foreground",
-                               menuText,
-                               // "PopupMenu.border", popupMenuBorder,
-                               // Internal Frame Auditory Cue Mappings
-                               // "PopupMenu.popupSound", null,
-                               // // These window InputMap bindings are used when the Menu is
-                               // // selected.
-                               // "PopupMenu.selectedWindowInputMapBindings", new Object[] {
-                               // "ESCAPE", "cancel",
-                               // "DOWN", "selectNext",
-                               // "KP_DOWN", "selectNext",
-                               // "UP", "selectPrevious",
-                               // "KP_UP", "selectPrevious",
-                               // "LEFT", "selectParent",
-                               // "KP_LEFT", "selectParent",
-                               // "RIGHT", "selectChild",
-                               // "KP_RIGHT", "selectChild",
-                               // "ENTER", "return",
-                               // "ctrl ENTER", "return",
-                               // "SPACE", "return"
-                               // },
-                               // "PopupMenu.selectedWindowInputMapBindings.RightToLeft", new Object[]
-                               // {
-                               // "LEFT", "selectChild",
-                               // "KP_LEFT", "selectChild",
-                               // "RIGHT", "selectParent",
-                               // "KP_RIGHT", "selectParent",
-                               // },
-                               "PopupMenu.consumeEventOnClose",
-                               Boolean.FALSE,
-
-                               // *** OptionPane
-                               // You can additionaly define OptionPane.messageFont which will
-                               // dictate the fonts used for the message, and
-                               // OptionPane.buttonFont, which defines the font for the buttons.
-                               // "OptionPane.font", dialogPlain12,
-                               // "OptionPane.background", control,
-                               // "OptionPane.foreground", controlText,
-                               "OptionPane.messageForeground",
-                               controlText,
-                               // "OptionPane.border", optionPaneBorder,
-                               // "OptionPane.messageAreaBorder", zeroBorder,
-                               // "OptionPane.buttonAreaBorder", optionPaneButtonAreaBorder,
-                               // "OptionPane.minimumSize", optionPaneMinimumSize,
-                               // "OptionPane.errorIcon", SwingUtilities2.makeIcon(getClass(),
-                               // BasicLookAndFeel.class,
-                               // "icons/Error.gif"),
-                               // "OptionPane.informationIcon", SwingUtilities2.makeIcon(getClass(),
-                               // BasicLookAndFeel.class,
-                               // "icons/Inform.gif"),
-                               // "OptionPane.warningIcon", SwingUtilities2.makeIcon(getClass(),
-                               // BasicLookAndFeel.class,
-                               // "icons/Warn.gif"),
-                               // "OptionPane.questionIcon", SwingUtilities2.makeIcon(getClass(),
-                               // BasicLookAndFeel.class,
-                               // "icons/Question.gif"),
-                               // "OptionPane.windowBindings", new Object[] {
-                               // "ESCAPE", "close" },
-                               // // OptionPane Auditory Cue Mappings
-                               // "OptionPane.errorSound", null,
-                               // "OptionPane.informationSound", null, // Info and Plain
-                               // "OptionPane.questionSound", null,
-                               // "OptionPane.warningSound", null,
-                               // "OptionPane.buttonClickThreshhold", fiveHundred,
-
-                               // *** Panel
-                                "Panel.font", 
-                                dialogPlain12,
-                                "Panel.background", 
-                                control,
-                                "Panel.foreground",
-              textText,
-
-                               // *** ProgressBar
-                               // "ProgressBar.font", dialogPlain12,
-                               // "ProgressBar.foreground", textHighlight,
-                               // "ProgressBar.background", control,
-                               // "ProgressBar.selectionForeground", control,
-                               // "ProgressBar.selectionBackground", textHighlight,
-                               // "ProgressBar.border", progressBarBorder,
-                               "ProgressBar.cellLength",
-                               new Integer(1),
-                               "ProgressBar.cellSpacing",
-                               zero,
-                               "ProgressBar.repaintInterval",
-                               new Integer(50),
-                               "ProgressBar.cycleTime",
-                               new Integer(3000),
-                               "ProgressBar.horizontalSize",
-                               new DimensionUIResource(146, 12),
-                               "ProgressBar.verticalSize",
-                               new DimensionUIResource(12, 146),
-
-                               // *** Separator
-                               // "Separator.shadow", controlShadow, // DEPRECATED - DO NOT USE!
-                               // "Separator.highlight", controlLtHighlight, // DEPRECATED - DO NOT
-                               // USE!
-                               //
-                               // "Separator.background", controlLtHighlight,
-                               // "Separator.foreground", controlShadow,
-
-                               // *** ScrollBar/ScrollPane/Viewport
-                               // "ScrollBar.background", scrollBarTrack,
-                               "ScrollBar.foreground",
-                               control,
-                               // "ScrollBar.track", table.get("scrollbar"),
-                               // "ScrollBar.trackHighlight", controlDkShadow,
-                               // "ScrollBar.thumb", control,
-                               // "ScrollBar.thumbHighlight", controlLtHighlight,
-                               // "ScrollBar.thumbDarkShadow", controlDkShadow,
-                               // "ScrollBar.thumbShadow", controlShadow,
-                               // "ScrollBar.border", null,
-                               // "ScrollBar.minimumThumbSize", minimumThumbSize,
-                               // "ScrollBar.maximumThumbSize", maximumThumbSize,
-                               // "ScrollBar.ancestorInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "RIGHT", "positiveUnitIncrement",
-                               // "KP_RIGHT", "positiveUnitIncrement",
-                               // "DOWN", "positiveUnitIncrement",
-                               // "KP_DOWN", "positiveUnitIncrement",
-                               // "PAGE_DOWN", "positiveBlockIncrement",
-                               // "LEFT", "negativeUnitIncrement",
-                               // "KP_LEFT", "negativeUnitIncrement",
-                               // "UP", "negativeUnitIncrement",
-                               // "KP_UP", "negativeUnitIncrement",
-                               // "PAGE_UP", "negativeBlockIncrement",
-                               // "HOME", "minScroll",
-                               // "END", "maxScroll"
-                               // }),
-                               // "ScrollBar.ancestorInputMap.RightToLeft",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "RIGHT", "negativeUnitIncrement",
-                               // "KP_RIGHT", "negativeUnitIncrement",
-                               // "LEFT", "positiveUnitIncrement",
-                               // "KP_LEFT", "positiveUnitIncrement",
-                               // }),
-                               "ScrollBar.width",
-                               new Integer(16),
-
-                               // "ScrollPane.font", dialogPlain12,
-                               // "ScrollPane.background", control,
-                               // "ScrollPane.foreground", controlText,
-                               // "ScrollPane.border", textFieldBorder,
-                               // "ScrollPane.viewportBorder", null,
-                               // "ScrollPane.ancestorInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "RIGHT", "unitScrollRight",
-                               // "KP_RIGHT", "unitScrollRight",
-                               // "DOWN", "unitScrollDown",
-                               // "KP_DOWN", "unitScrollDown",
-                               // "LEFT", "unitScrollLeft",
-                               // "KP_LEFT", "unitScrollLeft",
-                               // "UP", "unitScrollUp",
-                               // "KP_UP", "unitScrollUp",
-                               // "PAGE_UP", "scrollUp",
-                               // "PAGE_DOWN", "scrollDown",
-                               // "ctrl PAGE_UP", "scrollLeft",
-                               // "ctrl PAGE_DOWN", "scrollRight",
-                               // "ctrl HOME", "scrollHome",
-                               // "ctrl END", "scrollEnd"
-                               // }),
-                               // "ScrollPane.ancestorInputMap.RightToLeft",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "ctrl PAGE_UP", "scrollRight",
-                               // "ctrl PAGE_DOWN", "scrollLeft",
-                               // }),
-                               //
-                               // "Viewport.font", dialogPlain12,
-                               // "Viewport.background", control,
-                               "Viewport.foreground",
-                               textText,
-
-                               // *** Slider
-                               // "Slider.font", dialogPlain12,
-                               // "Slider.foreground", control,
-                               // "Slider.background", control,
-                               // "Slider.highlight", controlLtHighlight,
-                               // "Slider.tickColor", Color.black,
-                               // "Slider.shadow", controlShadow,
-                               // "Slider.focus", controlDkShadow,
-                               // "Slider.border", null,
-                               "Slider.horizontalSize",
-                               new Dimension(200, 21),
-                               "Slider.verticalSize",
-                               new Dimension(21, 200),
-                               "Slider.minimumHorizontalSize",
-                               new Dimension(36, 21),
-                               "Slider.minimumVerticalSize",
-                               new Dimension(21, 36),
-                               // "Slider.focusInsets", sliderFocusInsets,
-                               // "Slider.focusInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "RIGHT", "positiveUnitIncrement",
-                               // "KP_RIGHT", "positiveUnitIncrement",
-                               // "DOWN", "negativeUnitIncrement",
-                               // "KP_DOWN", "negativeUnitIncrement",
-                               // "PAGE_DOWN", "negativeBlockIncrement",
-                               // "LEFT", "negativeUnitIncrement",
-                               // "KP_LEFT", "negativeUnitIncrement",
-                               // "UP", "positiveUnitIncrement",
-                               // "KP_UP", "positiveUnitIncrement",
-                               // "PAGE_UP", "positiveBlockIncrement",
-                               // "HOME", "minScroll",
-                               // "END", "maxScroll"
-                               // }),
-                               // "Slider.focusInputMap.RightToLeft",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "RIGHT", "negativeUnitIncrement",
-                               // "KP_RIGHT", "negativeUnitIncrement",
-                               // "LEFT", "positiveUnitIncrement",
-                               // "KP_LEFT", "positiveUnitIncrement",
-                               // }),
-                               //
-                               // *** Spinner
-                               "Spinner.font",
-                               monospacedPlain12,
-                               // "Spinner.background", control,
-                               // "Spinner.foreground", control,
-                               // "Spinner.border", textFieldBorder,
-                               // "Spinner.arrowButtonBorder", null,
-                               // "Spinner.arrowButtonInsets", null,
-                               "Spinner.arrowButtonSize",
-                               new Dimension(16, 5),
-                               // "Spinner.ancestorInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "UP", "increment",
-                               // "KP_UP", "increment",
-                               // "DOWN", "decrement",
-                               // "KP_DOWN", "decrement",
-                               // }),
-                               // "Spinner.editorBorderPainted", Boolean.FALSE,
-                               "Spinner.editorAlignment",
-                               JTextField.TRAILING,
-
-                               // *** SplitPane
-                               "SplitPane.background",
-                               control,
-                               // "SplitPane.highlight", controlLtHighlight,
-                               // "SplitPane.shadow", controlShadow,
-                               // "SplitPane.darkShadow", controlDkShadow,
-                               // "SplitPane.border", splitPaneBorder,
-                               "SplitPane.dividerSize",
-                               new Integer(7),
-                               // "SplitPaneDivider.border", splitPaneDividerBorder,
-                               "SplitPaneDivider.draggingColor",
-                               darkGray,
-                               // "SplitPane.ancestorInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "UP", "negativeIncrement",
-                               // "DOWN", "positiveIncrement",
-                               // "LEFT", "negativeIncrement",
-                               // "RIGHT", "positiveIncrement",
-                               // "KP_UP", "negativeIncrement",
-                               // "KP_DOWN", "positiveIncrement",
-                               // "KP_LEFT", "negativeIncrement",
-                               // "KP_RIGHT", "positiveIncrement",
-                               // "HOME", "selectMin",
-                               // "END", "selectMax",
-                               // "F8", "startResize",
-                               // "F6", "toggleFocus",
-                               // "ctrl TAB", "focusOutForward",
-                               // "ctrl shift TAB", "focusOutBackward"
-                               // }),
-                               //
-                               // *** TabbedPane
-                               // "TabbedPane.font", dialogPlain12,
-                               // "TabbedPane.background", control,
-                               // "TabbedPane.foreground", controlText,
-                               // "TabbedPane.highlight", controlLtHighlight,
-                               // "TabbedPane.light", controlHighlight,
-                               // "TabbedPane.shadow", controlShadow,
-                               // "TabbedPane.darkShadow", controlDkShadow,
-                               "TabbedPane.selected",
-                               null,
-                               // "TabbedPane.focus", controlText,
-                               "TabbedPane.textIconGap",
-                               four,
-
-                               // Causes tabs to be painted on top of the content area border.
-                               // The amount of overlap is then controlled by tabAreaInsets.bottom,
-                               // which is zero by default
-                               "TabbedPane.tabsOverlapBorder",
-                               Boolean.FALSE,
-                               // "TabbedPane.selectionFollowsFocus", Boolean.TRUE,
-
-                               "TabbedPane.labelShift",
-                               1,
-                               "TabbedPane.selectedLabelShift",
-                               -1,
-                               "TabbedPane.tabInsets",
-                               tabbedPaneTabInsets,
-                               "TabbedPane.selectedTabPadInsets",
-                               tabbedPaneTabPadInsets,
-                               "TabbedPane.tabAreaInsets",
-                               tabbedPaneTabAreaInsets,
-                               "TabbedPane.contentBorderInsets",
-                               tabbedPaneContentBorderInsets,
-                               "TabbedPane.tabRunOverlay",
-                               new Integer(2),
-                               // "TabbedPane.tabsOpaque", Boolean.TRUE,
-                               // "TabbedPane.contentOpaque", Boolean.TRUE,
-                               // "TabbedPane.focusInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "RIGHT", "navigateRight",
-                               // "KP_RIGHT", "navigateRight",
-                               // "LEFT", "navigateLeft",
-                               // "KP_LEFT", "navigateLeft",
-                               // "UP", "navigateUp",
-                               // "KP_UP", "navigateUp",
-                               // "DOWN", "navigateDown",
-                               // "KP_DOWN", "navigateDown",
-                               // "ctrl DOWN", "requestFocusForVisibleComponent",
-                               // "ctrl KP_DOWN", "requestFocusForVisibleComponent",
-                               // }),
-                               // "TabbedPane.ancestorInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "ctrl PAGE_DOWN", "navigatePageDown",
-                               // "ctrl PAGE_UP", "navigatePageUp",
-                               // "ctrl UP", "requestFocus",
-                               // "ctrl KP_UP", "requestFocus",
-                               // }),
-                               //
-                               //
-                               // *** Table
-                               // "Table.font", dialogPlain12,
-                               // "Table.foreground", controlText, // cell text color
-                               "Table.background",
-                               window, // cell background color
-                               // "Table.selectionForeground", textHighlightText,
-                               // "Table.selectionBackground", textHighlight,
-                               // "Table.dropLineColor", controlShadow,
-                               "Table.dropLineShortColor",
-                               black,
-                               "Table.gridColor",
-                               gray, // grid line color
-                               "Table.focusCellBackground",
-                               window,
-                               "Table.focusCellForeground",
-                               controlText,
-                               // "Table.focusCellHighlightBorder", focusCellHighlightBorder,
-                               // "Table.scrollPaneBorder", loweredBevelBorder,
-                               // "Table.ancestorInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "ctrl C", "copy",
-                               // "ctrl V", "paste",
-                               // "ctrl X", "cut",
-                               // "COPY", "copy",
-                               // "PASTE", "paste",
-                               // "CUT", "cut",
-                               // "control INSERT", "copy",
-                               // "shift INSERT", "paste",
-                               // "shift DELETE", "cut",
-                               // "RIGHT", "selectNextColumn",
-                               // "KP_RIGHT", "selectNextColumn",
-                               // "shift RIGHT", "selectNextColumnExtendSelection",
-                               // "shift KP_RIGHT", "selectNextColumnExtendSelection",
-                               // "ctrl shift RIGHT", "selectNextColumnExtendSelection",
-                               // "ctrl shift KP_RIGHT", "selectNextColumnExtendSelection",
-                               // "ctrl RIGHT", "selectNextColumnChangeLead",
-                               // "ctrl KP_RIGHT", "selectNextColumnChangeLead",
-                               // "LEFT", "selectPreviousColumn",
-                               // "KP_LEFT", "selectPreviousColumn",
-                               // "shift LEFT", "selectPreviousColumnExtendSelection",
-                               // "shift KP_LEFT", "selectPreviousColumnExtendSelection",
-                               // "ctrl shift LEFT", "selectPreviousColumnExtendSelection",
-                               // "ctrl shift KP_LEFT", "selectPreviousColumnExtendSelection",
-                               // "ctrl LEFT", "selectPreviousColumnChangeLead",
-                               // "ctrl KP_LEFT", "selectPreviousColumnChangeLead",
-                               // "DOWN", "selectNextRow",
-                               // "KP_DOWN", "selectNextRow",
-                               // "shift DOWN", "selectNextRowExtendSelection",
-                               // "shift KP_DOWN", "selectNextRowExtendSelection",
-                               // "ctrl shift DOWN", "selectNextRowExtendSelection",
-                               // "ctrl shift KP_DOWN", "selectNextRowExtendSelection",
-                               // "ctrl DOWN", "selectNextRowChangeLead",
-                               // "ctrl KP_DOWN", "selectNextRowChangeLead",
-                               // "UP", "selectPreviousRow",
-                               // "KP_UP", "selectPreviousRow",
-                               // "shift UP", "selectPreviousRowExtendSelection",
-                               // "shift KP_UP", "selectPreviousRowExtendSelection",
-                               // "ctrl shift UP", "selectPreviousRowExtendSelection",
-                               // "ctrl shift KP_UP", "selectPreviousRowExtendSelection",
-                               // "ctrl UP", "selectPreviousRowChangeLead",
-                               // "ctrl KP_UP", "selectPreviousRowChangeLead",
-                               // "HOME", "selectFirstColumn",
-                               // "shift HOME", "selectFirstColumnExtendSelection",
-                               // "ctrl shift HOME", "selectFirstRowExtendSelection",
-                               // "ctrl HOME", "selectFirstRow",
-                               // "END", "selectLastColumn",
-                               // "shift END", "selectLastColumnExtendSelection",
-                               // "ctrl shift END", "selectLastRowExtendSelection",
-                               // "ctrl END", "selectLastRow",
-                               // "PAGE_UP", "scrollUpChangeSelection",
-                               // "shift PAGE_UP", "scrollUpExtendSelection",
-                               // "ctrl shift PAGE_UP", "scrollLeftExtendSelection",
-                               // "ctrl PAGE_UP", "scrollLeftChangeSelection",
-                               // "PAGE_DOWN", "scrollDownChangeSelection",
-                               // "shift PAGE_DOWN", "scrollDownExtendSelection",
-                               // "ctrl shift PAGE_DOWN", "scrollRightExtendSelection",
-                               // "ctrl PAGE_DOWN", "scrollRightChangeSelection",
-                               // "TAB", "selectNextColumnCell",
-                               // "shift TAB", "selectPreviousColumnCell",
-                               // "ENTER", "selectNextRowCell",
-                               // "shift ENTER", "selectPreviousRowCell",
-                               // "ctrl A", "selectAll",
-                               // "ctrl SLASH", "selectAll",
-                               // "ctrl BACK_SLASH", "clearSelection",
-                               // "ESCAPE", "cancel",
-                               // "F2", "startEditing",
-                               // "SPACE", "addToSelection",
-                               // "ctrl SPACE", "toggleAndAnchor",
-                               // "shift SPACE", "extendTo",
-                               // "ctrl shift SPACE", "moveSelectionTo",
-                               // "F8", "focusHeader"
-                               // }),
-                               // "Table.ancestorInputMap.RightToLeft",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "RIGHT", "selectPreviousColumn",
-                               // "KP_RIGHT", "selectPreviousColumn",
-                               // "shift RIGHT", "selectPreviousColumnExtendSelection",
-                               // "shift KP_RIGHT", "selectPreviousColumnExtendSelection",
-                               // "ctrl shift RIGHT", "selectPreviousColumnExtendSelection",
-                               // "ctrl shift KP_RIGHT", "selectPreviousColumnExtendSelection",
-                               // "ctrl RIGHT", "selectPreviousColumnChangeLead",
-                               // "ctrl KP_RIGHT", "selectPreviousColumnChangeLead",
-                               // "LEFT", "selectNextColumn",
-                               // "KP_LEFT", "selectNextColumn",
-                               // "shift LEFT", "selectNextColumnExtendSelection",
-                               // "shift KP_LEFT", "selectNextColumnExtendSelection",
-                               // "ctrl shift LEFT", "selectNextColumnExtendSelection",
-                               // "ctrl shift KP_LEFT", "selectNextColumnExtendSelection",
-                               // "ctrl LEFT", "selectNextColumnChangeLead",
-                               // "ctrl KP_LEFT", "selectNextColumnChangeLead",
-                               // "ctrl PAGE_UP", "scrollRightChangeSelection",
-                               // "ctrl PAGE_DOWN", "scrollLeftChangeSelection",
-                               // "ctrl shift PAGE_UP", "scrollRightExtendSelection",
-                               // "ctrl shift PAGE_DOWN", "scrollLeftExtendSelection",
-                               // }),
-                               // "Table.ascendingSortIcon", new SwingLazyValue(
-                               // "sun.swing.icon.SortArrowIcon",
-                               // null, new Object[] { Boolean.TRUE,
-                               // "Table.sortIconColor" }),
-                               // "Table.descendingSortIcon", new SwingLazyValue(
-                               // "sun.swing.icon.SortArrowIcon",
-                               // null, new Object[] { Boolean.FALSE,
-                               // "Table.sortIconColor" }),
-                               // "Table.sortIconColor", controlShadow,
-                               //
-                               // "TableHeader.font", dialogPlain12,
-                               // "TableHeader.foreground", controlText, // header text color
-                               // "TableHeader.background", control, // header background
-                               // "TableHeader.cellBorder", tableHeaderBorder,
-
-                               // Support for changing the background/border of the currently
-                               // selected header column when the header has the keyboard focus.
-                               // "TableHeader.focusCellBackground", table.getColor("text"), // like
-                               // text component bg
-                               // "TableHeader.focusCellForeground", null,
-                               // "TableHeader.focusCellBorder", null,
-                               // "TableHeader.ancestorInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "SPACE", "toggleSortOrder",
-                               // "LEFT", "selectColumnToLeft",
-                               // "KP_LEFT", "selectColumnToLeft",
-                               // "RIGHT", "selectColumnToRight",
-                               // "KP_RIGHT", "selectColumnToRight",
-                               // "alt LEFT", "moveColumnLeft",
-                               // "alt KP_LEFT", "moveColumnLeft",
-                               // "alt RIGHT", "moveColumnRight",
-                               // "alt KP_RIGHT", "moveColumnRight",
-                               // "alt shift LEFT", "resizeLeft",
-                               // "alt shift KP_LEFT", "resizeLeft",
-                               // "alt shift RIGHT", "resizeRight",
-                               // "alt shift KP_RIGHT", "resizeRight",
-                               // "ESCAPE", "focusTable",
-                               // }),
-                               //
-                               // *** Text
-                               "TextField.font",
-                               sansSerifPlain12,
-                               "TextField.background",
-                               window,
-                               "TextField.foreground",
-                               textText,
-                               // "TextField.shadow", controlShadow,
-                               // "TextField.darkShadow", controlDkShadow,
-                               // "TextField.light", controlHighlight,
-                               // "TextField.highlight", controlLtHighlight,
-                               // "TextField.inactiveForeground", textInactiveText,
-                               // "TextField.inactiveBackground", control,
-                               // "TextField.selectionBackground", textHighlight,
-                               // "TextField.selectionForeground", textHighlightText,
-                               // "TextField.caretForeground", textText,
-                               // "TextField.caretBlinkRate", caretBlinkRate,
-                               // "TextField.border", textFieldBorder,
-                               "TextField.margin",
-                               zeroInsets,
-
-                               "FormattedTextField.font",
-                               sansSerifPlain12,
-                               "FormattedTextField.background",
-                               window,
-                               "FormattedTextField.foreground",
-                               textText,
-                               // "FormattedTextField.inactiveForeground", textInactiveText,
-                               // "FormattedTextField.inactiveBackground", control,
-                               // "FormattedTextField.selectionBackground", textHighlight,
-                               // "FormattedTextField.selectionForeground", textHighlightText,
-                               "FormattedTextField.caretForeground",
-                               textText,
-                               // "FormattedTextField.caretBlinkRate", caretBlinkRate,
-                               // "FormattedTextField.border", textFieldBorder,
-                               "FormattedTextField.margin",
-                               zeroInsets,
-                               // "FormattedTextField.focusInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "ctrl C", DefaultEditorKit.copyAction,
-                               // "ctrl V", DefaultEditorKit.pasteAction,
-                               // "ctrl X", DefaultEditorKit.cutAction,
-                               // "COPY", DefaultEditorKit.copyAction,
-                               // "PASTE", DefaultEditorKit.pasteAction,
-                               // "CUT", DefaultEditorKit.cutAction,
-                               // "control INSERT", DefaultEditorKit.copyAction,
-                               // "shift INSERT", DefaultEditorKit.pasteAction,
-                               // "shift DELETE", DefaultEditorKit.cutAction,
-                               // "shift LEFT", DefaultEditorKit.selectionBackwardAction,
-                               // "shift KP_LEFT", DefaultEditorKit.selectionBackwardAction,
-                               // "shift RIGHT", DefaultEditorKit.selectionForwardAction,
-                               // "shift KP_RIGHT", DefaultEditorKit.selectionForwardAction,
-                               // "ctrl LEFT", DefaultEditorKit.previousWordAction,
-                               // "ctrl KP_LEFT", DefaultEditorKit.previousWordAction,
-                               // "ctrl RIGHT", DefaultEditorKit.nextWordAction,
-                               // "ctrl KP_RIGHT", DefaultEditorKit.nextWordAction,
-                               // "ctrl shift LEFT", DefaultEditorKit.selectionPreviousWordAction,
-                               // "ctrl shift KP_LEFT", DefaultEditorKit.selectionPreviousWordAction,
-                               // "ctrl shift RIGHT", DefaultEditorKit.selectionNextWordAction,
-                               // "ctrl shift KP_RIGHT", DefaultEditorKit.selectionNextWordAction,
-                               // "ctrl A", DefaultEditorKit.selectAllAction,
-                               // "HOME", DefaultEditorKit.beginLineAction,
-                               // "END", DefaultEditorKit.endLineAction,
-                               // "shift HOME", DefaultEditorKit.selectionBeginLineAction,
-                               // "shift END", DefaultEditorKit.selectionEndLineAction,
-                               // "BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
-                               // "shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction,
-                               // "ctrl H", DefaultEditorKit.deletePrevCharAction,
-                               // "DELETE", DefaultEditorKit.deleteNextCharAction,
-                               // "ctrl DELETE", DefaultEditorKit.deleteNextWordAction,
-                               // "ctrl BACK_SPACE", DefaultEditorKit.deletePrevWordAction,
-                               // "RIGHT", DefaultEditorKit.forwardAction,
-                               // "LEFT", DefaultEditorKit.backwardAction,
-                               // "KP_RIGHT", DefaultEditorKit.forwardAction,
-                               // "KP_LEFT", DefaultEditorKit.backwardAction,
-                               // "ENTER", JTextField.notifyAction,
-                               // "ctrl BACK_SLASH", "unselect",
-                               // "control shift O", "toggle-componentOrientation",
-                               // "ESCAPE", "reset-field-edit",
-                               // "UP", "increment",
-                               // "KP_UP", "increment",
-                               // "DOWN", "decrement",
-                               // "KP_DOWN", "decrement",
-                               // }),
-                               //
-                               "PasswordField.font",
-                               monospacedPlain12,
-                               "PasswordField.background",
-                               window,
-                               "PasswordField.foreground",
-                               textText,
-                               // "PasswordField.inactiveForeground", textInactiveText,
-                               // "PasswordField.inactiveBackground", control,
-                               // "PasswordField.selectionBackground", textHighlight,
-                               // "PasswordField.selectionForeground", textHighlightText,
-                               // "PasswordField.caretForeground", textText,
-                               // "PasswordField.caretBlinkRate", caretBlinkRate,
-                               // "PasswordField.border", textFieldBorder,
-                               "PasswordField.margin",
-                               zeroInsets,
-                               "PasswordField.echoChar",
-                               '*',
-
-                               "TextArea.font",
-                               monospacedPlain12,
-                               "TextArea.background",
-                               window,
-                               "TextArea.foreground",
-                               textText,
-                               // "TextArea.inactiveForeground", textInactiveText,
-                               // "TextArea.selectionBackground", textHighlight,
-                               // "TextArea.selectionForeground", textHighlightText,
-                               // "TextArea.caretForeground", textText,
-                               // "TextArea.caretBlinkRate", caretBlinkRate,
-                               // "TextArea.border", marginBorder,
-                               "TextArea.margin",
-                               zeroInsets,
-
-                               "TextPane.font",
-                               serifPlain12,
-                               "TextPane.background",
-                               white,
-                               "TextPane.foreground",
-                               textText,
-                               // "TextPane.selectionBackground", textHighlight,
-                               // "TextPane.selectionForeground", textHighlightText,
-                               // "TextPane.caretForeground", textText,
-                               // "TextPane.caretBlinkRate", caretBlinkRate,
-                               // "TextPane.inactiveForeground", textInactiveText,
-                               // "TextPane.border", marginBorder,
-                               "TextPane.margin",
-                               editorMargin,
-
-                               "EditorPane.font",
-                               serifPlain12,
-                               "EditorPane.background",
-                               white,
-                               "EditorPane.foreground",
-                               textText,
-                               // "EditorPane.selectionBackground", textHighlight,
-                               // "EditorPane.selectionForeground", textHighlightText,
-                               // "EditorPane.caretForeground", textText,
-                               // "EditorPane.caretBlinkRate", caretBlinkRate,
-                               // "EditorPane.inactiveForeground", textInactiveText,
-                               // "EditorPane.border", marginBorder,
-                               "EditorPane.margin",
-                               editorMargin,
-                               //
-                               // "html.pendingImage", SwingUtilities2.makeIcon(getClass(),
-                               // BasicLookAndFeel.class,
-                               // "icons/image-delayed.png"),
-                               // "html.missingImage", SwingUtilities2.makeIcon(getClass(),
-                               // BasicLookAndFeel.class,
-                               // "icons/image-failed.png"),
-                               // *** TitledBorder
-                               // "TitledBorder.font", dialogPlain12,
-                               "TitledBorder.titleColor",
-                               controlText,
-                               // "TitledBorder.border", etchedBorder,
-
-                               // *** ToolBar
-                               // "ToolBar.font", dialogPlain12,
-                               // "ToolBar.background", control,
-                               // "ToolBar.foreground", controlText,
-                               // "ToolBar.shadow", controlShadow,
-                               // "ToolBar.darkShadow", controlDkShadow,
-                               // "ToolBar.light", controlHighlight,
-                               // "ToolBar.highlight", controlLtHighlight,
-                               // "ToolBar.dockingBackground", control,
-                               // "ToolBar.dockingForeground", red,
-                               // "ToolBar.floatingBackground", control,
-                               // "ToolBar.floatingForeground", darkGray,
-                               // "ToolBar.border", etchedBorder,
-                               // "ToolBar.separatorSize", toolBarSeparatorSize,
-                               // "ToolBar.ancestorInputMap",
-                               // new UIDefaults.LazyInputMap(new Object[] {
-                               // "UP", "navigateUp",
-                               // "KP_UP", "navigateUp",
-                               // "DOWN", "navigateDown",
-                               // "KP_DOWN", "navigateDown",
-                               // "LEFT", "navigateLeft",
-                               // "KP_LEFT", "navigateLeft",
-                               // "RIGHT", "navigateRight",
-                               // "KP_RIGHT", "navigateRight"
-                               // }),
-
-                               // *** ToolTips
-                               // "ToolTip.font", sansSerifPlain12,
-                               // "ToolTip.background", table.get("info"),
-                               // "ToolTip.foreground", table.get("infoText"),
-                               // "ToolTip.border", blackLineBorder,
-                               // ToolTips also support backgroundInactive, borderInactive,
-                               // and foregroundInactive
-
-                               // *** ToolTipManager
-                               // ToolTipManager.enableToolTipMode currently supports:
-                               // "allWindows" (default):
-                               // enables tool tips for all windows of all java applications,
-                               // whether the windows are active or inactive
-                               // "activeApplication"
-                               // enables tool tips for windows of an application only when
-                               // the application has an active window
-                               // "ToolTipManager.enableToolTipMode", "allWindows",
-
-                               // *** Tree
-                               "Tree.paintLines",
-                               Boolean.TRUE,
-                               "Tree.lineTypeDashed",
-                               Boolean.FALSE,
-                               // "Tree.font", dialogPlain12,
-                               "Tree.background",
-                               window,
-                               "Tree.foreground",
-                               textText,
-                               "Tree.hash",
-                               gray,
-                               "Tree.textForeground",
-                               textText,
-                               "Tree.textBackground",
-                               table.get("text"),
-                               // "Tree.selectionForeground", textHighlightText,
-                               // "Tree.selectionBackground", textHighlight,
-                               // "Tree.selectionBorderColor", black,
-                               // "Tree.dropLineColor", controlShadow,
-                               // "Tree.editorBorder", blackLineBorder,
-                               "Tree.leftChildIndent", new Integer(7), "Tree.rightChildIndent",
-                               new Integer(13), "Tree.rowHeight", new Integer(16),
-                               "Tree.scrollsOnExpand", Boolean.TRUE,
-                               // "Tree.openIcon", SwingUtilities2.makeIcon(getClass(),
-                               // BasicLookAndFeel.class,
-                               // "icons/TreeOpen.gif"),
-                               // "Tree.closedIcon", SwingUtilities2.makeIcon(getClass(),
-                               // BasicLookAndFeel.class,
-                               // "icons/TreeClosed.gif"),
-                               // "Tree.leafIcon", SwingUtilities2.makeIcon(getClass(),
-                               // BasicLookAndFeel.class,
-                               // "icons/TreeLeaf.gif"),
-                               // "Tree.expandedIcon", null,
-                               // "Tree.collapsedIcon", null,
-                               // "Tree.changeSelectionWithFocus", Boolean.TRUE,
-                               // "Tree.drawsFocusBorderAroundIcon", Boolean.FALSE,
-                               "Tree.timeFactor", oneThousand,
-               // "Tree.focusInputMap",
-               // new UIDefaults.LazyInputMap(new Object[] {
-               // "ctrl C", "copy",
-               // "ctrl V", "paste",
-               // "ctrl X", "cut",
-               // "COPY", "copy",
-               // "PASTE", "paste",
-               // "CUT", "cut",
-               // "control INSERT", "copy",
-               // "shift INSERT", "paste",
-               // "shift DELETE", "cut",
-               // "UP", "selectPrevious",
-               // "KP_UP", "selectPrevious",
-               // "shift UP", "selectPreviousExtendSelection",
-               // "shift KP_UP", "selectPreviousExtendSelection",
-               // "ctrl shift UP", "selectPreviousExtendSelection",
-               // "ctrl shift KP_UP", "selectPreviousExtendSelection",
-               // "ctrl UP", "selectPreviousChangeLead",
-               // "ctrl KP_UP", "selectPreviousChangeLead",
-               // "DOWN", "selectNext",
-               // "KP_DOWN", "selectNext",
-               // "shift DOWN", "selectNextExtendSelection",
-               // "shift KP_DOWN", "selectNextExtendSelection",
-               // "ctrl shift DOWN", "selectNextExtendSelection",
-               // "ctrl shift KP_DOWN", "selectNextExtendSelection",
-               // "ctrl DOWN", "selectNextChangeLead",
-               // "ctrl KP_DOWN", "selectNextChangeLead",
-               // "RIGHT", "selectChild",
-               // "KP_RIGHT", "selectChild",
-               // "LEFT", "selectParent",
-               // "KP_LEFT", "selectParent",
-               // "PAGE_UP", "scrollUpChangeSelection",
-               // "shift PAGE_UP", "scrollUpExtendSelection",
-               // "ctrl shift PAGE_UP", "scrollUpExtendSelection",
-               // "ctrl PAGE_UP", "scrollUpChangeLead",
-               // "PAGE_DOWN", "scrollDownChangeSelection",
-               // "shift PAGE_DOWN", "scrollDownExtendSelection",
-               // "ctrl shift PAGE_DOWN", "scrollDownExtendSelection",
-               // "ctrl PAGE_DOWN", "scrollDownChangeLead",
-               // "HOME", "selectFirst",
-               // "shift HOME", "selectFirstExtendSelection",
-               // "ctrl shift HOME", "selectFirstExtendSelection",
-               // "ctrl HOME", "selectFirstChangeLead",
-               // "END", "selectLast",
-               // "shift END", "selectLastExtendSelection",
-               // "ctrl shift END", "selectLastExtendSelection",
-               // "ctrl END", "selectLastChangeLead",
-               // "F2", "startEditing",
-               // "ctrl A", "selectAll",
-               // "ctrl SLASH", "selectAll",
-               // "ctrl BACK_SLASH", "clearSelection",
-               // "ctrl LEFT", "scrollLeft",
-               // "ctrl KP_LEFT", "scrollLeft",
-               // "ctrl RIGHT", "scrollRight",
-               // "ctrl KP_RIGHT", "scrollRight",
-               // "SPACE", "addToSelection",
-               // "ctrl SPACE", "toggleAndAnchor",
-               // "shift SPACE", "extendTo",
-               // "ctrl shift SPACE", "moveSelectionTo"
-               // }),
-               // "Tree.focusInputMap.RightToLeft",
-               // new UIDefaults.LazyInputMap(new Object[] {
-               // "RIGHT", "selectParent",
-               // "KP_RIGHT", "selectParent",
-               // "LEFT", "selectChild",
-               // "KP_LEFT", "selectChild",
-               // }),
-               // "Tree.ancestorInputMap",
-               // new UIDefaults.LazyInputMap(new Object[] {
-               // "ESCAPE", "cancel"
-               // }),
-               // // Bind specific keys that can invoke popup on currently
-               // // focused JComponent
-               // "RootPane.ancestorInputMap",
-               // new UIDefaults.LazyInputMap(new Object[] {
-               // "shift F10", "postPopup",
-               // "CONTEXT_MENU", "postPopup"
-               // }),
-               //
-               // // These bindings are only enabled when there is a default
-               // // button set on the rootpane.
-               // "RootPane.defaultButtonWindowKeyBindings", new Object[] {
-               // "ENTER", "press",
-               // "released ENTER", "release",
-               // "ctrl ENTER", "press",
-               // "ctrl released ENTER", "release"
-               // },
-               };
-
-               table.putDefaults(defaults);
-       }
-
-       // /**
-       // * Returns the ui that is of type <code>klass</code>, or null if
-       // * one can not be found.
-       // */
-       // static Object getUIOfType(ComponentUI ui, Class klass) {
-       // if (klass.isInstance(ui)) {
-       // return ui;
-       // }
-       // return null;
-       // }
-       //
-       // // ********* Auditory Cue support methods and objects *********
-       // // also see the "AuditoryCues" section of the defaults table
-       //
-       // /**
-       // * Returns an <code>ActionMap</code> containing the audio actions
-       // * for this look and feel.
-       // * <P>
-       // * The returned <code>ActionMap</code> contains <code>Actions</code> that
-       // * embody the ability to render an auditory cue. These auditory
-       // * cues map onto user and system activities that may be useful
-       // * for an end user to know about (such as a dialog box appearing).
-       // * <P>
-       // * At the appropriate time,
-       // * the {@code ComponentUI} is responsible for obtaining an
-       // * <code>Action</code> out of the <code>ActionMap</code> and passing
-       // * it to <code>playSound</code>.
-       // * <P>
-       // * This method first looks up the {@code ActionMap} from the
-       // * defaults using the key {@code "AuditoryCues.actionMap"}.
-       // * <p>
-       // * If the value is {@code non-null}, it is returned. If the value
-       // * of the default {@code "AuditoryCues.actionMap"} is {@code null}
-       // * and the value of the default {@code "AuditoryCues.cueList"} is
-       // * {@code non-null}, an {@code ActionMapUIResource} is created and
-       // * populated. Population is done by iterating over each of the
-       // * elements of the {@code "AuditoryCues.cueList"} array, and
-       // * invoking {@code createAudioAction()} to create an {@code
-       // * Action} for each element. The resulting {@code Action} is
-       // * placed in the {@code ActionMapUIResource}, using the array
-       // * element as the key. For example, if the {@code
-       // * "AuditoryCues.cueList"} array contains a single-element, {@code
-       // * "audioKey"}, the {@code ActionMapUIResource} is created, then
-       // * populated by way of {@code actionMap.put(cueList[0],
-       // * createAudioAction(cueList[0]))}.
-       // * <p>
-       // * If the value of the default {@code "AuditoryCues.actionMap"} is
-       // * {@code null} and the value of the default
-       // * {@code "AuditoryCues.cueList"} is {@code null}, an empty
-       // * {@code ActionMapUIResource} is created.
-       // *
-       // *
-       // * @return an ActionMap containing {@code Actions}
-       // * responsible for playing auditory cues
-       // * @throws ClassCastException if the value of the
-       // * default {@code "AuditoryCues.actionMap"} is not an
-       // * {@code ActionMap}, or the value of the default
-       // * {@code "AuditoryCues.cueList"} is not an {@code Object[]}
-       // * @see #createAudioAction
-       // * @see #playSound(Action)
-       // * @since 1.4
-       // */
-       // protected ActionMap getAudioActionMap() {
-       // ActionMap audioActionMap = (ActionMap)UIManager.get(
-       // "AuditoryCues.actionMap");
-       // if (audioActionMap == null) {
-       // Object[] acList = (Object[])UIManager.get("AuditoryCues.cueList");
-       // if (acList != null) {
-       // audioActionMap = new ActionMapUIResource();
-       // for(int counter = acList.length-1; counter >= 0; counter--) {
-       // audioActionMap.put(acList[counter],
-       // createAudioAction(acList[counter]));
-       // }
-       // }
-       // UIManager.getLookAndFeelDefaults().put("AuditoryCues.actionMap",
-       // audioActionMap);
-       // }
-       // return audioActionMap;
-       // }
-       //
-       // /**
-       // * Creates and returns an {@code Action} used to play a sound.
-       // * <p>
-       // * If {@code key} is {@code non-null}, an {@code Action} is created
-       // * using the value from the defaults with key {@code key}. The value
-       // * identifies the sound resource to load when
-       // * {@code actionPerformed} is invoked on the {@code Action}. The
-       // * sound resource is loaded into a {@code byte[]} by way of
-       // * {@code getClass().getResourceAsStream()}.
-       // *
-       // * @param key the key identifying the audio action
-       // * @return an {@code Action} used to play the source, or {@code null}
-       // * if {@code key} is {@code null}
-       // * @see #playSound(Action)
-       // * @since 1.4
-       // */
-       // protected Action createAudioAction(Object key) {
-       // if (key != null) {
-       // String audioKey = (String)key;
-       // String audioValue = (String)UIManager.get(key);
-       // return new AudioAction(audioKey, audioValue);
-       // } else {
-       // return null;
-       // }
-       // }
-       //
-       // /**
-       // * Pass the name String to the super constructor. This is used
-       // * later to identify the Action and decide whether to play it or
-       // * not. Store the resource String. I is used to get the audio
-       // * resource. In this case, the resource is an audio file.
-       // *
-       // * @since 1.4
-       // */
-       // private class AudioAction extends AbstractAction implements LineListener {
-       // // We strive to only play one sound at a time (other platforms
-       // // appear to do this). This is done by maintaining the field
-       // // clipPlaying. Every time a sound is to be played,
-       // // cancelCurrentSound is invoked to cancel any sound that may be
-       // // playing.
-       // private String audioResource;
-       // private byte[] audioBuffer;
-       //
-       // /**
-       // * The String is the name of the Action and
-       // * points to the audio resource.
-       // * The byte[] is a buffer of the audio bits.
-       // */
-       // public AudioAction(String name, String resource) {
-       // super(name);
-       // audioResource = resource;
-       // }
-       //
-       // public void actionPerformed(ActionEvent e) {
-       // if (audioBuffer == null) {
-       // audioBuffer = loadAudioData(audioResource);
-       // }
-       // if (audioBuffer != null) {
-       // cancelCurrentSound(null);
-       // try {
-       // AudioInputStream soundStream =
-       // AudioSystem.getAudioInputStream(
-       // new ByteArrayInputStream(audioBuffer));
-       // DataLine.Info info =
-       // new DataLine.Info(Clip.class, soundStream.getFormat());
-       // Clip clip = (Clip) AudioSystem.getLine(info);
-       // clip.open(soundStream);
-       // clip.addLineListener(this);
-       //
-       // synchronized(audioLock) {
-       // clipPlaying = clip;
-       // }
-       //
-       // clip.start();
-       // } catch (Exception ex) {}
-       // }
-       // }
-       //
-       // public void update(LineEvent event) {
-       // if (event.getType() == LineEvent.Type.STOP) {
-       // cancelCurrentSound((Clip)event.getLine());
-       // }
-       // }
-       //
-       // /**
-       // * If the parameter is null, or equal to the currently
-       // * playing sound, then cancel the currently playing sound.
-       // */
-       // private void cancelCurrentSound(Clip clip) {
-       // Clip lastClip = null;
-       //
-       // synchronized(audioLock) {
-       // if (clip == null || clip == clipPlaying) {
-       // lastClip = clipPlaying;
-       // clipPlaying = null;
-       // }
-       // }
-       //
-       // if (lastClip != null) {
-       // lastClip.removeLineListener(this);
-       // lastClip.close();
-       // }
-       // }
-       // }
-       //
-       // /**
-       // * Utility method that loads audio bits for the specified
-       // * <code>soundFile</code> filename. If this method is unable to
-       // * build a viable path name from the <code>baseClass</code> and
-       // * <code>soundFile</code> passed into this method, it will
-       // * return <code>null</code>.
-       // *
-       // * @param baseClass used as the root class/location to get the
-       // * soundFile from
-       // * @param soundFile the name of the audio file to be retrieved
-       // * from disk
-       // * @return A byte[] with audio data or null
-       // * @since 1.4
-       // */
-       // private byte[] loadAudioData(final String soundFile){
-       // if (soundFile == null) {
-       // return null;
-       // }
-       // /* Copy resource into a byte array. This is
-       // * necessary because several browsers consider
-       // * Class.getResource a security risk since it
-       // * can be used to load additional classes.
-       // * Class.getResourceAsStream just returns raw
-       // * bytes, which we can convert to a sound.
-       // */
-       // byte[] buffer = (byte[])AccessController.doPrivileged(
-       // new PrivilegedAction() {
-       // public Object run() {
-       // try {
-       // InputStream resource = BasicLookAndFeel.this.
-       // getClass().getResourceAsStream(soundFile);
-       // if (resource == null) {
-       // return null;
-       // }
-       // BufferedInputStream in =
-       // new BufferedInputStream(resource);
-       // ByteArrayOutputStream out =
-       // new ByteArrayOutputStream(1024);
-       // byte[] buffer = new byte[1024];
-       // int n;
-       // while ((n = in.read(buffer)) > 0) {
-       // out.write(buffer, 0, n);
-       // }
-       // in.close();
-       // out.flush();
-       // buffer = out.toByteArray();
-       // return buffer;
-       // } catch (IOException ioe) {
-       // System.err.println(ioe.toString());
-       // return null;
-       // }
-       // }
-       // });
-       // if (buffer == null) {
-       // System.err.println(getClass().getName() + "/" +
-       // soundFile + " not found.");
-       // return null;
-       // }
-       // if (buffer.length == 0) {
-       // System.err.println("warning: " + soundFile +
-       // " is zero-length");
-       // return null;
-       // }
-       // return buffer;
-       // }
-       //
-       // /**
-       // * If necessary, invokes {@code actionPerformed} on
-       // * {@code audioAction} to play a sound.
-       // * The {@code actionPerformed} method is invoked if the value of
-       // * the {@code "AuditoryCues.playList"} default is a {@code
-       // * non-null} {@code Object[]} containing a {@code String} entry
-       // * equal to the name of the {@code audioAction}.
-       // *
-       // * @param audioAction an Action that knows how to render the audio
-       // * associated with the system or user activity
-       // * that is occurring; a value of {@code null}, is
-       // * ignored
-       // * @throws ClassCastException if {@code audioAction} is {@code non-null}
-       // * and the value of the default {@code "AuditoryCues.playList"}
-       // * is not an {@code Object[]}
-       // * @since 1.4
-       // */
-       // protected void playSound(Action audioAction) {
-       // if (audioAction != null) {
-       // Object[] audioStrings = (Object[])
-       // UIManager.get("AuditoryCues.playList");
-       // if (audioStrings != null) {
-       // // create a HashSet to help us decide to play or not
-       // HashSet audioCues = new HashSet();
-       // for (int i = 0; i < audioStrings.length; i++) {
-       // audioCues.add(audioStrings[i]);
-       // }
-       // // get the name of the Action
-       // String actionName = (String)audioAction.getValue(Action.NAME);
-       // // if the actionName is in the audioCues HashSet, play it.
-       // if (audioCues.contains(actionName)) {
-       // audioAction.actionPerformed(new
-       // ActionEvent(this, ActionEvent.ACTION_PERFORMED,
-       // actionName));
-       // }
-       // }
-       // }
-       // }
-       //
-       //
-       // /**
-       // * Sets the parent of the passed in ActionMap to be the audio action
-       // * map.
-       // */
-       // static void installAudioActionMap(ActionMap map) {
-       // LookAndFeel laf = UIManager.getLookAndFeel();
-       // if (laf instanceof BasicLookAndFeel) {
-       // map.setParent(((BasicLookAndFeel)laf).getAudioActionMap());
-       // }
-       // }
-       //
-       //
-       // /**
-       // * Helper method to play a named sound.
-       // *
-       // * @param c JComponent to play the sound for.
-       // * @param actionKey Key for the sound.
-       // */
-       // static void playSound(JComponent c, Object actionKey) {
-       // LookAndFeel laf = UIManager.getLookAndFeel();
-       // if (laf instanceof BasicLookAndFeel) {
-       // ActionMap map = c.getActionMap();
-       // if (map != null) {
-       // Action audioAction = map.get(actionKey);
-       // if (audioAction != null) {
-       // // pass off firing the Action to a utility method
-       // ((BasicLookAndFeel)laf).playSound(audioAction);
-       // }
-       // }
-       // }
-       // }
-       //
-       // /**
-       // * This class contains listener that watches for all the mouse
-       // * events that can possibly invoke popup on the component
-       // */
-       // class AWTEventHelper implements AWTEventListener,PrivilegedAction {
-       // AWTEventHelper() {
-       // super();
-       // AccessController.doPrivileged(this);
-       // }
-       //
-       // public Object run() {
-       // Toolkit tk = Toolkit.getDefaultToolkit();
-       // if(invocator == null) {
-       // tk.addAWTEventListener(this, AWTEvent.MOUSE_EVENT_MASK);
-       // } else {
-       // tk.removeAWTEventListener(invocator);
-       // }
-       // // Return value not used.
-       // return null;
-       // }
-       //
-       // public void eventDispatched(AWTEvent ev) {
-       // int eventID = ev.getID();
-       // if((eventID & AWTEvent.MOUSE_EVENT_MASK) != 0) {
-       // MouseEvent me = (MouseEvent) ev;
-       // if(me.isPopupTrigger()) {
-       // MenuElement[] elems = MenuSelectionManager
-       // .defaultManager()
-       // .getSelectedPath();
-       // if(elems != null && elems.length != 0) {
-       // return;
-       // // We shall not interfere with already opened menu
-       // }
-       // Object c = me.getSource();
-       // JComponent src = null;
-       // if(c instanceof JComponent) {
-       // src = (JComponent) c;
-       // } else if(c instanceof BasicSplitPaneDivider) {
-       // // Special case - if user clicks on divider we must
-       // // invoke popup from the SplitPane
-       // src = (JComponent)
-       // ((BasicSplitPaneDivider)c).getParent();
-       // }
-       // if(src != null) {
-       // if(src.getComponentPopupMenu() != null) {
-       // Point pt = src.getPopupLocation(me);
-       // if(pt == null) {
-       // pt = me.getPoint();
-       // pt = SwingUtilities.convertPoint((Component)c,
-       // pt, src);
-       // }
-       // src.getComponentPopupMenu().show(src, pt.x, pt.y);
-       // me.consume();
-       // }
-       // }
-       // }
-       // }
-       // /* Activate a JInternalFrame if necessary. */
-       // if (eventID == MouseEvent.MOUSE_PRESSED) {
-       // Object object = ev.getSource();
-       // if (!(object instanceof Component)) {
-       // return;
-       // }
-       // Component component = (Component)object;
-       // if (component != null) {
-       // Component parent = component;
-       // while (parent != null && !(parent instanceof Window)) {
-       // if (parent instanceof JInternalFrame) {
-       // // Activate the frame.
-       // try { ((JInternalFrame)parent).setSelected(true); }
-       // catch (PropertyVetoException e1) { }
-       // }
-       // parent = parent.getParent();
-       // }
-       // }
-       // }
-       // }
-       // }
-       //
-       @Override
-       public String getName() {
-               return "SwingJS";
-       }
-
-       @Override
-       public String getID() {
-               return "SwingJS";
-       }
-
-       @Override
-       public String getDescription() {
-               return "SwingJS L&F";
-       }
-
-       @Override
-       public boolean isNativeLookAndFeel() {
-               return true;
-       }
-
-       @Override
-       public boolean isSupportedLookAndFeel() {
-               return true;
-       }
-}
+/*\r
+ * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.\r
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.\r
+ *\r
+ * This code is free software; you can redistribute it and/or modify it\r
+ * under the terms of the GNU General Public License version 2 only, as\r
+ * published by the Free Software Foundation.  Oracle designates this\r
+ * particular file as subject to the "Classpath" exception as provided\r
+ * by Oracle in the LICENSE file that accompanied this code.\r
+ *\r
+ * This code is distributed in the hope that it will be useful, but WITHOUT\r
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License\r
+ * version 2 for more details (a copy is included in the LICENSE file that\r
+ * accompanied this code).\r
+ *\r
+ * You should have received a copy of the GNU General Public License version\r
+ * 2 along with this work; if not, write to the Free Software Foundation,\r
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.\r
+ *\r
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA\r
+ * or visit www.oracle.com if you need additional information or have any\r
+ * questions.\r
+ */\r
+\r
+package swingjs.plaf;\r
+\r
+//import jsjava.awt.AWTEvent;\r
+import jsjava.awt.Color;\r
+import jsjava.awt.Dimension;\r
+import jsjava.awt.Font;\r
+import jsjavax.swing.DefaultListCellRenderer;\r
+import jsjavax.swing.JTextField;\r
+//import jsjava.awt.Component;\r
+//import jsjava.awt.Dimension;\r
+//import jsjava.awt.Font;\r
+//import jsjava.awt.Point;\r
+//import jsjava.awt.Toolkit;\r
+//import jsjava.awt.Window;\r
+//import jsjava.awt.event.AWTEventListener;\r
+//import jsjava.awt.event.ActionEvent;\r
+//import jsjava.awt.event.KeyEvent;\r
+//import jsjava.awt.event.MouseEvent;\r
+//import jsjava.beans.PropertyChangeEvent;\r
+//import jsjava.beans.PropertyChangeListener;\r
+//import jsjava.beans.PropertyVetoException;\r
+//import java.io.BufferedInputStream;\r
+//import java.io.ByteArrayInputStream;\r
+//import java.io.ByteArrayOutputStream;\r
+//import java.io.IOException;\r
+//import java.io.InputStream;\r
+////import java.io.Serializable;\r
+//import jsjava.security.AccessController;\r
+//import jsjava.security.PrivilegedAction;\r
+//import java.util.HashSet;\r
+//import jsjava.util.Locale;\r
+//\r
+////import jsjavax.sound.sampled.AudioInputStream;\r
+////import jsjavax.sound.sampled.AudioSystem;\r
+////import jsjavax.sound.sampled.Clip;\r
+////import jsjavax.sound.sampled.DataLine;\r
+////import jsjavax.sound.sampled.LineEvent;\r
+////import jsjavax.sound.sampled.LineListener;\r
+//import jsjavax.swing.AbstractAction;\r
+//import jsjavax.swing.Action;\r
+//import jsjavax.swing.ActionMap;\r
+//import jsjavax.swing.DefaultListCellRenderer;\r
+//import jsjavax.swing.JComponent;\r
+////import jsjavax.swing.JInternalFrame;\r
+//import jsjavax.swing.JTextField;\r
+//import jsjavax.swing.LookAndFeel;\r
+//import jsjavax.swing.MenuElement;\r
+//import jsjavax.swing.MenuSelectionManager;\r
+//import jsjavax.swing.SwingUtilities;\r
+import jsjavax.swing.LookAndFeel;\r
+import jsjavax.swing.UIDefaults;\r
+//import jsjavax.swing.UIManager;\r
+//import jsjavax.swing.border.BevelBorder;\r
+//import jsjavax.swing.plaf.ActionMapUIResource;\r
+//import jsjavax.swing.plaf.BorderUIResource;\r
+import jsjavax.swing.plaf.ColorUIResource;\r
+import jsjavax.swing.plaf.FontUIResource;\r
+//import jsjavax.swing.plaf.ComponentUI;\r
+import jsjavax.swing.plaf.DimensionUIResource;\r
+//import jsjavax.swing.plaf.DimensionUIResource;\r
+//import jsjavax.swing.plaf.InsetsUIResource;\r
+////import jsjavax.swing.plaf.basic.popupMenuUI;\r
+////import jsjavax.swing.plaf.basic.BasicSplitPaneDivider;\r
+//import jsjavax.swing.text.DefaultEditorKit;\r
+//\r
+//import jssun.awt.AppContext;\r
+//import jssun.swing.SwingUtilities2;\r
+////import jssun.swing.SwingLazyValue;\r
+//\r
+import jsjavax.swing.plaf.InsetsUIResource;\r
+import jssun.swing.SwingLazyValue;\r
+\r
+/**\r
+ * A base class to use in creating a look and feel for Swing.\r
+ * <p>\r
+ * Each of the {@code ComponentUI}s provided by {@code BasicLookAndFeel} derives\r
+ * its behavior from the defaults table. Unless otherwise noted each of the\r
+ * {@code ComponentUI} implementations in this package document the set of\r
+ * defaults they use. Unless otherwise noted the defaults are installed at the\r
+ * time {@code installUI} is invoked, and follow the recommendations outlined in\r
+ * {@code LookAndFeel} for installing defaults.\r
+ * <p>\r
+ * <strong>Warning:</strong> Serialized objects of this class will not be\r
+ * compatible with future Swing releases. The current serialization support is\r
+ * appropriate for short term storage or RMI between applications running the\r
+ * same version of Swing. As of 1.4, support for long term storage of all\r
+ * JavaBeans<sup><font size="-2">TM</font></sup> has been added to the\r
+ * <code>java.beans</code> package. Please see {@link java.beans.XMLEncoder}.\r
+ * \r
+ * @author unattributed\r
+ */\r
+public class HTML5LookAndFeel extends LookAndFeel {\r
+       // /**\r
+       // * Whether or not the developer has created a JPopupMenu.\r
+       // */\r
+       // static boolean needsEventHelper;\r
+       //\r
+       // /**\r
+       // * Lock used when manipulating clipPlaying.\r
+       // */\r
+       // private transient Object audioLock = new Object();\r
+       // /**\r
+       // * The Clip that is currently playing (set in AudioAction).\r
+       // */\r
+       // private Clip clipPlaying;\r
+       //\r
+       // AWTEventHelper invocator = null;\r
+       //\r
+       // /*\r
+       // * Listen for our AppContext being disposed\r
+       // */\r
+       // private PropertyChangeListener disposer = null;\r
+       //\r
+       /**\r
+        * Returns the look and feel defaults. The returned {@code UIDefaults} is\r
+        * populated by invoking, in order, {@code initClassDefaults},\r
+        * {@code initSystemColorDefaults} and {@code initComponentDefaults}.\r
+        * <p>\r
+        * While this method is public, it should only be invoked by the\r
+        * {@code UIManager} when the look and feel is set as the current look and\r
+        * feel and after {@code initialize} has been invoked.\r
+        * \r
+        * @return the look and feel defaults\r
+        * \r
+        * @see #initClassDefaults\r
+        * @see #initSystemColorDefaults\r
+        * @see #initComponentDefaults\r
+        */\r
+       public UIDefaults getDefaults() {\r
+               UIDefaults table = new UIDefaults(610, 0.75f);\r
+\r
+               initClassDefaults(table);\r
+               initSystemColorDefaults(table);\r
+               initComponentDefaults(table);\r
+\r
+               return table;\r
+       }\r
+\r
+       /**\r
+        * {@inheritDoc}\r
+        */\r
+       public void initialize() {\r
+               // if (needsEventHelper) {\r
+               // installAWTEventListener();\r
+               // }\r
+       }\r
+\r
+       void installAWTEventListener() {\r
+               // if (invocator == null) {\r
+               // invocator = new AWTEventHelper();\r
+               // needsEventHelper = true;\r
+               //\r
+               // // Add a PropertyChangeListener to our AppContext so we're alerted\r
+               // // when the AppContext is disposed(), at which time this laf should\r
+               // // be uninitialize()d.\r
+               // disposer = new PropertyChangeListener() {\r
+               // public void propertyChange(PropertyChangeEvent prpChg) {\r
+               // uninitialize();\r
+               // }\r
+               // };\r
+               // AppContext.getAppContext().addPropertyChangeListener(\r
+               // AppContext.GUI_DISPOSED,\r
+               // disposer);\r
+               // }\r
+       }\r
+\r
+       /**\r
+        * {@inheritDoc}\r
+        */\r
+       public void uninitialize() {\r
+               // AppContext context = AppContext.getAppContext();\r
+               // synchronized (popupMenuUI.MOUSE_GRABBER_KEY) {\r
+               // Object grabber = context.get(popupMenuUI.MOUSE_GRABBER_KEY);\r
+               // if (grabber != null) {\r
+               // ((popupMenuUI.MouseGrabber)grabber).uninstall();\r
+               // }\r
+               // }\r
+               // synchronized (popupMenuUI.MENU_KEYBOARD_HELPER_KEY) {\r
+               // Object helper =\r
+               // context.get(popupMenuUI.MENU_KEYBOARD_HELPER_KEY);\r
+               // if (helper != null) {\r
+               // ((popupMenuUI.MenuKeyboardHelper)helper).uninstall();\r
+               // }\r
+               // }\r
+               //\r
+               // if(invocator != null) {\r
+               // AccessController.doPrivileged(invocator);\r
+               // invocator = null;\r
+               // }\r
+               //\r
+               // if (disposer != null) {\r
+               // // Note that we're likely calling removePropertyChangeListener()\r
+               // // during the course of AppContext.firePropertyChange().\r
+               // // However, EventListenerAggreggate has code to safely modify\r
+               // // the list under such circumstances.\r
+               // context.removePropertyChangeListener(AppContext.GUI_DISPOSED,\r
+               // disposer);\r
+               // disposer = null;\r
+               // }\r
+       }\r
+\r
+       /**\r
+        * Populates {@code table} with mappings from {@code uiClassID} to the fully\r
+        * qualified name of the ui class. The value for a particular\r
+        * {@code uiClassID} is {@code "jsjavax.swing.plaf.basic.Basic + uiClassID"}.\r
+        * For example, the value for the {@code uiClassID} {@code TreeUI} is\r
+        * {@code "jsjavax.swing.plaf.basic.BasicTreeUI"}.\r
+        * \r
+        * @param table\r
+        *          the {@code UIDefaults} instance the entries are added to\r
+        * @throws NullPointerException\r
+        *           if {@code table} is {@code null}\r
+        * \r
+        * @see jsjavax.swing.LookAndFeel\r
+        * @see #getDefaults\r
+        */\r
+       protected void initClassDefaults(UIDefaults table) {\r
+               final String packageName = "swingjs.plaf.";\r
+               Object[] uiDefaults = { \r
+               /**/            "ButtonUI",                                             packageName + "JSButtonUI",\r
+               /**/            "CheckBoxUI",                                   packageName + "JSCheckBoxUI", \r
+                               "ColorChooserUI",                               packageName + "JSColorChooserUI", \r
+         /**/          "FormattedTextFieldUI", packageName + "JSFormattedTextFieldUI", \r
+         /**/          "MenuBarUI",                                            packageName + "JSMenuBarUI", \r
+         /**/          "MenuUI",                                                       packageName + "JSMenuUI",\r
+         /**/          "MenuItemUI",                                   packageName + "JSMenuItemUI", \r
+         /**/          "CheckBoxMenuItemUI",   packageName + "JSCheckBoxMenuItemUI", \r
+         /**/          "RadioButtonMenuItemUI", packageName + "JSRadioButtonMenuItemUI", \r
+         /**/          "RadioButtonUI",                                packageName + "JSRadioButtonUI", \r
+         /**/          "ToggleButtonUI",                       packageName + "JSToggleButtonUI", \r
+         /**/          "PopupMenuUI",                                  packageName + "JSPopupMenuUI", \r
+                               "ProgressBarUI",                                packageName + "JSProgressBarUI", \r
+               /**/            "ScrollBarUI",                                  packageName + "JSScrollBarUI", \r
+               /**/            "ScrollPaneUI",                                 packageName + "JSScrollPaneUI", \r
+                               "SplitPaneUI",                                  packageName + "JSSplitPaneUI", \r
+         /**/          "SliderUI",                                             packageName + "JSSliderUI",\r
+               /**/            "SeparatorUI",                                  packageName + "JSSeparatorUI", \r
+                               "SpinnerUI",                                            packageName + "JSSpinnerUI", \r
+               /**/     "ToolBarSeparatorUI",  packageName + "JSToolBarSeparatorUI", \r
+               /**/   "PopupMenuSeparatorUI", packageName + "JSPopupMenuSeparatorUI", \r
+                               "TabbedPaneUI",                                 packageName + "JSTabbedPaneUI", \r
+         /**/   "TextAreaUI",                                  packageName + "JSTextAreaUI", \r
+         /**/   "TextFieldUI",                                         packageName + "JSTextFieldUI", \r
+         /**/   "PasswordFieldUI",                     packageName + "JSPasswordFieldUI", \r
+        "TextPaneUI",                                  packageName + "JSTextPaneUI", \r
+                               "EditorPaneUI",                                 packageName + "JSEditorPaneUI", \r
+                               "TreeUI",                                                               packageName + "JSTreeUI",\r
+               /**/     "LabelUI",                                                     packageName + "JSLabelUI", \r
+                               "ListUI",                                                       packageName + "JSListUI", \r
+                               "ToolBarUI",                                            packageName + "JSToolBarUI",\r
+                               "ToolTipUI",                                            packageName + "JSToolTipUI", \r
+               /**/     "ComboBoxUI",                                  packageName + "JSComboBoxUI", \r
+                               "TableUI",                                                      packageName + "JSTableUI",\r
+                               "TableHeaderUI",                                packageName + "JSTableHeaderUI", \r
+                               "InternalFrameUI",                      packageName + "JSInternalFrameUI", \r
+                               "DesktopPaneUI",                                packageName + "JSDesktopPaneUI", \r
+                               "DesktopIconUI",                                packageName + "JSDesktopIconUI", \r
+                               "OptionPaneUI",                                 packageName + "JSOptionPaneUI", \r
+         /**/          "PanelUI",                                                      packageName + "JSPanelUI",\r
+               /**/            "ViewportUI",                                   packageName + "JSViewportUI", \r
+         /**/    "RootPaneUI",                                         packageName + "JSRootPaneUI"\r
+                               };\r
+\r
+               table.putDefaults(uiDefaults);\r
+       }\r
+\r
+       /**\r
+        * Populates {@code table} with system colors. This creates an array of\r
+        * {@code name-color} pairs and invokes {@code loadSystemColors}.\r
+        * <p>\r
+        * The name is a {@code String} that corresponds to the name of one of the\r
+        * static {@code SystemColor} fields in the {@code SystemColor} class. A\r
+        * name-color pair is created for every such {@code SystemColor} field.\r
+        * <p>\r
+        * The {@code color} corresponds to a hex {@code String} as understood by\r
+        * {@code Color.decode}. For example, one of the {@code name-color} pairs is\r
+        * {@code "desktop"-"#005C5C"}. This corresponds to the {@code SystemColor}\r
+        * field {@code desktop}, with a color value of {@code new Color(0x005C5C)}.\r
+        * <p>\r
+        * The following shows two of the {@code name-color} pairs:\r
+        * \r
+        * <pre>\r
+        * String[] nameColorPairs = new String[] { &quot;desktop&quot;, &quot;#005C5C&quot;, &quot;activeCaption&quot;,\r
+        *              &quot;#000080&quot; };\r
+        * loadSystemColors(table, nameColorPairs, isNativeLookAndFeel());\r
+        * </pre>\r
+        * \r
+        * As previously stated, this invokes {@code loadSystemColors} with the\r
+        * supplied {@code table} and {@code name-color} pair array. The last argument\r
+        * to {@code loadSystemColors} indicates whether the value of the field in\r
+        * {@code SystemColor} should be used. This method passes the value of\r
+        * {@code isNativeLookAndFeel()} as the last argument to\r
+        * {@code loadSystemColors}.\r
+        * \r
+        * @param table\r
+        *          the {@code UIDefaults} object the values are added to\r
+        * @throws NullPointerException\r
+        *           if {@code table} is {@code null}\r
+        * \r
+        * @see jsjava.awt.SystemColor\r
+        * @see #getDefaults\r
+        * @see #loadSystemColors\r
+        */\r
+       protected void initSystemColorDefaults(UIDefaults table) {\r
+               String[] defaultSystemColors = { \r
+                               \r
+                               \r
+//             "desktop", "#005C5C", /*\r
+//                                                                                                                                                                                                                                              * Color of the\r
+//                                                                                                                                                                                                                                              * desktop\r
+//                                                                                                                                                                                                                                              * background\r
+//                                                                                                                                                                                                                                              */\r
+//             "activeCaption", "#000080", /*\r
+//                                                                                                                              * Color for captions (title bars) when they are\r
+//                                                                                                                              * active.\r
+//                                                                                                                              */\r
+//             "activeCaptionText", "#FFFFFF", /*\r
+//                                                                                                                                              * Text color for text in captions (title\r
+//                                                                                                                                              * bars).\r
+//                                                                                                                                              */\r
+//             "activeCaptionBorder", "#C0C0C0", /*\r
+//                                                                                                                                                      * Border color for caption (title bar)\r
+//                                                                                                                                                      * window borders.\r
+//                                                                                                                                                      */\r
+//             "inactiveCaption", "#808080", /*\r
+//                                                                                                                                      * Color for captions (title bars) when not\r
+//                                                                                                                                      * active.\r
+//                                                                                                                                      */\r
+//             "inactiveCaptionText", "#C0C0C0", /*\r
+//                                                                                                                                                      * Text color for text in inactive\r
+//                                                                                                                                                      * captions (title bars).\r
+//                                                                                                                                                      */\r
+//             "inactiveCaptionBorder", "#C0C0C0", /*\r
+//                                                                                                                                                              * Border color for inactive caption\r
+//                                                                                                                                                              * (title bar) window borders.\r
+//                                                                                                                                                              */\r
+                               // plaf.metal.OceanTheme\r
+               "window", "#FFFFFF", /* Default color for the interior of windows */\r
+//             "windowBorder", "#000000", /* ??? */\r
+               "windowText", "#333333", /* ??? */\r
+               "menu", "#C0C0C0", /* Background color for menus */\r
+               "menuText", "#333333", /* Text color for menus */\r
+               "text", "#C0C0C0", /* Text background color */\r
+               "textText", "#333333", /* Text foreground color */\r
+//             "textHighlight", "#000080", /* Text background color when selected */\r
+//             "textHighlightText", "#FFFFFF", /* Text color when selected */\r
+//             "textInactiveText", "#808080", /* Text color when disabled */\r
+               "control", "#EEEEEE", // SECONDARY3 Default color for controls (buttons, sliders, etc)\r
+               "controlText", "#333333", //  Default color for text in controls \r
+//             "controlHighlight", "#C0C0C0", /*\r
+//                                                                                                                                              * Specular highlight (opposite of the\r
+//                                                                                                                                              * shadow)\r
+//                                                                                                                                              */\r
+//             "controlLtHighlight", "#FFFFFF", /* Highlight color for controls */\r
+//             "controlShadow", "#808080", /* Shadow color for controls */\r
+//             "controlDkShadow", "#000000", /* Dark shadow color for controls */\r
+               "scrollbar", "#E0E0E0", /* Scrollbar background (usually the "track") */\r
+               "info", "#FFFFE1", /* ??? */\r
+               "infoText", "#000000" /* ??? */\r
+               };\r
+\r
+               loadSystemColors(table, defaultSystemColors, isNativeLookAndFeel());\r
+       }\r
+\r
+       /**\r
+        * Populates {@code table} with the {@code name-color} pairs in\r
+        * {@code systemColors}. Refer to {@link #initSystemColorDefaults(UIDefaults)}\r
+        * for details on the format of {@code systemColors}.\r
+        * <p>\r
+        * An entry is added to {@code table} for each of the {@code name-color} pairs\r
+        * in {@code systemColors}. The entry key is the {@code name} of the\r
+        * {@code name-color} pair.\r
+        * <p>\r
+        * The value of the entry corresponds to the {@code color} of the\r
+        * {@code name-color} pair. The value of the entry is calculated in one of two\r
+        * ways. With either approach the value is always a {@code ColorUIResource}.\r
+        * <p>\r
+        * If {@code useNative} is {@code false}, the {@code color} is created by\r
+        * using {@code Color.decode} to convert the {@code String} into a\r
+        * {@code Color}. If {@code decode} can not convert the {@code String} into a\r
+        * {@code Color} ({@code NumberFormatException} is thrown) then a\r
+        * {@code ColorUIResource} of black is used.\r
+        * <p>\r
+        * If {@code useNative} is {@code true}, the {@code color} is the value of the\r
+        * field in {@code SystemColor} with the same name as the {@code name} of the\r
+        * {@code name-color} pair. If the field is not valid, a\r
+        * {@code ColorUIResource} of black is used.\r
+        * \r
+        * @param table\r
+        *          the {@code UIDefaults} object the values are added to\r
+        * @param systemColors\r
+        *          array of {@code name-color} pairs as described in\r
+        *          {@link #initSystemColorDefaults(UIDefaults)}\r
+        * @param useNative\r
+        *          whether the color is obtained from {@code SystemColor} or\r
+        *          {@code Color.decode}\r
+        * @throws NullPointerException\r
+        *           if {@code systemColors} is {@code null}; or {@code systemColors}\r
+        *           is not empty, and {@code table} is {@code null}; or one of the\r
+        *           names of the {@code name-color} pairs is {@code null}; or\r
+        *           {@code useNative} is {@code false} and one of the {@code colors}\r
+        *           of the {@code name-color} pairs is {@code null}\r
+        * @throws ArrayIndexOutOfBoundsException\r
+        *           if {@code useNative} is {@code false} and\r
+        *           {@code systemColors.length} is odd\r
+        * \r
+        * @see #initSystemColorDefaults(jsjavax.swing.UIDefaults)\r
+        * @see jsjava.awt.SystemColor\r
+        * @see jsjava.awt.Color#decode(String)\r
+        */\r
+       protected void loadSystemColors(UIDefaults table, String[] systemColors,\r
+                       boolean useNative) {\r
+               /*\r
+                * PENDING(hmuller) We don't load the system colors below because they're\r
+                * not reliable. Hopefully we'll be able to do better in a future version of\r
+                * AWT.\r
+                */\r
+//             if (useNative) {\r
+//                     for (int i = 0; i < systemColors.length; i += 2) {\r
+//                             Color color = Color.black;\r
+//                             // try {\r
+//                             // String name = systemColors[i];\r
+//                             // color = (Color)(SystemColor.class.getField(name).get(null));\r
+//                             // } catch (Exception e) {\r
+//                             // }\r
+//                             table.put(systemColors[i], new ColorUIResource(color));\r
+//                     }\r
+//             } else {\r
+                       for (int i = 0; i < systemColors.length; i += 2) {\r
+                               Color color = Color.black;\r
+                               try {\r
+                                       color = Color.decode(systemColors[i + 1]);\r
+                               } catch (NumberFormatException e) {\r
+                                       e.printStackTrace();\r
+                               }\r
+                               table.put(systemColors[i], new ColorUIResource(color));\r
+                       }\r
+//             }\r
+       }\r
+\r
+       /**\r
+        * Initialize the defaults table with the name of the ResourceBundle used for\r
+        * getting localized defaults. Also initialize the default locale used when no\r
+        * locale is passed into UIDefaults.get(). The default locale should generally\r
+        * not be relied upon. It is here for compatability with releases prior to\r
+        * 1.4.\r
+        */\r
+       private void initResourceBundle(UIDefaults table) {\r
+               // table.setDefaultLocale( Locale.getDefault() );\r
+               // table.addResourceBundle(\r
+               // "com.sun.swing.internal.plaf.basic.resources.basic" );\r
+       }\r
+\r
+       /**\r
+        * Populates {@code table} with the defaults for the basic look and feel.\r
+        * \r
+        * @param table\r
+        *          the {@code UIDefaults} to add the values to\r
+        * @throws NullPointerException\r
+        *           if {@code table} is {@code null}\r
+        */\r
+       protected void initComponentDefaults(UIDefaults table) {\r
+\r
+               initResourceBundle(table);\r
+\r
+               // // *** Shared Integers\r
+               // Integer fiveHundred = new Integer(500);\r
+\r
+               // *** Shared Longs\r
+               Long oneThousand = new Long(1000);\r
+\r
+               // *** Shared Fonts\r
+               Integer twelve = new Integer(12);\r
+               Integer fontPlain = new Integer(Font.PLAIN);\r
+               // Integer fontBold = new Integer(Font.BOLD);\r
+               // Object dialogPlain12 = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.FontUIResource",\r
+               // null,\r
+               // new Object[] {Font.DIALOG, fontPlain, twelve});\r
+               Object serifPlain12 = new FontUIResource(Font.SERIF, Font.PLAIN, 12);\r
+               Object sansSerifPlain12 = new FontUIResource(Font.SANS_SERIF, Font.PLAIN,\r
+                               12);\r
+               Object dialogPlain12 = new FontUIResource(Font.DIALOG, Font.PLAIN, 12);\r
+               Object monospacedPlain12 = new FontUIResource(Font.MONOSPACED, Font.PLAIN, 12);\r
+               // Object dialogBold12 = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.FontUIResource",\r
+               // null,\r
+               // new Object[] {Font.DIALOG, fontBold, twelve});\r
+               //\r
+\r
+               // *** Shared Colors\r
+               // ColorUIResource red = new ColorUIResource(Color.red);\r
+               ColorUIResource black = new ColorUIResource(Color.black);\r
+               ColorUIResource white = new ColorUIResource(Color.white);\r
+               // ColorUIResource yellow = new ColorUIResource(Color.yellow);\r
+               ColorUIResource gray = new ColorUIResource(Color.gray);\r
+               // ColorUIResource lightGray = new ColorUIResource(Color.lightGray);\r
+               ColorUIResource darkGray = new ColorUIResource(Color.darkGray);\r
+               // ColorUIResource scrollBarTrack = new ColorUIResource(224, 224, 224);\r
+\r
+               Color control = table.getColor("control");\r
+               // Color controlDkShadow = table.getColor("controlDkShadow");\r
+               // Color controlHighlight = table.getColor("controlHighlight");\r
+               // Color controlLtHighlight = table.getColor("controlLtHighlight");\r
+               // Color controlShadow = table.getColor("controlShadow");\r
+               Color controlText = table.getColor("controlText");\r
+               Color menu = table.getColor("menu");\r
+               Color menuText = table.getColor("menuText");\r
+               // Color textHighlight = table.getColor("textHighlight");\r
+               // Color textHighlightText = table.getColor("textHighlightText");\r
+               // Color textInactiveText = table.getColor("textInactiveText");\r
+               Color textText = table.getColor("textText");\r
+               Color window = table.getColor("window");\r
+\r
+               // *** Shared Insets\r
+               InsetsUIResource zeroInsets = new InsetsUIResource(0, 0, 0, 0);\r
+               InsetsUIResource twoInsets = new InsetsUIResource(2, 2, 2, 2);\r
+               InsetsUIResource threeInsets = new InsetsUIResource(3, 3, 3, 3);\r
+\r
+               // // *** Shared Borders\r
+               // Object marginBorder = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicBorders$MarginBorder");\r
+               // Object etchedBorder = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.BorderUIResource",\r
+               // "getEtchedBorderUIResource");\r
+               // Object loweredBevelBorder = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.BorderUIResource",\r
+               // "getLoweredBevelBorderUIResource");\r
+               //\r
+               // Object popupMenuBorder = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicBorders",\r
+               // "getInternalFrameBorder");\r
+               //\r
+               // Object blackLineBorder = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.BorderUIResource",\r
+               // "getBlackLineBorderUIResource");\r
+               // Object focusCellHighlightBorder = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.BorderUIResource$LineBorderUIResource",\r
+               // null,\r
+               // new Object[] {yellow});\r
+               //\r
+               // Object noFocusBorder = new\r
+               // BorderUIResource.EmptyBorderUIResource(1,1,1,1);\r
+               //\r
+               // Object tableHeaderBorder = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.BorderUIResource$BevelBorderUIResource",\r
+               // null,\r
+               // new Object[] { new Integer(BevelBorder.RAISED),\r
+               // controlLtHighlight,\r
+               // control,\r
+               // controlDkShadow,\r
+               // controlShadow });\r
+               //\r
+               //\r
+               // // *** Button value objects\r
+               //\r
+               // Object buttonBorder =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicBorders",\r
+               // "getButtonBorder");\r
+               //\r
+               // Object buttonToggleBorder =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicBorders",\r
+               // "getToggleButtonBorder");\r
+               //\r
+               // Object radioButtonBorder =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicBorders",\r
+               // "getRadioButtonBorder");\r
+               //\r
+               // // *** FileChooser / FileView value objects\r
+               //\r
+               // Object newFolderIcon = SwingUtilities2.makeIcon(getClass(),\r
+               // BasicLookAndFeel.class,\r
+               // "icons/NewFolder.gif");\r
+               // Object upFolderIcon = SwingUtilities2.makeIcon(getClass(),\r
+               // BasicLookAndFeel.class,\r
+               // "icons/UpFolder.gif");\r
+               // Object homeFolderIcon = SwingUtilities2.makeIcon(getClass(),\r
+               // BasicLookAndFeel.class,\r
+               // "icons/HomeFolder.gif");\r
+               // Object detailsViewIcon = SwingUtilities2.makeIcon(getClass(),\r
+               // BasicLookAndFeel.class,\r
+               // "icons/DetailsView.gif");\r
+               // Object listViewIcon = SwingUtilities2.makeIcon(getClass(),\r
+               // BasicLookAndFeel.class,\r
+               // "icons/ListView.gif");\r
+               // Object directoryIcon = SwingUtilities2.makeIcon(getClass(),\r
+               // BasicLookAndFeel.class,\r
+               // "icons/Directory.gif");\r
+               // Object fileIcon = SwingUtilities2.makeIcon(getClass(),\r
+               // BasicLookAndFeel.class,\r
+               // "icons/File.gif");\r
+               // Object computerIcon = SwingUtilities2.makeIcon(getClass(),\r
+               // BasicLookAndFeel.class,\r
+               // "icons/Computer.gif");\r
+               // Object hardDriveIcon = SwingUtilities2.makeIcon(getClass(),\r
+               // BasicLookAndFeel.class,\r
+               // "icons/HardDrive.gif");\r
+               // Object floppyDriveIcon = SwingUtilities2.makeIcon(getClass(),\r
+               // BasicLookAndFeel.class,\r
+               // "icons/FloppyDrive.gif");\r
+               //\r
+               //\r
+               // // *** InternalFrame value objects\r
+               //\r
+               // Object internalFrameBorder = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicBorders",\r
+               // "getInternalFrameBorder");\r
+               //\r
+               // // *** List value objects\r
+               //\r
+               Object listCellRendererActiveValue = new UIDefaults.ActiveValue() {\r
+                       public Object createValue(UIDefaults table) {\r
+                               return new DefaultListCellRenderer.UIResource();\r
+                       }\r
+               };\r
+\r
+               //\r
+               // // *** Menus value objects\r
+               //\r
+               // Object menuBarBorder =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicBorders",\r
+               // "getMenuBarBorder");\r
+               //\r
+               // Object menuItemCheckIcon =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicIconFactory",\r
+               // "getMenuItemCheckIcon");\r
+               //\r
+               // Object menuItemArrowIcon =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicIconFactory",\r
+               // "getMenuItemArrowIcon");\r
+               //\r
+               //\r
+               // Object menuArrowIcon =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicIconFactory",\r
+               // "getMenuArrowIcon");\r
+               //\r
+               // Object checkBoxIcon =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicIconFactory",\r
+               // "getCheckBoxIcon");\r
+               //\r
+               // Object radioButtonIcon =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicIconFactory",\r
+               // "getRadioButtonIcon");\r
+               //\r
+               // Object checkBoxMenuItemIcon =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicIconFactory",\r
+               // "getCheckBoxMenuItemIcon");\r
+               //\r
+               // Object radioButtonMenuItemIcon =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicIconFactory",\r
+               // "getRadioButtonMenuItemIcon");\r
+               //\r
+               // Object menuItemAcceleratorDelimiter = new String("+");\r
+               //\r
+               // // *** OptionPane value objects\r
+               //\r
+               // Object optionPaneMinimumSize = new DimensionUIResource(262, 90);\r
+               //\r
+               Integer zero = new Integer(0);\r
+               // Object zeroBorder = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.BorderUIResource$EmptyBorderUIResource",\r
+               // new Object[] {zero, zero, zero, zero});\r
+               //\r
+               // Integer ten = new Integer(10);\r
+               // Object optionPaneBorder = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.BorderUIResource$EmptyBorderUIResource",\r
+               // new Object[] {ten, ten, twelve, ten});\r
+               //\r
+               // Object optionPaneButtonAreaBorder = new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.BorderUIResource$EmptyBorderUIResource",\r
+               // new Object[] {new Integer(6), zero, zero, zero});\r
+               //\r
+               //\r
+               // // *** ProgessBar value objects\r
+               //\r
+               // Object progressBarBorder =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicBorders",\r
+               // "getProgressBarBorder");\r
+               //\r
+               // // ** ScrollBar value objects\r
+               //\r
+               // Object minimumThumbSize = new DimensionUIResource(8,8);\r
+               // Object maximumThumbSize = new DimensionUIResource(4096,4096);\r
+               //\r
+               // // ** Slider value objects\r
+               //\r
+               // Object sliderFocusInsets = twoInsets;\r
+               //\r
+               // Object toolBarSeparatorSize = new DimensionUIResource( 10, 10 );\r
+               //\r
+               //\r
+               // // *** SplitPane value objects\r
+               //\r
+               // Object splitPaneBorder =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicBorders",\r
+               // "getSplitPaneBorder");\r
+               // Object splitPaneDividerBorder =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicBorders",\r
+               // "getSplitPaneDividerBorder");\r
+               //\r
+               // ** TabbedBane value objects\r
+\r
+               Object tabbedPaneTabInsets = new InsetsUIResource(0, 4, 1, 4);\r
+\r
+               Object tabbedPaneTabPadInsets = new InsetsUIResource(2, 2, 2, 1);\r
+\r
+               Object tabbedPaneTabAreaInsets = new InsetsUIResource(3, 2, 0, 2);\r
+\r
+               Object tabbedPaneContentBorderInsets = new InsetsUIResource(2, 2, 3, 3);\r
+\r
+               // *** Text value objects\r
+\r
+               // Object textFieldBorder =\r
+               // new SwingLazyValue(\r
+               // "jsjavax.swing.plaf.basic.BasicBorders",\r
+               // "getTextFieldBorder");\r
+               //\r
+               Object editorMargin = threeInsets;\r
+\r
+               // Object caretBlinkRate = fiveHundred;\r
+               Integer four = new Integer(4);\r
+               //\r
+               // Object[] allAuditoryCues = new Object[] {\r
+               // "CheckBoxMenuItem.commandSound",\r
+               // "InternalFrame.closeSound",\r
+               // "InternalFrame.maximizeSound",\r
+               // "InternalFrame.minimizeSound",\r
+               // "InternalFrame.restoreDownSound",\r
+               // "InternalFrame.restoreUpSound",\r
+               // "MenuItem.commandSound",\r
+               // "OptionPane.errorSound",\r
+               // "OptionPane.informationSound",\r
+               // "OptionPane.questionSound",\r
+               // "OptionPane.warningSound",\r
+               // "PopupMenu.popupSound",\r
+               // "RadioButtonMenuItem.commandSound"};\r
+               //\r
+               // Object[] noAuditoryCues = new Object[] {"mute"};\r
+               //\r
+               // // *** Component Defaults\r
+               //\r
+               Object[] defaults = {\r
+                               "*.font",\r
+                               dialogPlain12,\r
+                               "*.background",\r
+                               control,\r
+                               "*.foreground",\r
+                               controlText,\r
+                               // *** Auditory Feedback\r
+                               // "AuditoryCues.cueList", allAuditoryCues,\r
+                               // "AuditoryCues.allAuditoryCues", allAuditoryCues,\r
+                               // "AuditoryCues.noAuditoryCues", noAuditoryCues,\r
+                               // // this key defines which of the various cues to render.\r
+                               // // L&Fs that want auditory feedback NEED to override playList.\r
+                               // "AuditoryCues.playList", null,\r
+\r
+                               // *** Buttons\r
+                               // "Button.defaultButtonFollowsFocus", Boolean.TRUE,\r
+                               // "Button.font", dialogPlain12,\r
+                               // "Button.background", control,\r
+                               // "Button.foreground", controlText,\r
+                               // "Button.shadow", controlShadow,\r
+                               // "Button.darkShadow", controlDkShadow,\r
+                               // "Button.light", controlHighlight,\r
+                               // "Button.highlight", controlLtHighlight,\r
+                               // "Button.border", buttonBorder,\r
+                               "Button.margin",\r
+                               new InsetsUIResource(2, 14, 2, 14),\r
+                               // "Button.textIconGap", four,\r
+                               // "Button.textShiftOffset", zero,\r
+                               // "Button.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "SPACE", "pressed",\r
+                               // "released SPACE", "released",\r
+                               // "ENTER", "pressed",\r
+                               // "released ENTER", "released"\r
+                               // }),\r
+                               //\r
+                               // "ToggleButton.font", dialogPlain12,\r
+                               // "ToggleButton.background", control,\r
+                               // "ToggleButton.foreground", controlText,\r
+                               // "ToggleButton.shadow", controlShadow,\r
+                               // "ToggleButton.darkShadow", controlDkShadow,\r
+                               // "ToggleButton.light", controlHighlight,\r
+                               // "ToggleButton.highlight", controlLtHighlight,\r
+                               // "ToggleButton.border", buttonToggleBorder,\r
+                               "ToggleButton.margin",\r
+                               new InsetsUIResource(2, 14, 2, 14),\r
+                               "ToggleButton.textIconGap",\r
+                               four,\r
+                               "ToggleButton.textShiftOffset",\r
+                               zero,\r
+                               // "ToggleButton.focusInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "SPACE", "pressed",\r
+                               // "released SPACE", "released"\r
+                               // }),\r
+                               //\r
+                               // "RadioButton.font", dialogPlain12,\r
+                               // "RadioButton.background", control,\r
+                               // "RadioButton.foreground", controlText,\r
+                               // "RadioButton.shadow", controlShadow,\r
+                               // "RadioButton.darkShadow", controlDkShadow,\r
+                               // "RadioButton.light", controlHighlight,\r
+                               // "RadioButton.highlight", controlLtHighlight,\r
+                               // "RadioButton.border", radioButtonBorder,\r
+                               "RadioButton.margin",\r
+                               twoInsets,\r
+                               "RadioButton.textIconGap",\r
+                               four,\r
+                               "RadioButton.textShiftOffset",\r
+                               zero,\r
+                               // "RadioButton.icon", radioButtonIcon,\r
+                               // "RadioButton.focusInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "SPACE", "pressed",\r
+                               // "released SPACE", "released",\r
+                               // "RETURN", "pressed"\r
+                               // }),\r
+                               //\r
+                               // "CheckBox.font", dialogPlain12,\r
+                               // "CheckBox.background", control,\r
+                               // "CheckBox.foreground", controlText,\r
+                               // "CheckBox.border", radioButtonBorder,\r
+                               "CheckBox.margin",\r
+                               twoInsets,\r
+                               "CheckBox.textIconGap",\r
+                               four,\r
+                               "CheckBox.textShiftOffset",\r
+                               zero,\r
+                               // "CheckBox.icon", checkBoxIcon,\r
+                               // "CheckBox.focusInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "SPACE", "pressed",\r
+                               // "released SPACE", "released"\r
+                               // }),\r
+                               // "FileChooser.useSystemExtensionHiding", Boolean.FALSE,\r
+\r
+                               // *** ColorChooser\r
+                               // "ColorChooser.font", dialogPlain12,\r
+                               // "ColorChooser.background", control,\r
+                               // "ColorChooser.foreground", controlText,\r
+                               //\r
+                               "ColorChooser.swatchesSwatchSize",\r
+                               new Dimension(10, 10),\r
+                               "ColorChooser.swatchesRecentSwatchSize",\r
+                               new Dimension(10, 10),\r
+                               "ColorChooser.swatchesDefaultRecentColor",\r
+                               control,\r
+\r
+                               // *** ComboBox\r
+                               "ComboBox.font",\r
+                               sansSerifPlain12,\r
+                               "ComboBox.background",\r
+                               window,\r
+                               "ComboBox.foreground",\r
+                               textText,\r
+                               // "ComboBox.buttonBackground", control,\r
+                               // "ComboBox.buttonShadow", controlShadow,\r
+                               // "ComboBox.buttonDarkShadow", controlDkShadow,\r
+                               // "ComboBox.buttonHighlight", controlLtHighlight,\r
+                               // "ComboBox.selectionBackground", textHighlight,\r
+                               // "ComboBox.selectionForeground", textHighlightText,\r
+                               // "ComboBox.disabledBackground", control,\r
+                               // "ComboBox.disabledForeground", textInactiveText,\r
+                               "ComboBox.timeFactor",\r
+                               oneThousand,\r
+                               "ComboBox.isEnterSelectablePopup",\r
+                               Boolean.FALSE,\r
+                               // "ComboBox.ancestorInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "ESCAPE", "hidePopup",\r
+                               // "PAGE_UP", "pageUpPassThrough",\r
+                               // "PAGE_DOWN", "pageDownPassThrough",\r
+                               // "HOME", "homePassThrough",\r
+                               // "END", "endPassThrough",\r
+                               // "ENTER", "enterPressed"\r
+                               // }),\r
+                               //\r
+                               // *** FileChooser\r
+\r
+                               // "FileChooser.newFolderIcon", newFolderIcon,\r
+                               // "FileChooser.upFolderIcon", upFolderIcon,\r
+                               // "FileChooser.homeFolderIcon", homeFolderIcon,\r
+                               // "FileChooser.detailsViewIcon", detailsViewIcon,\r
+                               // "FileChooser.listViewIcon", listViewIcon,\r
+                               "FileChooser.readOnly",\r
+                               Boolean.FALSE,\r
+                               // "FileChooser.usesSingleFilePane", Boolean.FALSE,\r
+                               // "FileChooser.ancestorInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "ESCAPE", "cancelSelection",\r
+                               // "F5", "refresh",\r
+                               // }),\r
+                               //\r
+                               // "FileView.directoryIcon", directoryIcon,\r
+                               // "FileView.fileIcon", fileIcon,\r
+                               // "FileView.computerIcon", computerIcon,\r
+                               // "FileView.hardDriveIcon", hardDriveIcon,\r
+                               // "FileView.floppyDriveIcon", floppyDriveIcon,\r
+\r
+                               // *** InternalFrame\r
+                               // "InternalFrame.titleFont", dialogBold12,\r
+                               // "InternalFrame.borderColor", control,\r
+                               // "InternalFrame.borderShadow", controlShadow,\r
+                               // "InternalFrame.borderDarkShadow", controlDkShadow,\r
+                               // "InternalFrame.borderHighlight", controlLtHighlight,\r
+                               // "InternalFrame.borderLight", controlHighlight,\r
+                               // "InternalFrame.border", internalFrameBorder,\r
+                               // "InternalFrame.icon", SwingUtilities2.makeIcon(getClass(),\r
+                               // BasicLookAndFeel.class,\r
+                               // "icons/JavaCup16.png"),\r
+                               //\r
+                               // /* Default frame icons are undefined for Basic. */\r
+                               // "InternalFrame.maximizeIcon",\r
+                               // new SwingLazyValue(\r
+                               // "jsjavax.swing.plaf.basic.BasicIconFactory",\r
+                               // "createEmptyFrameIcon"),\r
+                               // "InternalFrame.minimizeIcon",\r
+                               // new SwingLazyValue(\r
+                               // "jsjavax.swing.plaf.basic.BasicIconFactory",\r
+                               // "createEmptyFrameIcon"),\r
+                               // "InternalFrame.iconifyIcon",\r
+                               // new SwingLazyValue(\r
+                               // "jsjavax.swing.plaf.basic.BasicIconFactory",\r
+                               // "createEmptyFrameIcon"),\r
+                               // "InternalFrame.closeIcon",\r
+                               // new SwingLazyValue(\r
+                               // "jsjavax.swing.plaf.basic.BasicIconFactory",\r
+                               // "createEmptyFrameIcon"),\r
+                               // // InternalFrame Auditory Cue Mappings\r
+                               // "InternalFrame.closeSound", null,\r
+                               // "InternalFrame.maximizeSound", null,\r
+                               // "InternalFrame.minimizeSound", null,\r
+                               // "InternalFrame.restoreDownSound", null,\r
+                               // "InternalFrame.restoreUpSound", null,\r
+                               //\r
+                               // "InternalFrame.activeTitleBackground", table.get("activeCaption"),\r
+                               // "InternalFrame.activeTitleForeground",\r
+                               // table.get("activeCaptionText"),\r
+                               // "InternalFrame.inactiveTitleBackground",\r
+                               // table.get("inactiveCaption"),\r
+                               // "InternalFrame.inactiveTitleForeground",\r
+                               // table.get("inactiveCaptionText"),\r
+                               // "InternalFrame.windowBindings", new Object[] {\r
+                               // "shift ESCAPE", "showSystemMenu",\r
+                               // "ctrl SPACE", "showSystemMenu",\r
+                               // "ESCAPE", "hideSystemMenu"},\r
+                               //\r
+                               // "InternalFrameTitlePane.iconifyButtonOpacity", Boolean.TRUE,\r
+                               // "InternalFrameTitlePane.maximizeButtonOpacity", Boolean.TRUE,\r
+                               // "InternalFrameTitlePane.closeButtonOpacity", Boolean.TRUE,\r
+\r
+                               // "DesktopIcon.border", internalFrameBorder,\r
+                               //\r
+                               // "Desktop.minOnScreenInsets", threeInsets,\r
+                               // "Desktop.background", table.get("desktop"),\r
+                               // "Desktop.ancestorInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "ctrl F5", "restore",\r
+                               // "ctrl F4", "close",\r
+                               // "ctrl F7", "move",\r
+                               // "ctrl F8", "resize",\r
+                               // "RIGHT", "right",\r
+                               // "KP_RIGHT", "right",\r
+                               // "shift RIGHT", "shrinkRight",\r
+                               // "shift KP_RIGHT", "shrinkRight",\r
+                               // "LEFT", "left",\r
+                               // "KP_LEFT", "left",\r
+                               // "shift LEFT", "shrinkLeft",\r
+                               // "shift KP_LEFT", "shrinkLeft",\r
+                               // "UP", "up",\r
+                               // "KP_UP", "up",\r
+                               // "shift UP", "shrinkUp",\r
+                               // "shift KP_UP", "shrinkUp",\r
+                               // "DOWN", "down",\r
+                               // "KP_DOWN", "down",\r
+                               // "shift DOWN", "shrinkDown",\r
+                               // "shift KP_DOWN", "shrinkDown",\r
+                               // "ESCAPE", "escape",\r
+                               // "ctrl F9", "minimize",\r
+                               // "ctrl F10", "maximize",\r
+                               // "ctrl F6", "selectNextFrame",\r
+                               // "ctrl TAB", "selectNextFrame",\r
+                               // "ctrl alt F6", "selectNextFrame",\r
+                               // "shift ctrl alt F6", "selectPreviousFrame",\r
+                               // "ctrl F12", "navigateNext",\r
+                               // "shift ctrl F12", "navigatePrevious"\r
+                               // }),\r
+\r
+                               // *** Label\r
+                               // "Label.font", dialogPlain12,\r
+                               // "Label.background", control,\r
+                               // "Label.foreground", controlText,\r
+                               // "Label.disabledForeground", white,\r
+                               // "Label.disabledShadow", controlShadow,\r
+                               "Label.border",\r
+                               null,\r
+\r
+                               // *** List\r
+                               // "List.font", dialogPlain12,\r
+                               "List.background",\r
+                               window,\r
+                               "List.foreground",\r
+                               textText,\r
+                               // "List.selectionBackground", textHighlight,\r
+                               // "List.selectionForeground", textHighlightText,\r
+                               // "List.noFocusBorder", noFocusBorder,\r
+                               // "List.focusCellHighlightBorder", focusCellHighlightBorder,\r
+                               // "List.dropLineColor", controlShadow,\r
+                               // "List.border", null,\r
+                               "List.cellRenderer",\r
+                               listCellRendererActiveValue,\r
+                               "List.timeFactor",\r
+                               oneThousand,\r
+                               // "List.focusInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "ctrl C", "copy",\r
+                               // "ctrl V", "paste",\r
+                               // "ctrl X", "cut",\r
+                               // "COPY", "copy",\r
+                               // "PASTE", "paste",\r
+                               // "CUT", "cut",\r
+                               // "control INSERT", "copy",\r
+                               // "shift INSERT", "paste",\r
+                               // "shift DELETE", "cut",\r
+                               // "UP", "selectPreviousRow",\r
+                               // "KP_UP", "selectPreviousRow",\r
+                               // "shift UP", "selectPreviousRowExtendSelection",\r
+                               // "shift KP_UP", "selectPreviousRowExtendSelection",\r
+                               // "ctrl shift UP", "selectPreviousRowExtendSelection",\r
+                               // "ctrl shift KP_UP", "selectPreviousRowExtendSelection",\r
+                               // "ctrl UP", "selectPreviousRowChangeLead",\r
+                               // "ctrl KP_UP", "selectPreviousRowChangeLead",\r
+                               // "DOWN", "selectNextRow",\r
+                               // "KP_DOWN", "selectNextRow",\r
+                               // "shift DOWN", "selectNextRowExtendSelection",\r
+                               // "shift KP_DOWN", "selectNextRowExtendSelection",\r
+                               // "ctrl shift DOWN", "selectNextRowExtendSelection",\r
+                               // "ctrl shift KP_DOWN", "selectNextRowExtendSelection",\r
+                               // "ctrl DOWN", "selectNextRowChangeLead",\r
+                               // "ctrl KP_DOWN", "selectNextRowChangeLead",\r
+                               // "LEFT", "selectPreviousColumn",\r
+                               // "KP_LEFT", "selectPreviousColumn",\r
+                               // "shift LEFT", "selectPreviousColumnExtendSelection",\r
+                               // "shift KP_LEFT", "selectPreviousColumnExtendSelection",\r
+                               // "ctrl shift LEFT", "selectPreviousColumnExtendSelection",\r
+                               // "ctrl shift KP_LEFT", "selectPreviousColumnExtendSelection",\r
+                               // "ctrl LEFT", "selectPreviousColumnChangeLead",\r
+                               // "ctrl KP_LEFT", "selectPreviousColumnChangeLead",\r
+                               // "RIGHT", "selectNextColumn",\r
+                               // "KP_RIGHT", "selectNextColumn",\r
+                               // "shift RIGHT", "selectNextColumnExtendSelection",\r
+                               // "shift KP_RIGHT", "selectNextColumnExtendSelection",\r
+                               // "ctrl shift RIGHT", "selectNextColumnExtendSelection",\r
+                               // "ctrl shift KP_RIGHT", "selectNextColumnExtendSelection",\r
+                               // "ctrl RIGHT", "selectNextColumnChangeLead",\r
+                               // "ctrl KP_RIGHT", "selectNextColumnChangeLead",\r
+                               // "HOME", "selectFirstRow",\r
+                               // "shift HOME", "selectFirstRowExtendSelection",\r
+                               // "ctrl shift HOME", "selectFirstRowExtendSelection",\r
+                               // "ctrl HOME", "selectFirstRowChangeLead",\r
+                               // "END", "selectLastRow",\r
+                               // "shift END", "selectLastRowExtendSelection",\r
+                               // "ctrl shift END", "selectLastRowExtendSelection",\r
+                               // "ctrl END", "selectLastRowChangeLead",\r
+                               // "PAGE_UP", "scrollUp",\r
+                               // "shift PAGE_UP", "scrollUpExtendSelection",\r
+                               // "ctrl shift PAGE_UP", "scrollUpExtendSelection",\r
+                               // "ctrl PAGE_UP", "scrollUpChangeLead",\r
+                               // "PAGE_DOWN", "scrollDown",\r
+                               // "shift PAGE_DOWN", "scrollDownExtendSelection",\r
+                               // "ctrl shift PAGE_DOWN", "scrollDownExtendSelection",\r
+                               // "ctrl PAGE_DOWN", "scrollDownChangeLead",\r
+                               // "ctrl A", "selectAll",\r
+                               // "ctrl SLASH", "selectAll",\r
+                               // "ctrl BACK_SLASH", "clearSelection",\r
+                               // "SPACE", "addToSelection",\r
+                               // "ctrl SPACE", "toggleAndAnchor",\r
+                               // "shift SPACE", "extendTo",\r
+                               // "ctrl shift SPACE", "moveSelectionTo"\r
+                               // }),\r
+                               // "List.focusInputMap.RightToLeft",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "LEFT", "selectNextColumn",\r
+                               // "KP_LEFT", "selectNextColumn",\r
+                               // "shift LEFT", "selectNextColumnExtendSelection",\r
+                               // "shift KP_LEFT", "selectNextColumnExtendSelection",\r
+                               // "ctrl shift LEFT", "selectNextColumnExtendSelection",\r
+                               // "ctrl shift KP_LEFT", "selectNextColumnExtendSelection",\r
+                               // "ctrl LEFT", "selectNextColumnChangeLead",\r
+                               // "ctrl KP_LEFT", "selectNextColumnChangeLead",\r
+                               // "RIGHT", "selectPreviousColumn",\r
+                               // "KP_RIGHT", "selectPreviousColumn",\r
+                               // "shift RIGHT", "selectPreviousColumnExtendSelection",\r
+                               // "shift KP_RIGHT", "selectPreviousColumnExtendSelection",\r
+                               // "ctrl shift RIGHT", "selectPreviousColumnExtendSelection",\r
+                               // "ctrl shift KP_RIGHT", "selectPreviousColumnExtendSelection",\r
+                               // "ctrl RIGHT", "selectPreviousColumnChangeLead",\r
+                               // "ctrl KP_RIGHT", "selectPreviousColumnChangeLead",\r
+                               // }),\r
+                               //\r
+                               // *** Menus\r
+                         "MenuBar.font", \r
+                         dialogPlain12,\r
+                               "MenuBar.background",\r
+                               menu,\r
+                               "MenuBar.foreground",\r
+                               menuText,\r
+                               // "MenuBar.shadow", controlShadow,\r
+                               // "MenuBar.highlight", controlLtHighlight,\r
+                               // "MenuBar.border", menuBarBorder,\r
+                               // "MenuBar.windowBindings", new Object[] {\r
+                               // "F10", "takeFocus" },\r
+                               //\r
+                               "MenuItem.font", dialogPlain12,\r
+                               //"MenuItem.acceleratorFont", dialogPlain12,\r
+                               "MenuItem.background",\r
+                               menu,\r
+                               "MenuItem.foreground",\r
+                               menuText,\r
+                               // "MenuItem.selectionForeground", textHighlightText,\r
+                               // "MenuItem.selectionBackground", textHighlight,\r
+                               // "MenuItem.disabledForeground", null,\r
+                               // "MenuItem.acceleratorForeground", menuText,\r
+                               // "MenuItem.acceleratorSelectionForeground", textHighlightText,\r
+                               // "MenuItem.acceleratorDelimiter", menuItemAcceleratorDelimiter,\r
+                               // "MenuItem.border", marginBorder,\r
+                               // "MenuItem.borderPainted", Boolean.FALSE,\r
+                               "MenuItem.margin",\r
+                               twoInsets,\r
+                               // "MenuItem.checkIcon", menuItemCheckIcon,\r
+                               // "MenuItem.arrowIcon", menuItemArrowIcon,\r
+                               // "MenuItem.commandSound", null,\r
+                               //\r
+                         "RadioButtonMenuItem.font", dialogPlain12,\r
+                               // "RadioButtonMenuItem.acceleratorFont", dialogPlain12,\r
+                               "RadioButtonMenuItem.background",\r
+                               menu,\r
+                               "RadioButtonMenuItem.foreground",\r
+                               menuText,\r
+                               // "RadioButtonMenuItem.selectionForeground", textHighlightText,\r
+                               // "RadioButtonMenuItem.selectionBackground", textHighlight,\r
+                               // "RadioButtonMenuItem.disabledForeground", null,\r
+                               // "RadioButtonMenuItem.acceleratorForeground", menuText,\r
+                               // "RadioButtonMenuItem.acceleratorSelectionForeground",\r
+                               // textHighlightText,\r
+                               // "RadioButtonMenuItem.border", marginBorder,\r
+                               // "RadioButtonMenuItem.borderPainted", Boolean.FALSE,\r
+                               "RadioButtonMenuItem.margin",\r
+                               twoInsets,\r
+                               // "RadioButtonMenuItem.checkIcon", radioButtonMenuItemIcon,\r
+                               // "RadioButtonMenuItem.arrowIcon", menuItemArrowIcon,\r
+                               // "RadioButtonMenuItem.commandSound", null,\r
+\r
+                        "CheckBoxMenuItem.font", dialogPlain12,\r
+                               // "CheckBoxMenuItem.acceleratorFont", dialogPlain12,\r
+                               "CheckBoxMenuItem.background",\r
+                               menu,\r
+                               "CheckBoxMenuItem.foreground",\r
+                               menuText,\r
+                               // "CheckBoxMenuItem.selectionForeground", textHighlightText,\r
+                               // "CheckBoxMenuItem.selectionBackground", textHighlight,\r
+                               // "CheckBoxMenuItem.disabledForeground", null,\r
+                               // "CheckBoxMenuItem.acceleratorForeground", menuText,\r
+                               // "CheckBoxMenuItem.acceleratorSelectionForeground", textHighlightText,\r
+                               // "CheckBoxMenuItem.border", marginBorder,\r
+                               // "CheckBoxMenuItem.borderPainted", Boolean.FALSE,\r
+                               "CheckBoxMenuItem.margin",\r
+                               twoInsets,\r
+                               // "CheckBoxMenuItem.checkIcon", checkBoxMenuItemIcon,\r
+                               // "CheckBoxMenuItem.arrowIcon", menuItemArrowIcon,\r
+                               // "CheckBoxMenuItem.commandSound", null,\r
+\r
+                               // "Menu.font", dialogPlain12,\r
+                               // "Menu.acceleratorFont", dialogPlain12,\r
+                               "Menu.background",\r
+                               menu,\r
+                               "Menu.foreground",\r
+                               menuText,\r
+                               // "Menu.selectionForeground", textHighlightText,\r
+                               // "Menu.selectionBackground", textHighlight,\r
+                               // "Menu.disabledForeground", null,\r
+                               // "Menu.acceleratorForeground", menuText,\r
+                               // "Menu.acceleratorSelectionForeground", textHighlightText,\r
+                               // "Menu.border", marginBorder,\r
+                               // "Menu.borderPainted", Boolean.FALSE,\r
+                               "Menu.margin",\r
+                               twoInsets,\r
+                               // "Menu.checkIcon", menuItemCheckIcon,\r
+                               // "Menu.arrowIcon", menuArrowIcon,\r
+                               // "Menu.menuPopupOffsetX", new Integer(0),\r
+                               // "Menu.menuPopupOffsetY", new Integer(0),\r
+                               // "Menu.submenuPopupOffsetX", new Integer(0),\r
+                               // "Menu.submenuPopupOffsetY", new Integer(0),\r
+                               // "Menu.shortcutKeys", new int[] {KeyEvent.ALT_MASK},\r
+                               // "Menu.crossMenuMnemonic", Boolean.TRUE,\r
+                               // Menu.cancelMode affects the cancel menu action behaviour;\r
+                               // currently supports:\r
+                               // "hideLastSubmenu" (default)\r
+                               // hides the last open submenu,\r
+                               // and move selection one step back\r
+                               // "hideMenuTree"\r
+                               // resets selection and\r
+                               // hide the entire structure of open menu and its submenus\r
+                               // "Menu.cancelMode", "hideLastSubmenu",\r
+\r
+                               // Menu.preserveTopLevelSelection affects\r
+                               // the cancel menu action behaviour\r
+                               // if set to true then top level menu selection\r
+                               // will be preserved when the last popup was cancelled;\r
+                               // the menu itself will be unselect with the next cancel action\r
+                               // "Menu.preserveTopLevelSelection", Boolean.FALSE,\r
+\r
+                               // PopupMenu\r
+                               // "PopupMenu.font", dialogPlain12,\r
+                               "PopupMenu.background",\r
+                               menu,\r
+                               "PopupMenu.foreground",\r
+                               menuText,\r
+                               // "PopupMenu.border", popupMenuBorder,\r
+                               // Internal Frame Auditory Cue Mappings\r
+                               // "PopupMenu.popupSound", null,\r
+                               // // These window InputMap bindings are used when the Menu is\r
+                               // // selected.\r
+                               // "PopupMenu.selectedWindowInputMapBindings", new Object[] {\r
+                               // "ESCAPE", "cancel",\r
+                               // "DOWN", "selectNext",\r
+                               // "KP_DOWN", "selectNext",\r
+                               // "UP", "selectPrevious",\r
+                               // "KP_UP", "selectPrevious",\r
+                               // "LEFT", "selectParent",\r
+                               // "KP_LEFT", "selectParent",\r
+                               // "RIGHT", "selectChild",\r
+                               // "KP_RIGHT", "selectChild",\r
+                               // "ENTER", "return",\r
+                               // "ctrl ENTER", "return",\r
+                               // "SPACE", "return"\r
+                               // },\r
+                               // "PopupMenu.selectedWindowInputMapBindings.RightToLeft", new Object[]\r
+                               // {\r
+                               // "LEFT", "selectChild",\r
+                               // "KP_LEFT", "selectChild",\r
+                               // "RIGHT", "selectParent",\r
+                               // "KP_RIGHT", "selectParent",\r
+                               // },\r
+                               "PopupMenu.consumeEventOnClose",\r
+                               Boolean.FALSE,\r
+\r
+                               // *** OptionPane\r
+                               // You can additionaly define OptionPane.messageFont which will\r
+                               // dictate the fonts used for the message, and\r
+                               // OptionPane.buttonFont, which defines the font for the buttons.\r
+                               // "OptionPane.font", dialogPlain12,\r
+                               // "OptionPane.background", control,\r
+                               // "OptionPane.foreground", controlText,\r
+                               "OptionPane.messageForeground",\r
+                               controlText,\r
+                               // "OptionPane.border", optionPaneBorder,\r
+                               // "OptionPane.messageAreaBorder", zeroBorder,\r
+                               // "OptionPane.buttonAreaBorder", optionPaneButtonAreaBorder,\r
+                               // "OptionPane.minimumSize", optionPaneMinimumSize,\r
+                               // "OptionPane.errorIcon", SwingUtilities2.makeIcon(getClass(),\r
+                               // BasicLookAndFeel.class,\r
+                               // "icons/Error.gif"),\r
+                               // "OptionPane.informationIcon", SwingUtilities2.makeIcon(getClass(),\r
+                               // BasicLookAndFeel.class,\r
+                               // "icons/Inform.gif"),\r
+                               // "OptionPane.warningIcon", SwingUtilities2.makeIcon(getClass(),\r
+                               // BasicLookAndFeel.class,\r
+                               // "icons/Warn.gif"),\r
+                               // "OptionPane.questionIcon", SwingUtilities2.makeIcon(getClass(),\r
+                               // BasicLookAndFeel.class,\r
+                               // "icons/Question.gif"),\r
+                               // "OptionPane.windowBindings", new Object[] {\r
+                               // "ESCAPE", "close" },\r
+                               // // OptionPane Auditory Cue Mappings\r
+                               // "OptionPane.errorSound", null,\r
+                               // "OptionPane.informationSound", null, // Info and Plain\r
+                               // "OptionPane.questionSound", null,\r
+                               // "OptionPane.warningSound", null,\r
+                               // "OptionPane.buttonClickThreshhold", fiveHundred,\r
+\r
+                               // *** Panel\r
+                                "Panel.font", \r
+                                dialogPlain12,\r
+                                "Panel.background", \r
+                                control,\r
+                                "Panel.foreground",\r
+              textText,\r
+\r
+                               // *** ProgressBar\r
+                               // "ProgressBar.font", dialogPlain12,\r
+                               // "ProgressBar.foreground", textHighlight,\r
+                               // "ProgressBar.background", control,\r
+                               // "ProgressBar.selectionForeground", control,\r
+                               // "ProgressBar.selectionBackground", textHighlight,\r
+                               // "ProgressBar.border", progressBarBorder,\r
+                               "ProgressBar.cellLength",\r
+                               new Integer(1),\r
+                               "ProgressBar.cellSpacing",\r
+                               zero,\r
+                               "ProgressBar.repaintInterval",\r
+                               new Integer(50),\r
+                               "ProgressBar.cycleTime",\r
+                               new Integer(3000),\r
+                               "ProgressBar.horizontalSize",\r
+                               new DimensionUIResource(146, 12),\r
+                               "ProgressBar.verticalSize",\r
+                               new DimensionUIResource(12, 146),\r
+\r
+                               // *** Separator\r
+                               // "Separator.shadow", controlShadow, // DEPRECATED - DO NOT USE!\r
+                               // "Separator.highlight", controlLtHighlight, // DEPRECATED - DO NOT\r
+                               // USE!\r
+                               //\r
+                               // "Separator.background", controlLtHighlight,\r
+                               // "Separator.foreground", controlShadow,\r
+\r
+                               // *** ScrollBar/ScrollPane/Viewport\r
+                               // "ScrollBar.background", scrollBarTrack,\r
+                               "ScrollBar.foreground",\r
+                               control,\r
+                               // "ScrollBar.track", table.get("scrollbar"),\r
+                               // "ScrollBar.trackHighlight", controlDkShadow,\r
+                               // "ScrollBar.thumb", control,\r
+                               // "ScrollBar.thumbHighlight", controlLtHighlight,\r
+                               // "ScrollBar.thumbDarkShadow", controlDkShadow,\r
+                               // "ScrollBar.thumbShadow", controlShadow,\r
+                               // "ScrollBar.border", null,\r
+                               // "ScrollBar.minimumThumbSize", minimumThumbSize,\r
+                               // "ScrollBar.maximumThumbSize", maximumThumbSize,\r
+                               // "ScrollBar.ancestorInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "RIGHT", "positiveUnitIncrement",\r
+                               // "KP_RIGHT", "positiveUnitIncrement",\r
+                               // "DOWN", "positiveUnitIncrement",\r
+                               // "KP_DOWN", "positiveUnitIncrement",\r
+                               // "PAGE_DOWN", "positiveBlockIncrement",\r
+                               // "LEFT", "negativeUnitIncrement",\r
+                               // "KP_LEFT", "negativeUnitIncrement",\r
+                               // "UP", "negativeUnitIncrement",\r
+                               // "KP_UP", "negativeUnitIncrement",\r
+                               // "PAGE_UP", "negativeBlockIncrement",\r
+                               // "HOME", "minScroll",\r
+                               // "END", "maxScroll"\r
+                               // }),\r
+                               // "ScrollBar.ancestorInputMap.RightToLeft",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "RIGHT", "negativeUnitIncrement",\r
+                               // "KP_RIGHT", "negativeUnitIncrement",\r
+                               // "LEFT", "positiveUnitIncrement",\r
+                               // "KP_LEFT", "positiveUnitIncrement",\r
+                               // }),\r
+                               "ScrollBar.width",\r
+                               new Integer(16),\r
+\r
+                               // "ScrollPane.font", dialogPlain12,\r
+                               // "ScrollPane.background", control,\r
+                               // "ScrollPane.foreground", controlText,\r
+                               // "ScrollPane.border", textFieldBorder,\r
+                               // "ScrollPane.viewportBorder", null,\r
+                               // "ScrollPane.ancestorInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "RIGHT", "unitScrollRight",\r
+                               // "KP_RIGHT", "unitScrollRight",\r
+                               // "DOWN", "unitScrollDown",\r
+                               // "KP_DOWN", "unitScrollDown",\r
+                               // "LEFT", "unitScrollLeft",\r
+                               // "KP_LEFT", "unitScrollLeft",\r
+                               // "UP", "unitScrollUp",\r
+                               // "KP_UP", "unitScrollUp",\r
+                               // "PAGE_UP", "scrollUp",\r
+                               // "PAGE_DOWN", "scrollDown",\r
+                               // "ctrl PAGE_UP", "scrollLeft",\r
+                               // "ctrl PAGE_DOWN", "scrollRight",\r
+                               // "ctrl HOME", "scrollHome",\r
+                               // "ctrl END", "scrollEnd"\r
+                               // }),\r
+                               // "ScrollPane.ancestorInputMap.RightToLeft",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "ctrl PAGE_UP", "scrollRight",\r
+                               // "ctrl PAGE_DOWN", "scrollLeft",\r
+                               // }),\r
+                               //\r
+                               // "Viewport.font", dialogPlain12,\r
+                               // "Viewport.background", control,\r
+                               "Viewport.foreground",\r
+                               textText,\r
+\r
+                               // *** Slider\r
+                               // "Slider.font", dialogPlain12,\r
+                               // "Slider.foreground", control,\r
+                               // "Slider.background", control,\r
+                               // "Slider.highlight", controlLtHighlight,\r
+                               // "Slider.tickColor", Color.black,\r
+                               // "Slider.shadow", controlShadow,\r
+                               // "Slider.focus", controlDkShadow,\r
+                               // "Slider.border", null,\r
+                               "Slider.horizontalSize",\r
+                               new Dimension(200, 21),\r
+                               "Slider.verticalSize",\r
+                               new Dimension(21, 200),\r
+                               "Slider.minimumHorizontalSize",\r
+                               new Dimension(36, 21),\r
+                               "Slider.minimumVerticalSize",\r
+                               new Dimension(21, 36),\r
+                               // "Slider.focusInsets", sliderFocusInsets,\r
+                               // "Slider.focusInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "RIGHT", "positiveUnitIncrement",\r
+                               // "KP_RIGHT", "positiveUnitIncrement",\r
+                               // "DOWN", "negativeUnitIncrement",\r
+                               // "KP_DOWN", "negativeUnitIncrement",\r
+                               // "PAGE_DOWN", "negativeBlockIncrement",\r
+                               // "LEFT", "negativeUnitIncrement",\r
+                               // "KP_LEFT", "negativeUnitIncrement",\r
+                               // "UP", "positiveUnitIncrement",\r
+                               // "KP_UP", "positiveUnitIncrement",\r
+                               // "PAGE_UP", "positiveBlockIncrement",\r
+                               // "HOME", "minScroll",\r
+                               // "END", "maxScroll"\r
+                               // }),\r
+                               // "Slider.focusInputMap.RightToLeft",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "RIGHT", "negativeUnitIncrement",\r
+                               // "KP_RIGHT", "negativeUnitIncrement",\r
+                               // "LEFT", "positiveUnitIncrement",\r
+                               // "KP_LEFT", "positiveUnitIncrement",\r
+                               // }),\r
+                               //\r
+                               // *** Spinner\r
+                               "Spinner.font",\r
+                               monospacedPlain12,\r
+                               // "Spinner.background", control,\r
+                               // "Spinner.foreground", control,\r
+                               // "Spinner.border", textFieldBorder,\r
+                               // "Spinner.arrowButtonBorder", null,\r
+                               // "Spinner.arrowButtonInsets", null,\r
+                               "Spinner.arrowButtonSize",\r
+                               new Dimension(16, 5),\r
+                               // "Spinner.ancestorInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "UP", "increment",\r
+                               // "KP_UP", "increment",\r
+                               // "DOWN", "decrement",\r
+                               // "KP_DOWN", "decrement",\r
+                               // }),\r
+                               // "Spinner.editorBorderPainted", Boolean.FALSE,\r
+                               "Spinner.editorAlignment",\r
+                               JTextField.TRAILING,\r
+\r
+                               // *** SplitPane\r
+                               "SplitPane.background",\r
+                               control,\r
+                               // "SplitPane.highlight", controlLtHighlight,\r
+                               // "SplitPane.shadow", controlShadow,\r
+                               // "SplitPane.darkShadow", controlDkShadow,\r
+                               // "SplitPane.border", splitPaneBorder,\r
+                               "SplitPane.dividerSize",\r
+                               new Integer(7),\r
+                               // "SplitPaneDivider.border", splitPaneDividerBorder,\r
+                               "SplitPaneDivider.draggingColor",\r
+                               darkGray,\r
+                               // "SplitPane.ancestorInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "UP", "negativeIncrement",\r
+                               // "DOWN", "positiveIncrement",\r
+                               // "LEFT", "negativeIncrement",\r
+                               // "RIGHT", "positiveIncrement",\r
+                               // "KP_UP", "negativeIncrement",\r
+                               // "KP_DOWN", "positiveIncrement",\r
+                               // "KP_LEFT", "negativeIncrement",\r
+                               // "KP_RIGHT", "positiveIncrement",\r
+                               // "HOME", "selectMin",\r
+                               // "END", "selectMax",\r
+                               // "F8", "startResize",\r
+                               // "F6", "toggleFocus",\r
+                               // "ctrl TAB", "focusOutForward",\r
+                               // "ctrl shift TAB", "focusOutBackward"\r
+                               // }),\r
+                               //\r
+                               // *** TabbedPane\r
+                               // "TabbedPane.font", dialogPlain12,\r
+                               // "TabbedPane.background", control,\r
+                               // "TabbedPane.foreground", controlText,\r
+                               // "TabbedPane.highlight", controlLtHighlight,\r
+                               // "TabbedPane.light", controlHighlight,\r
+                               // "TabbedPane.shadow", controlShadow,\r
+                               // "TabbedPane.darkShadow", controlDkShadow,\r
+                               "TabbedPane.selected",\r
+                               null,\r
+                               // "TabbedPane.focus", controlText,\r
+                               "TabbedPane.textIconGap",\r
+                               four,\r
+\r
+                               // Causes tabs to be painted on top of the content area border.\r
+                               // The amount of overlap is then controlled by tabAreaInsets.bottom,\r
+                               // which is zero by default\r
+                               "TabbedPane.tabsOverlapBorder",\r
+                               Boolean.FALSE,\r
+                               // "TabbedPane.selectionFollowsFocus", Boolean.TRUE,\r
+\r
+                               "TabbedPane.labelShift",\r
+                               1,\r
+                               "TabbedPane.selectedLabelShift",\r
+                               -1,\r
+                               "TabbedPane.tabInsets",\r
+                               tabbedPaneTabInsets,\r
+                               "TabbedPane.selectedTabPadInsets",\r
+                               tabbedPaneTabPadInsets,\r
+                               "TabbedPane.tabAreaInsets",\r
+                               tabbedPaneTabAreaInsets,\r
+                               "TabbedPane.contentBorderInsets",\r
+                               tabbedPaneContentBorderInsets,\r
+                               "TabbedPane.tabRunOverlay",\r
+                               new Integer(2),\r
+                               // "TabbedPane.tabsOpaque", Boolean.TRUE,\r
+                               // "TabbedPane.contentOpaque", Boolean.TRUE,\r
+                               // "TabbedPane.focusInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "RIGHT", "navigateRight",\r
+                               // "KP_RIGHT", "navigateRight",\r
+                               // "LEFT", "navigateLeft",\r
+                               // "KP_LEFT", "navigateLeft",\r
+                               // "UP", "navigateUp",\r
+                               // "KP_UP", "navigateUp",\r
+                               // "DOWN", "navigateDown",\r
+                               // "KP_DOWN", "navigateDown",\r
+                               // "ctrl DOWN", "requestFocusForVisibleComponent",\r
+                               // "ctrl KP_DOWN", "requestFocusForVisibleComponent",\r
+                               // }),\r
+                               // "TabbedPane.ancestorInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "ctrl PAGE_DOWN", "navigatePageDown",\r
+                               // "ctrl PAGE_UP", "navigatePageUp",\r
+                               // "ctrl UP", "requestFocus",\r
+                               // "ctrl KP_UP", "requestFocus",\r
+                               // }),\r
+                               //\r
+                               //\r
+                               // *** Table\r
+                               // "Table.font", dialogPlain12,\r
+                               // "Table.foreground", controlText, // cell text color\r
+                               "Table.background",\r
+                               window, // cell background color\r
+                               // "Table.selectionForeground", textHighlightText,\r
+                               // "Table.selectionBackground", textHighlight,\r
+                               // "Table.dropLineColor", controlShadow,\r
+                               "Table.dropLineShortColor",\r
+                               black,\r
+                               "Table.gridColor",\r
+                               gray, // grid line color\r
+                               "Table.focusCellBackground",\r
+                               window,\r
+                               "Table.focusCellForeground",\r
+                               controlText,\r
+                               // "Table.focusCellHighlightBorder", focusCellHighlightBorder,\r
+                               // "Table.scrollPaneBorder", loweredBevelBorder,\r
+                               // "Table.ancestorInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "ctrl C", "copy",\r
+                               // "ctrl V", "paste",\r
+                               // "ctrl X", "cut",\r
+                               // "COPY", "copy",\r
+                               // "PASTE", "paste",\r
+                               // "CUT", "cut",\r
+                               // "control INSERT", "copy",\r
+                               // "shift INSERT", "paste",\r
+                               // "shift DELETE", "cut",\r
+                               // "RIGHT", "selectNextColumn",\r
+                               // "KP_RIGHT", "selectNextColumn",\r
+                               // "shift RIGHT", "selectNextColumnExtendSelection",\r
+                               // "shift KP_RIGHT", "selectNextColumnExtendSelection",\r
+                               // "ctrl shift RIGHT", "selectNextColumnExtendSelection",\r
+                               // "ctrl shift KP_RIGHT", "selectNextColumnExtendSelection",\r
+                               // "ctrl RIGHT", "selectNextColumnChangeLead",\r
+                               // "ctrl KP_RIGHT", "selectNextColumnChangeLead",\r
+                               // "LEFT", "selectPreviousColumn",\r
+                               // "KP_LEFT", "selectPreviousColumn",\r
+                               // "shift LEFT", "selectPreviousColumnExtendSelection",\r
+                               // "shift KP_LEFT", "selectPreviousColumnExtendSelection",\r
+                               // "ctrl shift LEFT", "selectPreviousColumnExtendSelection",\r
+                               // "ctrl shift KP_LEFT", "selectPreviousColumnExtendSelection",\r
+                               // "ctrl LEFT", "selectPreviousColumnChangeLead",\r
+                               // "ctrl KP_LEFT", "selectPreviousColumnChangeLead",\r
+                               // "DOWN", "selectNextRow",\r
+                               // "KP_DOWN", "selectNextRow",\r
+                               // "shift DOWN", "selectNextRowExtendSelection",\r
+                               // "shift KP_DOWN", "selectNextRowExtendSelection",\r
+                               // "ctrl shift DOWN", "selectNextRowExtendSelection",\r
+                               // "ctrl shift KP_DOWN", "selectNextRowExtendSelection",\r
+                               // "ctrl DOWN", "selectNextRowChangeLead",\r
+                               // "ctrl KP_DOWN", "selectNextRowChangeLead",\r
+                               // "UP", "selectPreviousRow",\r
+                               // "KP_UP", "selectPreviousRow",\r
+                               // "shift UP", "selectPreviousRowExtendSelection",\r
+                               // "shift KP_UP", "selectPreviousRowExtendSelection",\r
+                               // "ctrl shift UP", "selectPreviousRowExtendSelection",\r
+                               // "ctrl shift KP_UP", "selectPreviousRowExtendSelection",\r
+                               // "ctrl UP", "selectPreviousRowChangeLead",\r
+                               // "ctrl KP_UP", "selectPreviousRowChangeLead",\r
+                               // "HOME", "selectFirstColumn",\r
+                               // "shift HOME", "selectFirstColumnExtendSelection",\r
+                               // "ctrl shift HOME", "selectFirstRowExtendSelection",\r
+                               // "ctrl HOME", "selectFirstRow",\r
+                               // "END", "selectLastColumn",\r
+                               // "shift END", "selectLastColumnExtendSelection",\r
+                               // "ctrl shift END", "selectLastRowExtendSelection",\r
+                               // "ctrl END", "selectLastRow",\r
+                               // "PAGE_UP", "scrollUpChangeSelection",\r
+                               // "shift PAGE_UP", "scrollUpExtendSelection",\r
+                               // "ctrl shift PAGE_UP", "scrollLeftExtendSelection",\r
+                               // "ctrl PAGE_UP", "scrollLeftChangeSelection",\r
+                               // "PAGE_DOWN", "scrollDownChangeSelection",\r
+                               // "shift PAGE_DOWN", "scrollDownExtendSelection",\r
+                               // "ctrl shift PAGE_DOWN", "scrollRightExtendSelection",\r
+                               // "ctrl PAGE_DOWN", "scrollRightChangeSelection",\r
+                               // "TAB", "selectNextColumnCell",\r
+                               // "shift TAB", "selectPreviousColumnCell",\r
+                               // "ENTER", "selectNextRowCell",\r
+                               // "shift ENTER", "selectPreviousRowCell",\r
+                               // "ctrl A", "selectAll",\r
+                               // "ctrl SLASH", "selectAll",\r
+                               // "ctrl BACK_SLASH", "clearSelection",\r
+                               // "ESCAPE", "cancel",\r
+                               // "F2", "startEditing",\r
+                               // "SPACE", "addToSelection",\r
+                               // "ctrl SPACE", "toggleAndAnchor",\r
+                               // "shift SPACE", "extendTo",\r
+                               // "ctrl shift SPACE", "moveSelectionTo",\r
+                               // "F8", "focusHeader"\r
+                               // }),\r
+                               // "Table.ancestorInputMap.RightToLeft",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "RIGHT", "selectPreviousColumn",\r
+                               // "KP_RIGHT", "selectPreviousColumn",\r
+                               // "shift RIGHT", "selectPreviousColumnExtendSelection",\r
+                               // "shift KP_RIGHT", "selectPreviousColumnExtendSelection",\r
+                               // "ctrl shift RIGHT", "selectPreviousColumnExtendSelection",\r
+                               // "ctrl shift KP_RIGHT", "selectPreviousColumnExtendSelection",\r
+                               // "ctrl RIGHT", "selectPreviousColumnChangeLead",\r
+                               // "ctrl KP_RIGHT", "selectPreviousColumnChangeLead",\r
+                               // "LEFT", "selectNextColumn",\r
+                               // "KP_LEFT", "selectNextColumn",\r
+                               // "shift LEFT", "selectNextColumnExtendSelection",\r
+                               // "shift KP_LEFT", "selectNextColumnExtendSelection",\r
+                               // "ctrl shift LEFT", "selectNextColumnExtendSelection",\r
+                               // "ctrl shift KP_LEFT", "selectNextColumnExtendSelection",\r
+                               // "ctrl LEFT", "selectNextColumnChangeLead",\r
+                               // "ctrl KP_LEFT", "selectNextColumnChangeLead",\r
+                               // "ctrl PAGE_UP", "scrollRightChangeSelection",\r
+                               // "ctrl PAGE_DOWN", "scrollLeftChangeSelection",\r
+                               // "ctrl shift PAGE_UP", "scrollRightExtendSelection",\r
+                               // "ctrl shift PAGE_DOWN", "scrollLeftExtendSelection",\r
+                               // }),\r
+                               // "Table.ascendingSortIcon", new SwingLazyValue(\r
+                               // "sun.swing.icon.SortArrowIcon",\r
+                               // null, new Object[] { Boolean.TRUE,\r
+                               // "Table.sortIconColor" }),\r
+                               // "Table.descendingSortIcon", new SwingLazyValue(\r
+                               // "sun.swing.icon.SortArrowIcon",\r
+                               // null, new Object[] { Boolean.FALSE,\r
+                               // "Table.sortIconColor" }),\r
+                               // "Table.sortIconColor", controlShadow,\r
+                               //\r
+                               // "TableHeader.font", dialogPlain12,\r
+                               // "TableHeader.foreground", controlText, // header text color\r
+                               // "TableHeader.background", control, // header background\r
+                               // "TableHeader.cellBorder", tableHeaderBorder,\r
+\r
+                               // Support for changing the background/border of the currently\r
+                               // selected header column when the header has the keyboard focus.\r
+                               // "TableHeader.focusCellBackground", table.getColor("text"), // like\r
+                               // text component bg\r
+                               // "TableHeader.focusCellForeground", null,\r
+                               // "TableHeader.focusCellBorder", null,\r
+                               // "TableHeader.ancestorInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "SPACE", "toggleSortOrder",\r
+                               // "LEFT", "selectColumnToLeft",\r
+                               // "KP_LEFT", "selectColumnToLeft",\r
+                               // "RIGHT", "selectColumnToRight",\r
+                               // "KP_RIGHT", "selectColumnToRight",\r
+                               // "alt LEFT", "moveColumnLeft",\r
+                               // "alt KP_LEFT", "moveColumnLeft",\r
+                               // "alt RIGHT", "moveColumnRight",\r
+                               // "alt KP_RIGHT", "moveColumnRight",\r
+                               // "alt shift LEFT", "resizeLeft",\r
+                               // "alt shift KP_LEFT", "resizeLeft",\r
+                               // "alt shift RIGHT", "resizeRight",\r
+                               // "alt shift KP_RIGHT", "resizeRight",\r
+                               // "ESCAPE", "focusTable",\r
+                               // }),\r
+                               //\r
+                               // *** Text\r
+                               "TextField.font",\r
+                               sansSerifPlain12,\r
+                               "TextField.background",\r
+                               window,\r
+                               "TextField.foreground",\r
+                               textText,\r
+                               // "TextField.shadow", controlShadow,\r
+                               // "TextField.darkShadow", controlDkShadow,\r
+                               // "TextField.light", controlHighlight,\r
+                               // "TextField.highlight", controlLtHighlight,\r
+                               // "TextField.inactiveForeground", textInactiveText,\r
+                               // "TextField.inactiveBackground", control,\r
+                               // "TextField.selectionBackground", textHighlight,\r
+                               // "TextField.selectionForeground", textHighlightText,\r
+                               // "TextField.caretForeground", textText,\r
+                               // "TextField.caretBlinkRate", caretBlinkRate,\r
+                               // "TextField.border", textFieldBorder,\r
+                               "TextField.margin",\r
+                               zeroInsets,\r
+\r
+                               "FormattedTextField.font",\r
+                               sansSerifPlain12,\r
+                               "FormattedTextField.background",\r
+                               window,\r
+                               "FormattedTextField.foreground",\r
+                               textText,\r
+                               // "FormattedTextField.inactiveForeground", textInactiveText,\r
+                               // "FormattedTextField.inactiveBackground", control,\r
+                               // "FormattedTextField.selectionBackground", textHighlight,\r
+                               // "FormattedTextField.selectionForeground", textHighlightText,\r
+                               "FormattedTextField.caretForeground",\r
+                               textText,\r
+                               // "FormattedTextField.caretBlinkRate", caretBlinkRate,\r
+                               // "FormattedTextField.border", textFieldBorder,\r
+                               "FormattedTextField.margin",\r
+                               zeroInsets,\r
+                               // "FormattedTextField.focusInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "ctrl C", DefaultEditorKit.copyAction,\r
+                               // "ctrl V", DefaultEditorKit.pasteAction,\r
+                               // "ctrl X", DefaultEditorKit.cutAction,\r
+                               // "COPY", DefaultEditorKit.copyAction,\r
+                               // "PASTE", DefaultEditorKit.pasteAction,\r
+                               // "CUT", DefaultEditorKit.cutAction,\r
+                               // "control INSERT", DefaultEditorKit.copyAction,\r
+                               // "shift INSERT", DefaultEditorKit.pasteAction,\r
+                               // "shift DELETE", DefaultEditorKit.cutAction,\r
+                               // "shift LEFT", DefaultEditorKit.selectionBackwardAction,\r
+                               // "shift KP_LEFT", DefaultEditorKit.selectionBackwardAction,\r
+                               // "shift RIGHT", DefaultEditorKit.selectionForwardAction,\r
+                               // "shift KP_RIGHT", DefaultEditorKit.selectionForwardAction,\r
+                               // "ctrl LEFT", DefaultEditorKit.previousWordAction,\r
+                               // "ctrl KP_LEFT", DefaultEditorKit.previousWordAction,\r
+                               // "ctrl RIGHT", DefaultEditorKit.nextWordAction,\r
+                               // "ctrl KP_RIGHT", DefaultEditorKit.nextWordAction,\r
+                               // "ctrl shift LEFT", DefaultEditorKit.selectionPreviousWordAction,\r
+                               // "ctrl shift KP_LEFT", DefaultEditorKit.selectionPreviousWordAction,\r
+                               // "ctrl shift RIGHT", DefaultEditorKit.selectionNextWordAction,\r
+                               // "ctrl shift KP_RIGHT", DefaultEditorKit.selectionNextWordAction,\r
+                               // "ctrl A", DefaultEditorKit.selectAllAction,\r
+                               // "HOME", DefaultEditorKit.beginLineAction,\r
+                               // "END", DefaultEditorKit.endLineAction,\r
+                               // "shift HOME", DefaultEditorKit.selectionBeginLineAction,\r
+                               // "shift END", DefaultEditorKit.selectionEndLineAction,\r
+                               // "BACK_SPACE", DefaultEditorKit.deletePrevCharAction,\r
+                               // "shift BACK_SPACE", DefaultEditorKit.deletePrevCharAction,\r
+                               // "ctrl H", DefaultEditorKit.deletePrevCharAction,\r
+                               // "DELETE", DefaultEditorKit.deleteNextCharAction,\r
+                               // "ctrl DELETE", DefaultEditorKit.deleteNextWordAction,\r
+                               // "ctrl BACK_SPACE", DefaultEditorKit.deletePrevWordAction,\r
+                               // "RIGHT", DefaultEditorKit.forwardAction,\r
+                               // "LEFT", DefaultEditorKit.backwardAction,\r
+                               // "KP_RIGHT", DefaultEditorKit.forwardAction,\r
+                               // "KP_LEFT", DefaultEditorKit.backwardAction,\r
+                               // "ENTER", JTextField.notifyAction,\r
+                               // "ctrl BACK_SLASH", "unselect",\r
+                               // "control shift O", "toggle-componentOrientation",\r
+                               // "ESCAPE", "reset-field-edit",\r
+                               // "UP", "increment",\r
+                               // "KP_UP", "increment",\r
+                               // "DOWN", "decrement",\r
+                               // "KP_DOWN", "decrement",\r
+                               // }),\r
+                               //\r
+                               "PasswordField.font",\r
+                               monospacedPlain12,\r
+                               "PasswordField.background",\r
+                               window,\r
+                               "PasswordField.foreground",\r
+                               textText,\r
+                               // "PasswordField.inactiveForeground", textInactiveText,\r
+                               // "PasswordField.inactiveBackground", control,\r
+                               // "PasswordField.selectionBackground", textHighlight,\r
+                               // "PasswordField.selectionForeground", textHighlightText,\r
+                               // "PasswordField.caretForeground", textText,\r
+                               // "PasswordField.caretBlinkRate", caretBlinkRate,\r
+                               // "PasswordField.border", textFieldBorder,\r
+                               "PasswordField.margin",\r
+                               zeroInsets,\r
+                               "PasswordField.echoChar",\r
+                               '*',\r
+\r
+                               "TextArea.font",\r
+                               monospacedPlain12,\r
+                               "TextArea.background",\r
+                               window,\r
+                               "TextArea.foreground",\r
+                               textText,\r
+                               // "TextArea.inactiveForeground", textInactiveText,\r
+                               // "TextArea.selectionBackground", textHighlight,\r
+                               // "TextArea.selectionForeground", textHighlightText,\r
+                               // "TextArea.caretForeground", textText,\r
+                               // "TextArea.caretBlinkRate", caretBlinkRate,\r
+                               // "TextArea.border", marginBorder,\r
+                               "TextArea.margin",\r
+                               zeroInsets,\r
+\r
+                               "TextPane.font",\r
+                               serifPlain12,\r
+                               "TextPane.background",\r
+                               white,\r
+                               "TextPane.foreground",\r
+                               textText,\r
+                               // "TextPane.selectionBackground", textHighlight,\r
+                               // "TextPane.selectionForeground", textHighlightText,\r
+                               // "TextPane.caretForeground", textText,\r
+                               // "TextPane.caretBlinkRate", caretBlinkRate,\r
+                               // "TextPane.inactiveForeground", textInactiveText,\r
+                               // "TextPane.border", marginBorder,\r
+                               "TextPane.margin",\r
+                               editorMargin,\r
+\r
+                               "EditorPane.font",\r
+                               serifPlain12,\r
+                               "EditorPane.background",\r
+                               white,\r
+                               "EditorPane.foreground",\r
+                               textText,\r
+                               // "EditorPane.selectionBackground", textHighlight,\r
+                               // "EditorPane.selectionForeground", textHighlightText,\r
+                               // "EditorPane.caretForeground", textText,\r
+                               // "EditorPane.caretBlinkRate", caretBlinkRate,\r
+                               // "EditorPane.inactiveForeground", textInactiveText,\r
+                               // "EditorPane.border", marginBorder,\r
+                               "EditorPane.margin",\r
+                               editorMargin,\r
+                               //\r
+                               // "html.pendingImage", SwingUtilities2.makeIcon(getClass(),\r
+                               // BasicLookAndFeel.class,\r
+                               // "icons/image-delayed.png"),\r
+                               // "html.missingImage", SwingUtilities2.makeIcon(getClass(),\r
+                               // BasicLookAndFeel.class,\r
+                               // "icons/image-failed.png"),\r
+                               // *** TitledBorder\r
+                               // "TitledBorder.font", dialogPlain12,\r
+                               "TitledBorder.titleColor",\r
+                               controlText,\r
+                               // "TitledBorder.border", etchedBorder,\r
+\r
+                               // *** ToolBar\r
+                               // "ToolBar.font", dialogPlain12,\r
+                               // "ToolBar.background", control,\r
+                               // "ToolBar.foreground", controlText,\r
+                               // "ToolBar.shadow", controlShadow,\r
+                               // "ToolBar.darkShadow", controlDkShadow,\r
+                               // "ToolBar.light", controlHighlight,\r
+                               // "ToolBar.highlight", controlLtHighlight,\r
+                               // "ToolBar.dockingBackground", control,\r
+                               // "ToolBar.dockingForeground", red,\r
+                               // "ToolBar.floatingBackground", control,\r
+                               // "ToolBar.floatingForeground", darkGray,\r
+                               // "ToolBar.border", etchedBorder,\r
+                               // "ToolBar.separatorSize", toolBarSeparatorSize,\r
+                               // "ToolBar.ancestorInputMap",\r
+                               // new UIDefaults.LazyInputMap(new Object[] {\r
+                               // "UP", "navigateUp",\r
+                               // "KP_UP", "navigateUp",\r
+                               // "DOWN", "navigateDown",\r
+                               // "KP_DOWN", "navigateDown",\r
+                               // "LEFT", "navigateLeft",\r
+                               // "KP_LEFT", "navigateLeft",\r
+                               // "RIGHT", "navigateRight",\r
+                               // "KP_RIGHT", "navigateRight"\r
+                               // }),\r
+\r
+                               // *** ToolTips\r
+                               // "ToolTip.font", sansSerifPlain12,\r
+                               // "ToolTip.background", table.get("info"),\r
+                               // "ToolTip.foreground", table.get("infoText"),\r
+                               // "ToolTip.border", blackLineBorder,\r
+                               // ToolTips also support backgroundInactive, borderInactive,\r
+                               // and foregroundInactive\r
+\r
+                               // *** ToolTipManager\r
+                               // ToolTipManager.enableToolTipMode currently supports:\r
+                               // "allWindows" (default):\r
+                               // enables tool tips for all windows of all java applications,\r
+                               // whether the windows are active or inactive\r
+                               // "activeApplication"\r
+                               // enables tool tips for windows of an application only when\r
+                               // the application has an active window\r
+                               // "ToolTipManager.enableToolTipMode", "allWindows",\r
+\r
+                               // *** Tree\r
+                               "Tree.paintLines",\r
+                               Boolean.TRUE,\r
+                               "Tree.lineTypeDashed",\r
+                               Boolean.FALSE,\r
+                               // "Tree.font", dialogPlain12,\r
+                               "Tree.background",\r
+                               window,\r
+                               "Tree.foreground",\r
+                               textText,\r
+                               "Tree.hash",\r
+                               gray,\r
+                               "Tree.textForeground",\r
+                               textText,\r
+                               "Tree.textBackground",\r
+                               table.get("text"),\r
+                               // "Tree.selectionForeground", textHighlightText,\r
+                               // "Tree.selectionBackground", textHighlight,\r
+                               // "Tree.selectionBorderColor", black,\r
+                               // "Tree.dropLineColor", controlShadow,\r
+                               // "Tree.editorBorder", blackLineBorder,\r
+                               "Tree.leftChildIndent", new Integer(7), "Tree.rightChildIndent",\r
+                               new Integer(13), "Tree.rowHeight", new Integer(16),\r
+                               "Tree.scrollsOnExpand", Boolean.TRUE,\r
+                               // "Tree.openIcon", SwingUtilities2.makeIcon(getClass(),\r
+                               // BasicLookAndFeel.class,\r
+                               // "icons/TreeOpen.gif"),\r
+                               // "Tree.closedIcon", SwingUtilities2.makeIcon(getClass(),\r
+                               // BasicLookAndFeel.class,\r
+                               // "icons/TreeClosed.gif"),\r
+                               // "Tree.leafIcon", SwingUtilities2.makeIcon(getClass(),\r
+                               // BasicLookAndFeel.class,\r
+                               // "icons/TreeLeaf.gif"),\r
+                               // "Tree.expandedIcon", null,\r
+                               // "Tree.collapsedIcon", null,\r
+                               // "Tree.changeSelectionWithFocus", Boolean.TRUE,\r
+                               // "Tree.drawsFocusBorderAroundIcon", Boolean.FALSE,\r
+                               "Tree.timeFactor", oneThousand,\r
+               // "Tree.focusInputMap",\r
+               // new UIDefaults.LazyInputMap(new Object[] {\r
+               // "ctrl C", "copy",\r
+               // "ctrl V", "paste",\r
+               // "ctrl X", "cut",\r
+               // "COPY", "copy",\r
+               // "PASTE", "paste",\r
+               // "CUT", "cut",\r
+               // "control INSERT", "copy",\r
+               // "shift INSERT", "paste",\r
+               // "shift DELETE", "cut",\r
+               // "UP", "selectPrevious",\r
+               // "KP_UP", "selectPrevious",\r
+               // "shift UP", "selectPreviousExtendSelection",\r
+               // "shift KP_UP", "selectPreviousExtendSelection",\r
+               // "ctrl shift UP", "selectPreviousExtendSelection",\r
+               // "ctrl shift KP_UP", "selectPreviousExtendSelection",\r
+               // "ctrl UP", "selectPreviousChangeLead",\r
+               // "ctrl KP_UP", "selectPreviousChangeLead",\r
+               // "DOWN", "selectNext",\r
+               // "KP_DOWN", "selectNext",\r
+               // "shift DOWN", "selectNextExtendSelection",\r
+               // "shift KP_DOWN", "selectNextExtendSelection",\r
+               // "ctrl shift DOWN", "selectNextExtendSelection",\r
+               // "ctrl shift KP_DOWN", "selectNextExtendSelection",\r
+               // "ctrl DOWN", "selectNextChangeLead",\r
+               // "ctrl KP_DOWN", "selectNextChangeLead",\r
+               // "RIGHT", "selectChild",\r
+               // "KP_RIGHT", "selectChild",\r
+               // "LEFT", "selectParent",\r
+               // "KP_LEFT", "selectParent",\r
+               // "PAGE_UP", "scrollUpChangeSelection",\r
+               // "shift PAGE_UP", "scrollUpExtendSelection",\r
+               // "ctrl shift PAGE_UP", "scrollUpExtendSelection",\r
+               // "ctrl PAGE_UP", "scrollUpChangeLead",\r
+               // "PAGE_DOWN", "scrollDownChangeSelection",\r
+               // "shift PAGE_DOWN", "scrollDownExtendSelection",\r
+               // "ctrl shift PAGE_DOWN", "scrollDownExtendSelection",\r
+               // "ctrl PAGE_DOWN", "scrollDownChangeLead",\r
+               // "HOME", "selectFirst",\r
+               // "shift HOME", "selectFirstExtendSelection",\r
+               // "ctrl shift HOME", "selectFirstExtendSelection",\r
+               // "ctrl HOME", "selectFirstChangeLead",\r
+               // "END", "selectLast",\r
+               // "shift END", "selectLastExtendSelection",\r
+               // "ctrl shift END", "selectLastExtendSelection",\r
+               // "ctrl END", "selectLastChangeLead",\r
+               // "F2", "startEditing",\r
+               // "ctrl A", "selectAll",\r
+               // "ctrl SLASH", "selectAll",\r
+               // "ctrl BACK_SLASH", "clearSelection",\r
+               // "ctrl LEFT", "scrollLeft",\r
+               // "ctrl KP_LEFT", "scrollLeft",\r
+               // "ctrl RIGHT", "scrollRight",\r
+               // "ctrl KP_RIGHT", "scrollRight",\r
+               // "SPACE", "addToSelection",\r
+               // "ctrl SPACE", "toggleAndAnchor",\r
+               // "shift SPACE", "extendTo",\r
+               // "ctrl shift SPACE", "moveSelectionTo"\r
+               // }),\r
+               // "Tree.focusInputMap.RightToLeft",\r
+               // new UIDefaults.LazyInputMap(new Object[] {\r
+               // "RIGHT", "selectParent",\r
+               // "KP_RIGHT", "selectParent",\r
+               // "LEFT", "selectChild",\r
+               // "KP_LEFT", "selectChild",\r
+               // }),\r
+               // "Tree.ancestorInputMap",\r
+               // new UIDefaults.LazyInputMap(new Object[] {\r
+               // "ESCAPE", "cancel"\r
+               // }),\r
+               // // Bind specific keys that can invoke popup on currently\r
+               // // focused JComponent\r
+               // "RootPane.ancestorInputMap",\r
+               // new UIDefaults.LazyInputMap(new Object[] {\r
+               // "shift F10", "postPopup",\r
+               // "CONTEXT_MENU", "postPopup"\r
+               // }),\r
+               //\r
+               // // These bindings are only enabled when there is a default\r
+               // // button set on the rootpane.\r
+               // "RootPane.defaultButtonWindowKeyBindings", new Object[] {\r
+               // "ENTER", "press",\r
+               // "released ENTER", "release",\r
+               // "ctrl ENTER", "press",\r
+               // "ctrl released ENTER", "release"\r
+               // },\r
+               };\r
+\r
+               table.putDefaults(defaults);\r
+       }\r
+\r
+       // /**\r
+       // * Returns the ui that is of type <code>klass</code>, or null if\r
+       // * one can not be found.\r
+       // */\r
+       // static Object getUIOfType(ComponentUI ui, Class klass) {\r
+       // if (klass.isInstance(ui)) {\r
+       // return ui;\r
+       // }\r
+       // return null;\r
+       // }\r
+       //\r
+       // // ********* Auditory Cue support methods and objects *********\r
+       // // also see the "AuditoryCues" section of the defaults table\r
+       //\r
+       // /**\r
+       // * Returns an <code>ActionMap</code> containing the audio actions\r
+       // * for this look and feel.\r
+       // * <P>\r
+       // * The returned <code>ActionMap</code> contains <code>Actions</code> that\r
+       // * embody the ability to render an auditory cue. These auditory\r
+       // * cues map onto user and system activities that may be useful\r
+       // * for an end user to know about (such as a dialog box appearing).\r
+       // * <P>\r
+       // * At the appropriate time,\r
+       // * the {@code ComponentUI} is responsible for obtaining an\r
+       // * <code>Action</code> out of the <code>ActionMap</code> and passing\r
+       // * it to <code>playSound</code>.\r
+       // * <P>\r
+       // * This method first looks up the {@code ActionMap} from the\r
+       // * defaults using the key {@code "AuditoryCues.actionMap"}.\r
+       // * <p>\r
+       // * If the value is {@code non-null}, it is returned. If the value\r
+       // * of the default {@code "AuditoryCues.actionMap"} is {@code null}\r
+       // * and the value of the default {@code "AuditoryCues.cueList"} is\r
+       // * {@code non-null}, an {@code ActionMapUIResource} is created and\r
+       // * populated. Population is done by iterating over each of the\r
+       // * elements of the {@code "AuditoryCues.cueList"} array, and\r
+       // * invoking {@code createAudioAction()} to create an {@code\r
+       // * Action} for each element. The resulting {@code Action} is\r
+       // * placed in the {@code ActionMapUIResource}, using the array\r
+       // * element as the key. For example, if the {@code\r
+       // * "AuditoryCues.cueList"} array contains a single-element, {@code\r
+       // * "audioKey"}, the {@code ActionMapUIResource} is created, then\r
+       // * populated by way of {@code actionMap.put(cueList[0],\r
+       // * createAudioAction(cueList[0]))}.\r
+       // * <p>\r
+       // * If the value of the default {@code "AuditoryCues.actionMap"} is\r
+       // * {@code null} and the value of the default\r
+       // * {@code "AuditoryCues.cueList"} is {@code null}, an empty\r
+       // * {@code ActionMapUIResource} is created.\r
+       // *\r
+       // *\r
+       // * @return an ActionMap containing {@code Actions}\r
+       // * responsible for playing auditory cues\r
+       // * @throws ClassCastException if the value of the\r
+       // * default {@code "AuditoryCues.actionMap"} is not an\r
+       // * {@code ActionMap}, or the value of the default\r
+       // * {@code "AuditoryCues.cueList"} is not an {@code Object[]}\r
+       // * @see #createAudioAction\r
+       // * @see #playSound(Action)\r
+       // * @since 1.4\r
+       // */\r
+       // protected ActionMap getAudioActionMap() {\r
+       // ActionMap audioActionMap = (ActionMap)UIManager.get(\r
+       // "AuditoryCues.actionMap");\r
+       // if (audioActionMap == null) {\r
+       // Object[] acList = (Object[])UIManager.get("AuditoryCues.cueList");\r
+       // if (acList != null) {\r
+       // audioActionMap = new ActionMapUIResource();\r
+       // for(int counter = acList.length-1; counter >= 0; counter--) {\r
+       // audioActionMap.put(acList[counter],\r
+       // createAudioAction(acList[counter]));\r
+       // }\r
+       // }\r
+       // UIManager.getLookAndFeelDefaults().put("AuditoryCues.actionMap",\r
+       // audioActionMap);\r
+       // }\r
+       // return audioActionMap;\r
+       // }\r
+       //\r
+       // /**\r
+       // * Creates and returns an {@code Action} used to play a sound.\r
+       // * <p>\r
+       // * If {@code key} is {@code non-null}, an {@code Action} is created\r
+       // * using the value from the defaults with key {@code key}. The value\r
+       // * identifies the sound resource to load when\r
+       // * {@code actionPerformed} is invoked on the {@code Action}. The\r
+       // * sound resource is loaded into a {@code byte[]} by way of\r
+       // * {@code getClass().getResourceAsStream()}.\r
+       // *\r
+       // * @param key the key identifying the audio action\r
+       // * @return an {@code Action} used to play the source, or {@code null}\r
+       // * if {@code key} is {@code null}\r
+       // * @see #playSound(Action)\r
+       // * @since 1.4\r
+       // */\r
+       // protected Action createAudioAction(Object key) {\r
+       // if (key != null) {\r
+       // String audioKey = (String)key;\r
+       // String audioValue = (String)UIManager.get(key);\r
+       // return new AudioAction(audioKey, audioValue);\r
+       // } else {\r
+       // return null;\r
+       // }\r
+       // }\r
+       //\r
+       // /**\r
+       // * Pass the name String to the super constructor. This is used\r
+       // * later to identify the Action and decide whether to play it or\r
+       // * not. Store the resource String. I is used to get the audio\r
+       // * resource. In this case, the resource is an audio file.\r
+       // *\r
+       // * @since 1.4\r
+       // */\r
+       // private class AudioAction extends AbstractAction implements LineListener {\r
+       // // We strive to only play one sound at a time (other platforms\r
+       // // appear to do this). This is done by maintaining the field\r
+       // // clipPlaying. Every time a sound is to be played,\r
+       // // cancelCurrentSound is invoked to cancel any sound that may be\r
+       // // playing.\r
+       // private String audioResource;\r
+       // private byte[] audioBuffer;\r
+       //\r
+       // /**\r
+       // * The String is the name of the Action and\r
+       // * points to the audio resource.\r
+       // * The byte[] is a buffer of the audio bits.\r
+       // */\r
+       // public AudioAction(String name, String resource) {\r
+       // super(name);\r
+       // audioResource = resource;\r
+       // }\r
+       //\r
+       // public void actionPerformed(ActionEvent e) {\r
+       // if (audioBuffer == null) {\r
+       // audioBuffer = loadAudioData(audioResource);\r
+       // }\r
+       // if (audioBuffer != null) {\r
+       // cancelCurrentSound(null);\r
+       // try {\r
+       // AudioInputStream soundStream =\r
+       // AudioSystem.getAudioInputStream(\r
+       // new ByteArrayInputStream(audioBuffer));\r
+       // DataLine.Info info =\r
+       // new DataLine.Info(Clip.class, soundStream.getFormat());\r
+       // Clip clip = (Clip) AudioSystem.getLine(info);\r
+       // clip.open(soundStream);\r
+       // clip.addLineListener(this);\r
+       //\r
+       // synchronized(audioLock) {\r
+       // clipPlaying = clip;\r
+       // }\r
+       //\r
+       // clip.start();\r
+       // } catch (Exception ex) {}\r
+       // }\r
+       // }\r
+       //\r
+       // public void update(LineEvent event) {\r
+       // if (event.getType() == LineEvent.Type.STOP) {\r
+       // cancelCurrentSound((Clip)event.getLine());\r
+       // }\r
+       // }\r
+       //\r
+       // /**\r
+       // * If the parameter is null, or equal to the currently\r
+       // * playing sound, then cancel the currently playing sound.\r
+       // */\r
+       // private void cancelCurrentSound(Clip clip) {\r
+       // Clip lastClip = null;\r
+       //\r
+       // synchronized(audioLock) {\r
+       // if (clip == null || clip == clipPlaying) {\r
+       // lastClip = clipPlaying;\r
+       // clipPlaying = null;\r
+       // }\r
+       // }\r
+       //\r
+       // if (lastClip != null) {\r
+       // lastClip.removeLineListener(this);\r
+       // lastClip.close();\r
+       // }\r
+       // }\r
+       // }\r
+       //\r
+       // /**\r
+       // * Utility method that loads audio bits for the specified\r
+       // * <code>soundFile</code> filename. If this method is unable to\r
+       // * build a viable path name from the <code>baseClass</code> and\r
+       // * <code>soundFile</code> passed into this method, it will\r
+       // * return <code>null</code>.\r
+       // *\r
+       // * @param baseClass used as the root class/location to get the\r
+       // * soundFile from\r
+       // * @param soundFile the name of the audio file to be retrieved\r
+       // * from disk\r
+       // * @return A byte[] with audio data or null\r
+       // * @since 1.4\r
+       // */\r
+       // private byte[] loadAudioData(final String soundFile){\r
+       // if (soundFile == null) {\r
+       // return null;\r
+       // }\r
+       // /* Copy resource into a byte array. This is\r
+       // * necessary because several browsers consider\r
+       // * Class.getResource a security risk since it\r
+       // * can be used to load additional classes.\r
+       // * Class.getResourceAsStream just returns raw\r
+       // * bytes, which we can convert to a sound.\r
+       // */\r
+       // byte[] buffer = (byte[])AccessController.doPrivileged(\r
+       // new PrivilegedAction() {\r
+       // public Object run() {\r
+       // try {\r
+       // InputStream resource = BasicLookAndFeel.this.\r
+       // getClass().getResourceAsStream(soundFile);\r
+       // if (resource == null) {\r
+       // return null;\r
+       // }\r
+       // BufferedInputStream in =\r
+       // new BufferedInputStream(resource);\r
+       // ByteArrayOutputStream out =\r
+       // new ByteArrayOutputStream(1024);\r
+       // byte[] buffer = new byte[1024];\r
+       // int n;\r
+       // while ((n = in.read(buffer)) > 0) {\r
+       // out.write(buffer, 0, n);\r
+       // }\r
+       // in.close();\r
+       // out.flush();\r
+       // buffer = out.toByteArray();\r
+       // return buffer;\r
+       // } catch (IOException ioe) {\r
+       // System.err.println(ioe.toString());\r
+       // return null;\r
+       // }\r
+       // }\r
+       // });\r
+       // if (buffer == null) {\r
+       // System.err.println(getClass().getName() + "/" +\r
+       // soundFile + " not found.");\r
+       // return null;\r
+       // }\r
+       // if (buffer.length == 0) {\r
+       // System.err.println("warning: " + soundFile +\r
+       // " is zero-length");\r
+       // return null;\r
+       // }\r
+       // return buffer;\r
+       // }\r
+       //\r
+       // /**\r
+       // * If necessary, invokes {@code actionPerformed} on\r
+       // * {@code audioAction} to play a sound.\r
+       // * The {@code actionPerformed} method is invoked if the value of\r
+       // * the {@code "AuditoryCues.playList"} default is a {@code\r
+       // * non-null} {@code Object[]} containing a {@code String} entry\r
+       // * equal to the name of the {@code audioAction}.\r
+       // *\r
+       // * @param audioAction an Action that knows how to render the audio\r
+       // * associated with the system or user activity\r
+       // * that is occurring; a value of {@code null}, is\r
+       // * ignored\r
+       // * @throws ClassCastException if {@code audioAction} is {@code non-null}\r
+       // * and the value of the default {@code "AuditoryCues.playList"}\r
+       // * is not an {@code Object[]}\r
+       // * @since 1.4\r
+       // */\r
+       // protected void playSound(Action audioAction) {\r
+       // if (audioAction != null) {\r
+       // Object[] audioStrings = (Object[])\r
+       // UIManager.get("AuditoryCues.playList");\r
+       // if (audioStrings != null) {\r
+       // // create a HashSet to help us decide to play or not\r
+       // HashSet audioCues = new HashSet();\r
+       // for (int i = 0; i < audioStrings.length; i++) {\r
+       // audioCues.add(audioStrings[i]);\r
+       // }\r
+       // // get the name of the Action\r
+       // String actionName = (String)audioAction.getValue(Action.NAME);\r
+       // // if the actionName is in the audioCues HashSet, play it.\r
+       // if (audioCues.contains(actionName)) {\r
+       // audioAction.actionPerformed(new\r
+       // ActionEvent(this, ActionEvent.ACTION_PERFORMED,\r
+       // actionName));\r
+       // }\r
+       // }\r
+       // }\r
+       // }\r
+       //\r
+       //\r
+       // /**\r
+       // * Sets the parent of the passed in ActionMap to be the audio action\r
+       // * map.\r
+       // */\r
+       // static void installAudioActionMap(ActionMap map) {\r
+       // LookAndFeel laf = UIManager.getLookAndFeel();\r
+       // if (laf instanceof BasicLookAndFeel) {\r
+       // map.setParent(((BasicLookAndFeel)laf).getAudioActionMap());\r
+       // }\r
+       // }\r
+       //\r
+       //\r
+       // /**\r
+       // * Helper method to play a named sound.\r
+       // *\r
+       // * @param c JComponent to play the sound for.\r
+       // * @param actionKey Key for the sound.\r
+       // */\r
+       // static void playSound(JComponent c, Object actionKey) {\r
+       // LookAndFeel laf = UIManager.getLookAndFeel();\r
+       // if (laf instanceof BasicLookAndFeel) {\r
+       // ActionMap map = c.getActionMap();\r
+       // if (map != null) {\r
+       // Action audioAction = map.get(actionKey);\r
+       // if (audioAction != null) {\r
+       // // pass off firing the Action to a utility method\r
+       // ((BasicLookAndFeel)laf).playSound(audioAction);\r
+       // }\r
+       // }\r
+       // }\r
+       // }\r
+       //\r
+       // /**\r
+       // * This class contains listener that watches for all the mouse\r
+       // * events that can possibly invoke popup on the component\r
+       // */\r
+       // class AWTEventHelper implements AWTEventListener,PrivilegedAction {\r
+       // AWTEventHelper() {\r
+       // super();\r
+       // AccessController.doPrivileged(this);\r
+       // }\r
+       //\r
+       // public Object run() {\r
+       // Toolkit tk = Toolkit.getDefaultToolkit();\r
+       // if(invocator == null) {\r
+       // tk.addAWTEventListener(this, AWTEvent.MOUSE_EVENT_MASK);\r
+       // } else {\r
+       // tk.removeAWTEventListener(invocator);\r
+       // }\r
+       // // Return value not used.\r
+       // return null;\r
+       // }\r
+       //\r
+       // public void eventDispatched(AWTEvent ev) {\r
+       // int eventID = ev.getID();\r
+       // if((eventID & AWTEvent.MOUSE_EVENT_MASK) != 0) {\r
+       // MouseEvent me = (MouseEvent) ev;\r
+       // if(me.isPopupTrigger()) {\r
+       // MenuElement[] elems = MenuSelectionManager\r
+       // .defaultManager()\r
+       // .getSelectedPath();\r
+       // if(elems != null && elems.length != 0) {\r
+       // return;\r
+       // // We shall not interfere with already opened menu\r
+       // }\r
+       // Object c = me.getSource();\r
+       // JComponent src = null;\r
+       // if(c instanceof JComponent) {\r
+       // src = (JComponent) c;\r
+       // } else if(c instanceof BasicSplitPaneDivider) {\r
+       // // Special case - if user clicks on divider we must\r
+       // // invoke popup from the SplitPane\r
+       // src = (JComponent)\r
+       // ((BasicSplitPaneDivider)c).getParent();\r
+       // }\r
+       // if(src != null) {\r
+       // if(src.getComponentPopupMenu() != null) {\r
+       // Point pt = src.getPopupLocation(me);\r
+       // if(pt == null) {\r
+       // pt = me.getPoint();\r
+       // pt = SwingUtilities.convertPoint((Component)c,\r
+       // pt, src);\r
+       // }\r
+       // src.getComponentPopupMenu().show(src, pt.x, pt.y);\r
+       // me.consume();\r
+       // }\r
+       // }\r
+       // }\r
+       // }\r
+       // /* Activate a JInternalFrame if necessary. */\r
+       // if (eventID == MouseEvent.MOUSE_PRESSED) {\r
+       // Object object = ev.getSource();\r
+       // if (!(object instanceof Component)) {\r
+       // return;\r
+       // }\r
+       // Component component = (Component)object;\r
+       // if (component != null) {\r
+       // Component parent = component;\r
+       // while (parent != null && !(parent instanceof Window)) {\r
+       // if (parent instanceof JInternalFrame) {\r
+       // // Activate the frame.\r
+       // try { ((JInternalFrame)parent).setSelected(true); }\r
+       // catch (PropertyVetoException e1) { }\r
+       // }\r
+       // parent = parent.getParent();\r
+       // }\r
+       // }\r
+       // }\r
+       // }\r
+       // }\r
+       //\r
+       @Override\r
+       public String getName() {\r
+               return "SwingJS";\r
+       }\r
+\r
+       @Override\r
+       public String getID() {\r
+               return "SwingJS";\r
+       }\r
+\r
+       @Override\r
+       public String getDescription() {\r
+               return "SwingJS L&F";\r
+       }\r
+\r
+       @Override\r
+       public boolean isNativeLookAndFeel() {\r
+               return true;\r
+       }\r
+\r
+       @Override\r
+       public boolean isSupportedLookAndFeel() {\r
+               return true;\r
+       }\r
+}\r