Source for javax.swing.plaf.basic.BasicLookAndFeel

   1: /* BasicLookAndFeel.java --
   2:    Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
   3: 
   4: This file is part of GNU Classpath.
   5: 
   6: GNU Classpath is free software; you can redistribute it and/or modify
   7: it under the terms of the GNU General Public License as published by
   8: the Free Software Foundation; either version 2, or (at your option)
   9: any later version.
  10: 
  11: GNU Classpath is distributed in the hope that it will be useful, but
  12: WITHOUT ANY WARRANTY; without even the implied warranty of
  13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14: General Public License for more details.
  15: 
  16: You should have received a copy of the GNU General Public License
  17: along with GNU Classpath; see the file COPYING.  If not, write to the
  18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  19: 02110-1301 USA.
  20: 
  21: Linking this library statically or dynamically with other modules is
  22: making a combined work based on this library.  Thus, the terms and
  23: conditions of the GNU General Public License cover the whole
  24: combination.
  25: 
  26: As a special exception, the copyright holders of this library give you
  27: permission to link this library with independent modules to produce an
  28: executable, regardless of the license terms of these independent
  29: modules, and to copy and distribute the resulting executable under
  30: terms of your choice, provided that you also meet, for each linked
  31: independent module, the terms and conditions of the license of that
  32: module.  An independent module is a module which is not derived from
  33: or based on this library.  If you modify this library, you may extend
  34: this exception to your version of the library, but you are not
  35: obligated to do so.  If you do not wish to do so, delete this
  36: exception statement from your version. */
  37: 
  38: 
  39: package javax.swing.plaf.basic;
  40: 
  41: import java.awt.Color;
  42: import java.awt.Dimension;
  43: import java.awt.Font;
  44: import java.awt.event.InputEvent;
  45: import java.awt.event.KeyEvent;
  46: import java.io.Serializable;
  47: import java.util.Enumeration;
  48: import java.util.ResourceBundle;
  49: 
  50: import javax.swing.BorderFactory;
  51: import javax.swing.KeyStroke;
  52: import javax.swing.LookAndFeel;
  53: import javax.swing.UIDefaults;
  54: import javax.swing.border.BevelBorder;
  55: import javax.swing.border.Border;
  56: import javax.swing.plaf.BorderUIResource;
  57: import javax.swing.plaf.ColorUIResource;
  58: import javax.swing.plaf.DimensionUIResource;
  59: import javax.swing.plaf.FontUIResource;
  60: import javax.swing.plaf.IconUIResource;
  61: import javax.swing.plaf.InsetsUIResource;
  62: import javax.swing.text.JTextComponent;
  63: 
  64: /**
  65:  * BasicLookAndFeel
  66:  * @author Andrew Selkirk
  67:  */
  68: public abstract class BasicLookAndFeel extends LookAndFeel
  69:   implements Serializable
  70: {
  71:   static final long serialVersionUID = -6096995660290287879L;
  72: 
  73:   /**
  74:    * Creates a new instance of the Basic look and feel.
  75:    */
  76:   public BasicLookAndFeel()
  77:   {
  78:     // TODO
  79:   }
  80: 
  81:   /**
  82:    * Creates and returns a new instance of the default resources for this look 
  83:    * and feel.
  84:    * 
  85:    * @return The UI defaults.
  86:    */
  87:   public UIDefaults getDefaults()
  88:   {
  89:     // Variables
  90:     UIDefaults def = new UIDefaults();
  91:     // Initialize Class Defaults
  92:     initClassDefaults(def);
  93:     // Initialize System Colour Defaults
  94:     initSystemColorDefaults(def);
  95:     // Initialize Component Defaults
  96:     initComponentDefaults(def);
  97:     // Return UI Defaults
  98:     return def;
  99:   }
 100: 
 101:   /**
 102:    * Populates the <code>defaults</code> table with mappings between class IDs 
 103:    * and fully qualified class names for the UI delegates.
 104:    * 
 105:    * @param defaults  the defaults table (<code>null</code> not permitted).
 106:    */
 107:   protected void initClassDefaults(UIDefaults defaults)
 108:   {
 109:     // Variables
 110:     Object[] uiDefaults;
 111:     // Initialize Class Defaults
 112:     uiDefaults = new Object[] {
 113:       "ButtonUI", "javax.swing.plaf.basic.BasicButtonUI",
 114:       "CheckBoxMenuItemUI", "javax.swing.plaf.basic.BasicCheckBoxMenuItemUI",
 115:       "CheckBoxUI", "javax.swing.plaf.basic.BasicCheckBoxUI",
 116:       "ColorChooserUI", "javax.swing.plaf.basic.BasicColorChooserUI",
 117:       "ComboBoxUI", "javax.swing.plaf.basic.BasicComboBoxUI",
 118:       "DesktopIconUI", "javax.swing.plaf.basic.BasicDesktopIconUI",
 119:       "DesktopPaneUI", "javax.swing.plaf.basic.BasicDesktopPaneUI",
 120:       "EditorPaneUI", "javax.swing.plaf.basic.BasicEditorPaneUI",
 121:       "FileChooserUI", "javax.swing.plaf.basic.BasicFileChooserUI",
 122:       "FormattedTextFieldUI", "javax.swing.plaf.basic.BasicFormattedTextFieldUI",
 123:       "InternalFrameUI", "javax.swing.plaf.basic.BasicInternalFrameUI",
 124:       "LabelUI", "javax.swing.plaf.basic.BasicLabelUI",
 125:       "ListUI", "javax.swing.plaf.basic.BasicListUI",
 126:       "MenuBarUI", "javax.swing.plaf.basic.BasicMenuBarUI",
 127:       "MenuItemUI", "javax.swing.plaf.basic.BasicMenuItemUI",
 128:       "MenuUI", "javax.swing.plaf.basic.BasicMenuUI",
 129:       "OptionPaneUI", "javax.swing.plaf.basic.BasicOptionPaneUI",
 130:       "PanelUI", "javax.swing.plaf.basic.BasicPanelUI",
 131:       "PasswordFieldUI", "javax.swing.plaf.basic.BasicPasswordFieldUI",
 132:       "PopupMenuSeparatorUI", "javax.swing.plaf.basic.BasicPopupMenuSeparatorUI",
 133:       "PopupMenuUI", "javax.swing.plaf.basic.BasicPopupMenuUI",
 134:       "ProgressBarUI", "javax.swing.plaf.basic.BasicProgressBarUI",
 135:       "RadioButtonMenuItemUI", "javax.swing.plaf.basic.BasicRadioButtonMenuItemUI",
 136:       "RadioButtonUI", "javax.swing.plaf.basic.BasicRadioButtonUI",
 137:       "RootPaneUI", "javax.swing.plaf.basic.BasicRootPaneUI",
 138:       "ScrollBarUI", "javax.swing.plaf.basic.BasicScrollBarUI",
 139:       "ScrollPaneUI", "javax.swing.plaf.basic.BasicScrollPaneUI",
 140:       "SeparatorUI", "javax.swing.plaf.basic.BasicSeparatorUI",
 141:       "SliderUI", "javax.swing.plaf.basic.BasicSliderUI",
 142:       "SplitPaneUI", "javax.swing.plaf.basic.BasicSplitPaneUI",
 143:       "SpinnerUI", "javax.swing.plaf.basic.BasicSpinnerUI",
 144:       "StandardDialogUI", "javax.swing.plaf.basic.BasicStandardDialogUI",
 145:       "TabbedPaneUI", "javax.swing.plaf.basic.BasicTabbedPaneUI",
 146:       "TableHeaderUI", "javax.swing.plaf.basic.BasicTableHeaderUI",
 147:       "TableUI", "javax.swing.plaf.basic.BasicTableUI",
 148:       "TextPaneUI", "javax.swing.plaf.basic.BasicTextPaneUI",
 149:       "TextAreaUI", "javax.swing.plaf.basic.BasicTextAreaUI",
 150:       "TextFieldUI", "javax.swing.plaf.basic.BasicTextFieldUI",
 151:       "TextPaneUI", "javax.swing.plaf.basic.BasicTextPaneUI",
 152:       "ToggleButtonUI", "javax.swing.plaf.basic.BasicToggleButtonUI",
 153:       "ToolBarSeparatorUI", "javax.swing.plaf.basic.BasicToolBarSeparatorUI",
 154:       "ToolBarUI", "javax.swing.plaf.basic.BasicToolBarUI",
 155:       "ToolTipUI", "javax.swing.plaf.basic.BasicToolTipUI",
 156:       "TreeUI", "javax.swing.plaf.basic.BasicTreeUI",
 157:       "ViewportUI", "javax.swing.plaf.basic.BasicViewportUI"
 158:     };
 159:     // Add Class Defaults to UI Defaults table
 160:     defaults.putDefaults(uiDefaults);
 161:   }
 162: 
 163:   /**
 164:    * Populates the <code>defaults</code> table with system color defaults.
 165:    * 
 166:    * @param defaults  the defaults table (<code>null</code> not permitted).
 167:    */
 168:   protected void initSystemColorDefaults(UIDefaults defaults)
 169:   {
 170:     Color highLight = new Color(249, 247, 246);
 171:     Color light = new Color(239, 235, 231);
 172:     Color shadow = new Color(139, 136, 134);
 173:     Color darkShadow = new Color(16, 16, 16);
 174: 
 175:     Object[] uiDefaults;
 176:     uiDefaults = new Object[] {
 177:       "activeCaption", new ColorUIResource(0, 0, 128),
 178:       "activeCaptionBorder", new ColorUIResource(Color.lightGray),
 179:       "activeCaptionText", new ColorUIResource(Color.white),
 180:       "control", new ColorUIResource(light),
 181:       "controlDkShadow", new ColorUIResource(shadow),
 182:       "controlHighlight", new ColorUIResource(highLight),
 183:       "controlLtHighlight", new ColorUIResource(highLight),
 184:       "controlShadow", new ColorUIResource(shadow),
 185:       "controlText", new ColorUIResource(darkShadow),
 186:       "desktop", new ColorUIResource(0, 92, 92),
 187:       "inactiveCaption", new ColorUIResource(Color.gray),
 188:       "inactiveCaptionBorder", new ColorUIResource(Color.lightGray),
 189:       "inactiveCaptionText", new ColorUIResource(Color.lightGray),
 190:       "info", new ColorUIResource(light),
 191:       "infoText", new ColorUIResource(darkShadow),
 192:       "menu", new ColorUIResource(light),
 193:       "menuText", new ColorUIResource(darkShadow),
 194:       "scrollbar", new ColorUIResource(light),
 195:       "text", new ColorUIResource(Color.white),
 196:       "textHighlight", new ColorUIResource(Color.black),
 197:       "textHighlightText", new ColorUIResource(Color.white),
 198:       "textInactiveText", new ColorUIResource(Color.gray),
 199:       "textText", new ColorUIResource(Color.black),
 200:       "window", new ColorUIResource(light),
 201:       "windowBorder", new ColorUIResource(Color.black),
 202:       "windowText", new ColorUIResource(darkShadow)
 203:     };
 204:     defaults.putDefaults(uiDefaults);
 205:   }
 206: 
 207:   /**
 208:    * Loads the system colors.  This method is not implemented yet.
 209:    * 
 210:    * @param defaults  the defaults table (<code>null</code> not permitted).
 211:    * @param systemColors TODO
 212:    * @param useNative TODO
 213:    */
 214:   protected void loadSystemColors(UIDefaults defaults, String[] systemColors,
 215:                                   boolean useNative)
 216:   {
 217:     // TODO
 218:   }
 219: 
 220:   /**
 221:    * loadResourceBundle
 222:    * @param defaults TODO
 223:    */
 224:   private void loadResourceBundle(UIDefaults defaults)
 225:   {
 226:     ResourceBundle bundle;
 227:     Enumeration e;
 228:     String key;
 229:     String value;
 230:     bundle = ResourceBundle.getBundle("resources/basic");
 231:     // Process Resources
 232:     e = bundle.getKeys();
 233:     while (e.hasMoreElements())
 234:       {
 235:         key = (String) e.nextElement();
 236:         value = bundle.getString(key);
 237:         defaults.put(key, value);
 238:       }
 239:   }
 240: 
 241:   /**
 242:    * initComponentDefaults
 243:    * @param defaults  the defaults table (<code>null</code> not permitted).
 244:    */
 245:   protected void initComponentDefaults(UIDefaults defaults)
 246:   {
 247:     Object[] uiDefaults;
 248:     
 249:     Color highLight = new Color(249, 247, 246);
 250:     Color light = new Color(239, 235, 231);
 251:     Color shadow = new Color(139, 136, 134);
 252:     Color darkShadow = new Color(16, 16, 16);
 253:     
 254:     uiDefaults = new Object[] {
 255: 
 256:       "AbstractUndoableEdit.undoText", "Undo",
 257:       "AbstractUndoableEdit.redoText", "Redo",
 258:       "Button.background", new ColorUIResource(Color.LIGHT_GRAY),
 259:       "Button.border",
 260:       new UIDefaults.LazyValue() 
 261:       {
 262:         public Object createValue(UIDefaults table)
 263:         {
 264:           return BasicBorders.getButtonBorder();
 265:         }
 266:       },
 267:       "Button.darkShadow", new ColorUIResource(Color.BLACK),
 268:       "Button.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 269:         "SPACE",  "pressed",
 270:         "released SPACE", "released"
 271:       }),
 272:       "Button.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 273:       "Button.foreground", new ColorUIResource(Color.BLACK),
 274:       "Button.highlight", new ColorUIResource(Color.WHITE),
 275:       "Button.light", new ColorUIResource(Color.LIGHT_GRAY),
 276:       "Button.margin", new InsetsUIResource(2, 14, 2, 14),
 277:       "Button.shadow", new ColorUIResource(Color.GRAY),
 278:       "Button.textIconGap", new Integer(4),
 279:       "Button.textShiftOffset", new Integer(0),
 280:       "CheckBox.background", new ColorUIResource(new Color(204, 204, 204)),
 281:       "CheckBox.border", new BorderUIResource.CompoundBorderUIResource(null,
 282:                                                                        null),
 283:       "CheckBox.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 284:         "SPACE",  "pressed",
 285:         "released SPACE", "released"
 286:       }),
 287:       "CheckBox.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 288:       "CheckBox.foreground", new ColorUIResource(darkShadow),
 289:       "CheckBox.icon",
 290:       new UIDefaults.LazyValue()
 291:       {
 292:         public Object createValue(UIDefaults def)
 293:         {
 294:           return BasicIconFactory.getCheckBoxIcon();
 295:         }
 296:       },
 297:       "CheckBox.checkIcon", 
 298:       new UIDefaults.LazyValue()
 299:       {
 300:         public Object createValue(UIDefaults def)
 301:         {
 302:           return BasicIconFactory.getMenuItemCheckIcon();
 303:         }
 304:       },
 305:       "CheckBox.margin",new InsetsUIResource(2, 2, 2, 2),
 306:       "CheckBox.textIconGap", new Integer(4),
 307:       "CheckBox.textShiftOffset", new Integer(0),
 308:       "CheckBoxMenuItem.acceleratorFont", new FontUIResource("Dialog",
 309:                                                              Font.PLAIN, 12),
 310:       "CheckBoxMenuItem.acceleratorForeground",
 311:       new ColorUIResource(new Color(16, 16, 16)),
 312:       "CheckBoxMenuItem.acceleratorSelectionForeground",
 313:       new ColorUIResource(Color.white),
 314:       "CheckBoxMenuItem.arrowIcon", BasicIconFactory.getMenuItemArrowIcon(),
 315:       "CheckBoxMenuItem.background", new ColorUIResource(light),
 316:       "CheckBoxMenuItem.border", new BasicBorders.MarginBorder(),
 317:       "CheckBoxMenuItem.borderPainted", Boolean.FALSE,
 318:       "CheckBoxMenuItem.checkIcon", 
 319:       new UIDefaults.LazyValue()
 320:       {
 321:         public Object createValue(UIDefaults def)
 322:         {
 323:           return BasicIconFactory.getCheckBoxMenuItemIcon();
 324:         }
 325:       },
 326:       "CheckBoxMenuItem.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 327:       "CheckBoxMenuItem.foreground", new ColorUIResource(darkShadow),
 328:       "CheckBoxMenuItem.margin", new InsetsUIResource(2, 2, 2, 2),
 329:       "CheckBoxMenuItem.selectionBackground", new ColorUIResource(Color.black),
 330:       "CheckBoxMenuItem.selectionForeground", new ColorUIResource(Color.white),
 331:       "ColorChooser.background", new ColorUIResource(light),
 332:       "ColorChooser.cancelText", "Cancel",
 333:       "ColorChooser.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 334:       "ColorChooser.foreground", new ColorUIResource(darkShadow),
 335:       "ColorChooser.hsbBlueText", "B",
 336:       "ColorChooser.hsbBrightnessText", "B",
 337:       "ColorChooser.hsbGreenText", "G",
 338:       "ColorChooser.hsbHueText", "H",
 339:       "ColorChooser.hsbNameText", "HSB",
 340:       "ColorChooser.hsbRedText", "R",
 341:       "ColorChooser.hsbSaturationText", "S",
 342:       "ColorChooser.okText", "OK",
 343:       "ColorChooser.previewText", "Preview",
 344:       "ColorChooser.resetText", "Reset",
 345:       "ColorChooser.rgbBlueMnemonic", new Integer(66),
 346:       "ColorChooser.rgbBlueText", "Blue",
 347:       "ColorChooser.rgbGreenMnemonic", new Integer(71),
 348:       "ColorChooser.rgbGreenText", "Green",
 349:       "ColorChooser.rgbNameText", "RGB",
 350:       "ColorChooser.rgbRedMnemonic", new Integer(82),
 351:       "ColorChooser.rgbRedText", "Red",
 352:       "ColorChooser.sampleText", "Sample Text  Sample Text",
 353:       "ColorChooser.swatchesDefaultRecentColor", new ColorUIResource(light),
 354:       "ColorChooser.swatchesNameText", "Swatches",
 355:       "ColorChooser.swatchesRecentSwatchSize", new Dimension(10, 10),
 356:       "ColorChooser.swatchesRecentText", "Recent:",
 357:       "ColorChooser.swatchesSwatchSize", new Dimension(10, 10),
 358:       "ComboBox.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
 359:         "ESCAPE", "hidePopup",
 360:         "PAGE_UP", "pageUpPassThrough",
 361:         "PAGE_DOWN", "pageDownPassThrough",
 362:         "HOME",  "homePassThrough",
 363:         "END",  "endPassThrough"
 364:       }),
 365:       "ComboBox.background", new ColorUIResource(Color.white),
 366:       "ComboBox.buttonBackground", new ColorUIResource(light),
 367:       "ComboBox.buttonDarkShadow", new ColorUIResource(darkShadow),
 368:       "ComboBox.buttonHighlight", new ColorUIResource(highLight),
 369:       "ComboBox.buttonShadow", new ColorUIResource(shadow),
 370:       "ComboBox.disabledBackground", new ColorUIResource(light),
 371:       "ComboBox.disabledForeground", new ColorUIResource(Color.gray),
 372:       "ComboBox.font", new FontUIResource("SansSerif", Font.PLAIN, 12),
 373:       "ComboBox.foreground", new ColorUIResource(Color.black),
 374:       "ComboBox.selectionBackground", new ColorUIResource(0, 0, 128),
 375:       "ComboBox.selectionForeground", new ColorUIResource(Color.white),
 376:       "Desktop.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
 377:         "KP_LEFT", "left",
 378:         "KP_RIGHT", "right",
 379:         "ctrl F5", "restore",
 380:         "LEFT",  "left",
 381:         "ctrl alt F6", "selectNextFrame",
 382:         "UP",  "up",
 383:         "ctrl F6", "selectNextFrame",
 384:         "RIGHT", "right",
 385:         "DOWN",  "down",
 386:         "ctrl F7", "move",
 387:         "ctrl F8", "resize",
 388:         "ESCAPE", "escape",
 389:         "ctrl TAB", "selectNextFrame",
 390:         "ctrl F9", "minimize",
 391:         "KP_UP", "up",
 392:         "ctrl F4", "close",
 393:         "KP_DOWN", "down",
 394:         "ctrl F10", "maximize",
 395:         "ctrl alt shift F6","selectPreviousFrame"
 396:       }),
 397:       "DesktopIcon.border", new BorderUIResource.CompoundBorderUIResource(null,
 398:                                                                           null),
 399:       "EditorPane.background", new ColorUIResource(Color.white),
 400:       "EditorPane.border", BasicBorders.getMarginBorder(),
 401:       "EditorPane.caretBlinkRate", new Integer(500),
 402:       "EditorPane.caretForeground", new ColorUIResource(Color.black),
 403:       "EditorPane.font", new FontUIResource("Serif", Font.PLAIN, 12),
 404:       "EditorPane.foreground", new ColorUIResource(Color.black),
 405:       "EditorPane.inactiveForeground", new ColorUIResource(Color.gray),
 406:       "EditorPane.keyBindings", new JTextComponent.KeyBinding[] {
 407:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_UP,
 408:                                                              0), "caret-up"),
 409:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,
 410:                                                              0), "caret-down"),
 411:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP,
 412:                                                              0), "page-up"),
 413:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN,
 414:                                                              0), "page-down"),
 415:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,
 416:                                                              0), "insert-break"),
 417:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,
 418:                                                              0), "insert-tab")
 419:           },
 420:       "EditorPane.margin", new InsetsUIResource(3, 3, 3, 3),
 421:       "EditorPane.selectionBackground", new ColorUIResource(Color.black),
 422:       "EditorPane.selectionForeground", new ColorUIResource(Color.white),
 423:       "FileChooser.acceptAllFileFilterText", "All Files (*.*)",
 424:       "FileChooser.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
 425:         "ESCAPE", "cancelSelection"
 426:       }),
 427:       "FileChooser.cancelButtonMnemonic", new Integer(67),
 428:       "FileChooser.cancelButtonText", "Cancel",
 429:       "FileChooser.cancelButtonToolTipText", "Abort file chooser dialog",
 430:       // XXX Don't use gif
 431: //      "FileChooser.detailsViewIcon", new IconUIResource(new ImageIcon("icons/DetailsView.gif")),
 432:       "FileChooser.directoryDescriptionText", "Directory",
 433:       "FileChooser.fileDescriptionText", "Generic File",
 434:       "FileChooser.helpButtonMnemonic", new Integer(72),
 435:       "FileChooser.helpButtonText", "Help",
 436:       "FileChooser.helpButtonToolTipText", "FileChooser help",
 437:       // XXX Don't use gif
 438: //      "FileChooser.homeFolderIcon", new IconUIResource(new ImageIcon("icons/HomeFolder.gif")),
 439:       // XXX Don't use gif
 440: //      "FileChooser.listViewIcon", new IconUIResource(new ImageIcon("icons/ListView.gif")),
 441:       "FileChooser.newFolderErrorSeparator", ":",
 442:       "FileChooser.newFolderErrorText", "Error creating new folder",
 443:       // XXX Don't use gif
 444: //      "FileChooser.newFolderIcon", new IconUIResource(new ImageIcon("icons/NewFolder.gif")),
 445:       "FileChooser.openButtonMnemonic", new Integer(79),
 446:       "FileChooser.openButtonText", "Open",
 447:       "FileChooser.openButtonToolTipText", "Open selected file",
 448:       "FileChooser.saveButtonMnemonic", new Integer(83),
 449:       "FileChooser.saveButtonText", "Save",
 450:       "FileChooser.saveButtonToolTipText", "Save selected file",
 451:       // XXX Don't use gif
 452: //      "FileChooser.upFolderIcon", new IconUIResource(new ImageIcon("icons/UpFolder.gif")),
 453:       "FileChooser.updateButtonMnemonic", new Integer(85),
 454:       "FileChooser.updateButtonText", "Update",
 455:       "FileChooser.updateButtonToolTipText", "Update directory listing",
 456:       // XXX Don't use gif
 457: //      "FileView.computerIcon", new IconUIResource(new ImageIcon("icons/Computer.gif")),
 458:       // XXX Don't use gif
 459: //      "FileView.directoryIcon", new IconUIResource(new ImageIcon("icons/Directory.gif")),
 460:       // XXX Don't use gif
 461: //      "FileView.fileIcon", new IconUIResource(new ImageIcon("icons/File.gif")),
 462:       // XXX Don't use gif
 463: //      "FileView.floppyDriveIcon", new IconUIResource(new ImageIcon("icons/Floppy.gif")),
 464:       // XXX Don't use gif
 465: //      "FileView.hardDriveIcon", new IconUIResource(new ImageIcon("icons/HardDrive.gif")),
 466:       "FocusManagerClassName", "TODO",
 467:       "FormattedTextField.background", new ColorUIResource(light),
 468:       "FormattedTextField.caretForeground", new ColorUIResource(Color.black),
 469:       "FormattedTextField.font",
 470:       new FontUIResource("SansSerif", Font.PLAIN, 12),
 471:       "FormattedTextField.foreground", new ColorUIResource(Color.black),
 472:       "FormattedTextField.inactiveBackground", new ColorUIResource(light),
 473:       "FormattedTextField.inactiveForeground", new ColorUIResource(Color.gray),
 474:       "FormattedTextField.selectionBackground",
 475:       new ColorUIResource(Color.black),
 476:       "FormattedTextField.selectionForeground",
 477:       new ColorUIResource(Color.white),
 478:       "FormView.resetButtonText", "Reset",
 479:       "FormView.submitButtonText", "Submit Query",
 480:       "InternalFrame.activeTitleBackground", new ColorUIResource(0, 0, 128),
 481:       "InternalFrame.activeTitleForeground", new ColorUIResource(Color.white),
 482:       "InternalFrame.border",
 483:       new UIDefaults.LazyValue()
 484:       {
 485:     public Object createValue(UIDefaults table)
 486:     {
 487:       Color lineColor = new Color(238, 238, 238);
 488:       Border inner = BorderFactory.createLineBorder(lineColor, 1);
 489:       Color shadowInner = new Color(184, 207, 229);
 490:       Color shadowOuter = new Color(122, 138, 153);
 491:       Border outer = BorderFactory.createBevelBorder(BevelBorder.RAISED,
 492:                              Color.WHITE,
 493:                              Color.WHITE,
 494:                              shadowOuter,
 495:                              shadowInner);
 496:       Border border = new BorderUIResource.CompoundBorderUIResource(outer,
 497:                                     inner);
 498:       return border;
 499:     }
 500:       },
 501:       "InternalFrame.borderColor", new ColorUIResource(light),
 502:       "InternalFrame.borderDarkShadow", new ColorUIResource(Color.BLACK),
 503:       "InternalFrame.borderHighlight", new ColorUIResource(Color.WHITE),
 504:       "InternalFrame.borderLight", new ColorUIResource(Color.LIGHT_GRAY),
 505:       "InternalFrame.borderShadow", new ColorUIResource(Color.GRAY),
 506:       "InternalFrame.closeIcon", BasicIconFactory.createEmptyFrameIcon(),
 507:       // FIXME: Set a nice icon for InternalFrames here.
 508:       "InternalFrame.icon",
 509:       new UIDefaults.LazyValue()
 510:       {
 511:         public Object createValue(UIDefaults def)
 512:         {
 513:           return new IconUIResource(BasicIconFactory.createEmptyFrameIcon());
 514:         }
 515:       },
 516:       "InternalFrame.iconifyIcon", BasicIconFactory.createEmptyFrameIcon(),
 517:       "InternalFrame.inactiveTitleBackground", new ColorUIResource(Color.gray),
 518:       "InternalFrame.inactiveTitleForeground",
 519:       new ColorUIResource(Color.lightGray),
 520:       "InternalFrame.maximizeIcon", BasicIconFactory.createEmptyFrameIcon(),
 521:       "InternalFrame.minimizeIcon", BasicIconFactory.createEmptyFrameIcon(),
 522:       "InternalFrame.titleFont", new FontUIResource("Dialog", Font.BOLD, 12),
 523:       "InternalFrame.windowBindings", new Object[] {
 524:         "shift ESCAPE", "showSystemMenu",
 525:         "ctrl SPACE",  "showSystemMenu",
 526:         "ESCAPE",  "showSystemMenu"
 527:       },
 528:       "Label.background", new ColorUIResource(light),
 529:       "Label.disabledForeground", new ColorUIResource(Color.white),
 530:       "Label.disabledShadow", new ColorUIResource(shadow),
 531:       "Label.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 532:       "Label.foreground", new ColorUIResource(darkShadow),
 533:       "List.background", new ColorUIResource(Color.white),
 534:       "List.border", new BasicBorders.MarginBorder(),
 535:       "List.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 536:         "ctrl DOWN", "selectNextRowChangeLead",
 537:         "shift UP", "selectPreviousRowExtendSelection",
 538:         "ctrl RIGHT", "selectNextColumnChangeLead",        
 539:         "shift ctrl LEFT", "selectPreviousColumnExtendSelection",
 540:         "shift KP_UP", "selectPreviousRowChangeLead",
 541:         "DOWN",  "selectNextRow",
 542:         "ctrl UP", "selectPreviousRowChangeLead",
 543:         "ctrl LEFT", "selectPreviousColumnChangeLead",
 544:         "CUT", "cut",
 545:         "END",  "selectLastRow",
 546:         "shift PAGE_UP","scrollUpExtendSelection",
 547:         "KP_UP", "selectPreviousRow",
 548:         "shift ctrl UP", "selectPreviousRowExtendSelection",
 549:         "ctrl HOME", "selectFirstRowChangeLead",
 550:         "shift LEFT", "selectPreviousColumnExtendSelection",
 551:         "ctrl END", "selectLastRowChangeLead",
 552:         "ctrl PAGE_DOWN", "scrollDownChangeLead",
 553:         "shift ctrl RIGHT", "selectNextColumnExtendSelection",
 554:         "LEFT", "selectPreviousColumn",
 555:         "ctrl PAGE_UP", "scrollUpChangeLead",
 556:         "KP_LEFT", "selectPreviousColumn",
 557:         "shift KP_RIGHT", "selectNextColumnExtendSelection",
 558:         "SPACE", "addToSelection",
 559:         "ctrl SPACE", "toggleAndAnchor",
 560:         "shift SPACE", "extendTo",
 561:         "shift ctrl SPACE", "moveSelectionTo",
 562:         "shift ctrl DOWN", "selectNextRowExtendSelection",
 563:         "ctrl BACK_SLASH", "clearSelection",
 564:         "shift HOME", "selectFirstRowExtendSelection",
 565:         "RIGHT", "selectNextColumn",
 566:         "shift ctrl PAGE_UP", "scrollUpExtendSelection",
 567:         "shift DOWN", "selectNextRowExtendSelection",
 568:         "PAGE_DOWN", "scrollDown",
 569:         "shift ctrl KP_UP", "selectPreviousRowExtendSelection",
 570:         "shift KP_LEFT", "selectPreviousColumnExtendSelection",
 571:         "ctrl X", "cut",
 572:         "shift ctrl PAGE_DOWN", "scrollDownExtendSelection",
 573:         "ctrl SLASH", "selectAll",
 574:         "ctrl C", "copy",
 575:         "ctrl KP_RIGHT", "selectNextColumnChangeLead",
 576:         "shift END", "selectLastRowExtendSelection",
 577:         "shift ctrl KP_DOWN", "selectNextRowExtendSelection",
 578:         "ctrl KP_LEFT", "selectPreviousColumnChangeLead",
 579:         "HOME", "selectFirstRow",
 580:         "ctrl V", "paste", 
 581:         "KP_DOWN", "selectNextRow",
 582:         "ctrl KP_DOWN", "selectNextRowChangeLead",
 583:         "shift RIGHT", "selectNextColumnExtendSelection",
 584:         "ctrl A", "selectAll",
 585:         "shift ctrl END", "selectLastRowExtendSelection",
 586:         "COPY", "copy",
 587:         "ctrl KP_UP", "selectPreviousRowChangeLead",
 588:         "shift ctrl KP_LEFT", "selectPreviousColumnExtendSelection",
 589:         "shift KP_DOWN", "selectNextRowExtendSelection",
 590:         "UP", "selectPreviousRow",
 591:         "shift ctrl HOME", "selectFirstRowExtendSelection",
 592:         "shift PAGE_DOWN", "scrollDownExtendSelection",
 593:         "KP_RIGHT", "selectNextColumn",
 594:         "shift ctrl KP_RIGHT", "selectNextColumnExtendSelection",
 595:         "PAGE_UP", "scrollUp",
 596:         "PASTE", "paste"
 597:       }),
 598:       "List.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 599:       "List.foreground", new ColorUIResource(Color.black),
 600:       "List.selectionBackground", new ColorUIResource(0, 0, 128),
 601:       "List.selectionForeground", new ColorUIResource(Color.white),
 602:       "List.focusCellHighlightBorder",
 603:       new BorderUIResource.
 604:       LineBorderUIResource(new ColorUIResource(Color.yellow)),
 605:       "Menu.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 12),
 606:       "Menu.acceleratorForeground", new ColorUIResource(darkShadow),
 607:       "Menu.acceleratorSelectionForeground", new ColorUIResource(Color.white),
 608:       "Menu.arrowIcon", BasicIconFactory.getMenuArrowIcon(),
 609:       "Menu.background", new ColorUIResource(light),
 610:       "Menu.border", new BasicBorders.MarginBorder(),
 611:       "Menu.borderPainted", Boolean.FALSE,
 612:       "Menu.checkIcon", BasicIconFactory.getMenuItemCheckIcon(),
 613:       "Menu.consumesTabs", Boolean.TRUE,
 614:       "Menu.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 615:       "Menu.foreground", new ColorUIResource(darkShadow),
 616:       "Menu.margin", new InsetsUIResource(2, 2, 2, 2),
 617:       "Menu.selectedWindowInputMapBindings", new Object[] {
 618:         "ESCAPE", "cancel",
 619:         "DOWN",  "selectNext",
 620:         "KP_DOWN", "selectNext",
 621:         "UP",  "selectPrevious",
 622:         "KP_UP", "selectPrevious",
 623:         "LEFT",  "selectParent",
 624:         "KP_LEFT", "selectParent",
 625:         "RIGHT", "selectChild",
 626:         "KP_RIGHT", "selectChild",
 627:         "ENTER", "return",
 628:         "SPACE", "return"
 629:       },
 630:       "Menu.selectionBackground", new ColorUIResource(Color.black),
 631:       "Menu.selectionForeground", new ColorUIResource(Color.white),
 632:       "MenuBar.background", new ColorUIResource(light),
 633:       "MenuBar.border", new BasicBorders.MenuBarBorder(null, null),
 634:       "MenuBar.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 635:       "MenuBar.foreground", new ColorUIResource(darkShadow),
 636:       "MenuBar.highlight", new ColorUIResource(highLight),
 637:       "MenuBar.shadow", new ColorUIResource(shadow),
 638:       "MenuBar.windowBindings", new Object[] {
 639:         "F10", "takeFocus"
 640:       },
 641:       "MenuItem.acceleratorDelimiter", "-",
 642:       "MenuItem.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 12),
 643:       "MenuItem.acceleratorForeground", new ColorUIResource(darkShadow),
 644:       "MenuItem.acceleratorSelectionForeground",
 645:       new ColorUIResource(Color.white),
 646:       "MenuItem.arrowIcon", BasicIconFactory.getMenuItemArrowIcon(),
 647:       "MenuItem.background", new ColorUIResource(light),
 648:       "MenuItem.border", new BasicBorders.MarginBorder(),
 649:       "MenuItem.borderPainted", Boolean.FALSE,
 650:       "MenuItem.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 651:       "MenuItem.foreground", new ColorUIResource(darkShadow),
 652:       "MenuItem.margin", new InsetsUIResource(2, 2, 2, 2),
 653:       "MenuItem.selectionBackground", new ColorUIResource(Color.black),
 654:       "MenuItem.selectionForeground", new ColorUIResource(Color.white),
 655:       "OptionPane.background", new ColorUIResource(light),
 656:       "OptionPane.border",
 657:       new BorderUIResource.EmptyBorderUIResource(0, 0, 0, 0),
 658:       "OptionPane.buttonAreaBorder",
 659:       new BorderUIResource.EmptyBorderUIResource(0, 0, 0, 0),
 660:       "OptionPane.cancelButtonText", "Cancel",
 661:       // XXX Don't use gif
 662: //      "OptionPane.errorIcon",
 663: //      new IconUIResource(new ImageIcon("icons/Error.gif")),
 664:       "OptionPane.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 665:       "OptionPane.foreground", new ColorUIResource(darkShadow),
 666:       // XXX Don't use gif
 667: //      "OptionPane.informationIcon",
 668: //      new IconUIResource(new ImageIcon("icons/Inform.gif")),
 669:       "OptionPane.messageAreaBorder",
 670:       new BorderUIResource.EmptyBorderUIResource(0, 0, 0, 0),
 671:       "OptionPane.messageForeground", new ColorUIResource(darkShadow),
 672:       "OptionPane.minimumSize",
 673:       new DimensionUIResource(BasicOptionPaneUI.MinimumWidth,
 674:                               BasicOptionPaneUI.MinimumHeight),
 675:       "OptionPane.noButtonText", "No",
 676:       "OptionPane.okButtonText", "OK",
 677:       // XXX Don't use gif
 678: //      "OptionPane.questionIcon",
 679: //      new IconUIResource(new ImageIcon("icons/Question.gif")),
 680:       // XXX Don't use gif
 681: //      "OptionPane.warningIcon",
 682: //      new IconUIResource(new ImageIcon("icons/Warn.gif")),
 683:       "OptionPane.windowBindings", new Object[] {
 684:         "ESCAPE",  "close"
 685:       },
 686:       "OptionPane.yesButtonText", "Yes",
 687:       "Panel.background", new ColorUIResource(light),
 688:       "Panel.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 689:       "Panel.foreground", new ColorUIResource(Color.black),
 690:       "PasswordField.background", new ColorUIResource(light),
 691:       "PasswordField.border", new BasicBorders.FieldBorder(null, null,
 692:                                                            null, null),
 693:       "PasswordField.caretBlinkRate", new Integer(500),
 694:       "PasswordField.caretForeground", new ColorUIResource(Color.black),
 695:       "PasswordField.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 696:       "PasswordField.foreground", new ColorUIResource(Color.black),
 697:       "PasswordField.inactiveBackground", new ColorUIResource(light),
 698:       "PasswordField.inactiveForeground", new ColorUIResource(Color.gray),
 699:       "PasswordField.keyBindings", new JTextComponent.KeyBinding[] {
 700:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,
 701:                                                              0),
 702:                                       "notify-field-accept")},
 703:       "PasswordField.margin", new InsetsUIResource(0, 0, 0, 0),
 704:       "PasswordField.selectionBackground", new ColorUIResource(Color.black),
 705:       "PasswordField.selectionForeground", new ColorUIResource(Color.white),
 706:       "PopupMenu.background", new ColorUIResource(light),
 707:       "PopupMenu.border", new BorderUIResource.BevelBorderUIResource(0),
 708:       "PopupMenu.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 709:       "PopupMenu.foreground", new ColorUIResource(darkShadow),
 710:       "ProgressBar.background", new ColorUIResource(light),
 711:       "ProgressBar.border", new BorderUIResource.LineBorderUIResource(Color.darkGray),
 712:       "ProgressBar.cellLength", new Integer(1),
 713:       "ProgressBar.cellSpacing", new Integer(0),
 714:       "ProgressBar.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 715:       "ProgressBar.foreground", new ColorUIResource(Color.black),
 716:       "ProgressBar.selectionBackground", new ColorUIResource(Color.black),
 717:       "ProgressBar.selectionForeground", new ColorUIResource(light),
 718:       "ProgressBar.repaintInterval", new Integer(250),
 719:       "ProgressBar.cycleTime", new Integer(6000),
 720:       "RadioButton.background", new ColorUIResource(light),
 721:       "RadioButton.border", new BorderUIResource.CompoundBorderUIResource(null,
 722:                                                                           null),
 723:       "RadioButton.darkShadow", new ColorUIResource(shadow),
 724:       "RadioButton.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 725:         "SPACE",  "pressed",
 726:         "released SPACE", "released"
 727:       }),
 728:       "RadioButton.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 729:       "RadioButton.foreground", new ColorUIResource(darkShadow),
 730:       "RadioButton.highlight", new ColorUIResource(highLight),
 731:       "RadioButton.icon",
 732:       new UIDefaults.LazyValue()
 733:       {
 734:         public Object createValue(UIDefaults def)
 735:         {
 736:           return BasicIconFactory.getRadioButtonIcon();
 737:         }
 738:       },
 739:       "RadioButton.light", new ColorUIResource(highLight),
 740:       "RadioButton.margin", new InsetsUIResource(2, 2, 2, 2),
 741:       "RadioButton.shadow", new ColorUIResource(shadow),
 742:       "RadioButton.textIconGap", new Integer(4),
 743:       "RadioButton.textShiftOffset", new Integer(0),
 744:       "RadioButtonMenuItem.acceleratorFont",
 745:       new FontUIResource("Dialog", Font.PLAIN, 12),
 746:       "RadioButtonMenuItem.acceleratorForeground",
 747:       new ColorUIResource(darkShadow),
 748:       "RadioButtonMenuItem.acceleratorSelectionForeground",
 749:       new ColorUIResource(Color.white),
 750:       "RadioButtonMenuItem.arrowIcon", BasicIconFactory.getMenuItemArrowIcon(),
 751:       "RadioButtonMenuItem.background", new ColorUIResource(light),
 752:       "RadioButtonMenuItem.border", new BasicBorders.MarginBorder(),
 753:       "RadioButtonMenuItem.borderPainted", Boolean.FALSE,
 754:       "RadioButtonMenuItem.checkIcon", BasicIconFactory.getRadioButtonMenuItemIcon(),
 755:       "RadioButtonMenuItem.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 756:       "RadioButtonMenuItem.foreground", new ColorUIResource(darkShadow),
 757:       "RadioButtonMenuItem.margin", new InsetsUIResource(2, 2, 2, 2),
 758:       "RadioButtonMenuItem.selectionBackground",
 759:       new ColorUIResource(Color.black),
 760:       "RadioButtonMenuItem.selectionForeground",
 761:       new ColorUIResource(Color.white),
 762:       "RootPane.defaultButtonWindowKeyBindings", new Object[] {
 763:         "ENTER",  "press",
 764:         "released ENTER", "release",
 765:         "ctrl ENTER",  "press",
 766:         "ctrl released ENTER", "release"
 767:       },
 768:       "ScrollBar.background", new ColorUIResource(224, 224, 224),
 769:       "ScrollBar.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 770:         "PAGE_UP", "negativeBlockIncrement",
 771:         "PAGE_DOWN", "positiveBlockIncrement",
 772:         "END",  "maxScroll",
 773:         "HOME",  "minScroll",
 774:         "LEFT",  "positiveUnitIncrement",
 775:         "KP_UP", "negativeUnitIncrement",
 776:         "KP_DOWN", "positiveUnitIncrement",
 777:         "UP",  "negativeUnitIncrement",
 778:         "RIGHT", "negativeUnitIncrement",
 779:         "KP_LEFT", "positiveUnitIncrement",
 780:         "DOWN",  "positiveUnitIncrement",
 781:         "KP_RIGHT", "negativeUnitIncrement"
 782:       }),
 783:       "ScrollBar.foreground", new ColorUIResource(light),
 784:       "ScrollBar.maximumThumbSize", new DimensionUIResource(4096, 4096),
 785:       "ScrollBar.minimumThumbSize", new DimensionUIResource(8, 8),
 786:       "ScrollBar.thumb", new ColorUIResource(light),
 787:       "ScrollBar.thumbDarkShadow", new ColorUIResource(shadow),
 788:       "ScrollBar.thumbHighlight", new ColorUIResource(highLight),
 789:       "ScrollBar.thumbShadow", new ColorUIResource(shadow),
 790:       "ScrollBar.track", new ColorUIResource(light),
 791:       "ScrollBar.trackHighlight", new ColorUIResource(shadow),
 792:       "ScrollBar.width", new Integer(16),
 793:       "ScrollPane.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
 794:         "PAGE_UP", "scrollUp",
 795:         "KP_LEFT", "unitScrollLeft",
 796:         "ctrl PAGE_DOWN","scrollRight",
 797:         "PAGE_DOWN", "scrollDown",
 798:         "KP_RIGHT", "unitScrollRight",
 799:         "LEFT",  "unitScrollLeft",
 800:         "ctrl END", "scrollEnd",
 801:         "UP",  "unitScrollUp",
 802:         "RIGHT", "unitScrollRight",
 803:         "DOWN",  "unitScrollDown",
 804:         "ctrl HOME", "scrollHome",
 805:         "ctrl PAGE_UP", "scrollLeft",
 806:         "KP_UP", "unitScrollUp",
 807:         "KP_DOWN", "unitScrollDown"
 808:       }),
 809:       "ScrollPane.background", new ColorUIResource(light),
 810:       "ScrollPane.border", new BorderUIResource.EtchedBorderUIResource(),
 811:       "ScrollPane.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 812:       "ScrollPane.foreground", new ColorUIResource(darkShadow),
 813:       "Separator.background", new ColorUIResource(highLight),
 814:       "Separator.foreground", new ColorUIResource(shadow),
 815:       "Separator.highlight", new ColorUIResource(highLight),
 816:       "Separator.shadow", new ColorUIResource(shadow),
 817:       "Slider.background", new ColorUIResource(light),
 818:       "Slider.focus", new ColorUIResource(shadow),
 819:       "Slider.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 820:         "PAGE_UP", "positiveBlockIncrement",
 821:         "PAGE_DOWN", "negativeBlockIncrement",
 822:         "END",  "maxScroll",
 823:         "HOME",  "minScroll",
 824:         "LEFT",  "negativeUnitIncrement",
 825:         "KP_UP", "positiveUnitIncrement",
 826:         "KP_DOWN", "negativeUnitIncrement",
 827:         "UP",  "positiveUnitIncrement",
 828:         "RIGHT", "positiveUnitIncrement",
 829:         "KP_LEFT", "negativeUnitIncrement",
 830:         "DOWN",  "negativeUnitIncrement",
 831:         "KP_RIGHT", "positiveUnitIncrement"
 832:       }),
 833:       "Slider.focusInsets", new InsetsUIResource(2, 2, 2, 2),
 834:       "Slider.foreground", new ColorUIResource(light),
 835:       "Slider.highlight", new ColorUIResource(highLight),
 836:       "Slider.shadow", new ColorUIResource(shadow),
 837:       "Slider.thumbHeight", new Integer(20),
 838:       "Slider.thumbWidth", new Integer(11),
 839:       "Slider.tickHeight", new Integer(12),
 840:       "Spinner.background", new ColorUIResource(light),
 841:       "Spinner.foreground", new ColorUIResource(light),
 842:       "SplitPane.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
 843:         "F6",  "toggleFocus",
 844:         "F8",  "startResize",
 845:         "END",  "selectMax",
 846:         "HOME",  "selectMin",
 847:         "LEFT",  "negativeIncremnent",
 848:         "KP_UP", "negativeIncrement",
 849:         "KP_DOWN", "positiveIncrement",
 850:         "UP",  "negativeIncrement",
 851:         "RIGHT", "positiveIncrement",
 852:         "KP_LEFT", "negativeIncrement",
 853:         "DOWN",  "positiveIncrement",
 854:         "KP_RIGHT", "positiveIncrement"
 855:       }),
 856:       "SplitPane.background", new ColorUIResource(light),
 857:       "SplitPane.border", new BasicBorders.SplitPaneBorder(null, null),
 858:       "SplitPane.darkShadow", new ColorUIResource(shadow),
 859:       "SplitPane.dividerSize", new Integer(10),
 860:       "SplitPane.highlight", new ColorUIResource(highLight),
 861:       "SplitPane.shadow", new ColorUIResource(shadow),
 862:       "TabbedPane.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
 863:         "ctrl PAGE_DOWN","navigatePageDown",
 864:         "ctrl PAGE_UP", "navigatePageUp",
 865:         "ctrl UP", "requestFocus",
 866:         "ctrl KP_UP", "requestFocus"
 867:       }),
 868:       "TabbedPane.background", new ColorUIResource(light),
 869:       "TabbedPane.contentBorderInsets", new InsetsUIResource(2, 2, 3, 3),
 870:       "TabbedPane.darkShadow", new ColorUIResource(shadow),
 871:       "TabbedPane.focus", new ColorUIResource(darkShadow),
 872:       "TabbedPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 873:         "LEFT",  "navigateLeft",
 874:         "KP_UP", "navigateUp",
 875:         "ctrl DOWN", "requestFocusForVisibleComponent",
 876:         "UP", "navigateUp",
 877:         "KP_DOWN", "navigateDown",
 878:         "RIGHT", "navigateRight",
 879:         "KP_LEFT", "navigateLeft",
 880:         "ctrl KP_DOWN", "requestFocusForVisibleComponent",
 881:         "KP_RIGHT", "navigateRight",
 882:         "DOWN",  "navigateDown"
 883:       }),
 884:       "TabbedPane.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 885:       "TabbedPane.foreground", new ColorUIResource(darkShadow),
 886:       "TabbedPane.highlight", new ColorUIResource(highLight),
 887:       "TabbedPane.light", new ColorUIResource(highLight),
 888:       "TabbedPane.selectedTabPadInsets", new InsetsUIResource(2, 2, 2, 1),
 889:       "TabbedPane.shadow", new ColorUIResource(shadow),
 890:       "TabbedPane.tabbedPaneTabAreaInsets", new InsetsUIResource(3, 2, 1, 2),
 891:       "TabbedPane.tabbedPaneTabInsets", new InsetsUIResource(1, 4, 1, 4),
 892:       "TabbedPane.tabbedPaneContentBorderInsets", new InsetsUIResource(3, 2, 1, 2),
 893:       "TabbedPane.tabbedPaneTabPadInsets", new InsetsUIResource(1, 1, 1, 1),
 894:       "TabbedPane.tabRunOverlay", new Integer(2),
 895:       "TabbedPane.textIconGap", new Integer(4),
 896:       "Table.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
 897:         "ctrl DOWN", "selectNextRowChangeLead",
 898:         "ctrl RIGHT", "selectNextColumnChangeLead",
 899:         "ctrl UP", "selectPreviousRowChangeLead",
 900:         "ctrl LEFT", "selectPreviousColumnChangeLead",
 901:         "CUT", "cut",
 902:         "SPACE", "addToSelection",
 903:         "ctrl SPACE", "toggleAndAnchor",
 904:         "shift SPACE", "extendTo",
 905:         "shift ctrl SPACE", "moveSelectionTo",
 906:         "ctrl X", "cut",
 907:         "ctrl C", "copy",
 908:         "ctrl KP_RIGHT", "selectNextColumnChangeLead",
 909:         "ctrl KP_LEFT", "selectPreviousColumnChangeLead",
 910:         "ctrl V", "paste",
 911:         "ctrl KP_DOWN", "selectNextRowChangeLead",
 912:         "COPY", "copy",
 913:         "ctrl KP_UP", "selectPreviousRowChangeLead",
 914:         "PASTE", "paste",
 915:         "shift PAGE_DOWN","scrollDownExtendSelection",
 916:         "PAGE_DOWN", "scrollDownChangeSelection",
 917:         "END",  "selectLastColumn",
 918:         "shift END", "selectLastColumnExtendSelection",
 919:         "HOME",  "selectFirstColumn",
 920:         "ctrl END", "selectLastRow",
 921:         "ctrl shift END","selectLastRowExtendSelection",
 922:         "LEFT",  "selectPreviousColumn",
 923:         "shift HOME", "selectFirstColumnExtendSelection",
 924:         "UP",  "selectPreviousRow",
 925:         "RIGHT", "selectNextColumn",
 926:         "ctrl HOME", "selectFirstRow",
 927:         "shift LEFT", "selectPreviousColumnExtendSelection",
 928:         "DOWN",  "selectNextRow",
 929:         "ctrl shift HOME","selectFirstRowExtendSelection",
 930:         "shift UP", "selectPreviousRowExtendSelection",
 931:         "F2",  "startEditing",
 932:         "shift RIGHT", "selectNextColumnExtendSelection",
 933:         "TAB",  "selectNextColumnCell",
 934:         "shift DOWN", "selectNextRowExtendSelection",
 935:         "ENTER", "selectNextRowCell",
 936:         "KP_UP", "selectPreviousRow",
 937:         "KP_DOWN", "selectNextRow",
 938:         "KP_LEFT", "selectPreviousColumn",
 939:         "KP_RIGHT", "selectNextColumn",
 940:         "shift TAB", "selectPreviousColumnCell",
 941:         "ctrl A", "selectAll",
 942:         "shift ENTER", "selectPreviousRowCell",
 943:         "shift KP_DOWN", "selectNextRowExtendSelection",
 944:         "shift KP_LEFT", "selectPreviousColumnExtendSelection",
 945:         "ESCAPE",  "cancel",
 946:         "ctrl shift PAGE_UP", "scrollLeftExtendSelection",
 947:         "shift KP_RIGHT", "selectNextColumnExtendSelection",
 948:         "ctrl PAGE_UP",  "scrollLeftChangeSelection",
 949:         "shift PAGE_UP", "scrollUpExtendSelection",
 950:         "ctrl shift PAGE_DOWN", "scrollRightExtendSelection",
 951:         "ctrl PAGE_DOWN", "scrollRightChangeSelection",
 952:         "PAGE_UP",   "scrollUpChangeSelection",
 953:         "ctrl shift LEFT", "selectPreviousColumnExtendSelection",
 954:         "shift KP_UP", "selectPreviousRowExtendSelection",
 955:         "ctrl shift UP", "selectPreviousRowExtendSelection",
 956:         "ctrl shift RIGHT", "selectNextColumnExtendSelection",
 957:         "ctrl shift KP_RIGHT", "selectNextColumnExtendSelection",
 958:         "ctrl shift DOWN", "selectNextRowExtendSelection",
 959:         "ctrl BACK_SLASH", "clearSelection",
 960:         "ctrl shift KP_UP", "selectPreviousRowExtendSelection",
 961:         "ctrl shift KP_LEFT", "selectPreviousColumnExtendSelection",
 962:         "ctrl SLASH", "selectAll",
 963:         "ctrl shift KP_DOWN", "selectNextRowExtendSelection",
 964:       }),
 965:       "Table.background", new ColorUIResource(new ColorUIResource(255, 255, 255)),
 966:       "Table.focusCellBackground", new ColorUIResource(new ColorUIResource(255, 255, 255)),
 967:       "Table.focusCellForeground", new ColorUIResource(new ColorUIResource(0, 0, 0)),
 968:       "Table.focusCellHighlightBorder",
 969:       new BorderUIResource.LineBorderUIResource(
 970:                                              new ColorUIResource(255, 255, 0)),
 971:       "Table.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 972:       "Table.foreground", new ColorUIResource(new ColorUIResource(0, 0, 0)),
 973:       "Table.gridColor", new ColorUIResource(new ColorUIResource(128, 128, 128)),
 974:       "Table.scrollPaneBorder", new BorderUIResource.BevelBorderUIResource(0),
 975:       "Table.selectionBackground", new ColorUIResource(new ColorUIResource(0, 0, 128)),
 976:       "Table.selectionForeground", new ColorUIResource(new ColorUIResource(255, 255, 255)),
 977:       "TableHeader.background", new ColorUIResource(new ColorUIResource(192, 192, 192)),
 978:       "TableHeader.cellBorder", new BorderUIResource.BevelBorderUIResource(0),
 979:       "TableHeader.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 980:       "TableHeader.foreground", new ColorUIResource(new ColorUIResource(0, 0, 0)),
 981: 
 982:             "TextArea.background", new ColorUIResource(light),
 983:       "TextArea.border",
 984:       new BorderUIResource(BasicBorders.getMarginBorder()),
 985:       "TextArea.caretBlinkRate", new Integer(500),
 986:       "TextArea.caretForeground", new ColorUIResource(Color.black),
 987:       "TextArea.font", new FontUIResource("MonoSpaced", Font.PLAIN, 12),
 988:       "TextArea.foreground", new ColorUIResource(Color.black),
 989:       "TextArea.inactiveForeground", new ColorUIResource(Color.gray),
 990:       "TextArea.keyBindings", new JTextComponent.KeyBinding[] {
 991:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_UP,
 992:                                                              0), "caret-up"),
 993:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,
 994:                                                              0), "caret-down"),
 995:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP,
 996:                                                              0), "page-up"),
 997:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN,
 998:                                                              0), "page-down"),
 999:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,
1000:                                                              0), "insert-break"),
1001:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,
1002:                                                              0), "insert-tab")
1003:           },
1004:       "TextArea.margin", new InsetsUIResource(0, 0, 0, 0),
1005:       "TextArea.selectionBackground", new ColorUIResource(Color.black),
1006:       "TextArea.selectionForeground", new ColorUIResource(Color.white),
1007:       "TextField.background", new ColorUIResource(light),
1008:       "TextField.border", new BasicBorders.FieldBorder(null, null, null, null),
1009:       "TextField.caretBlinkRate", new Integer(500),
1010:       "TextField.caretForeground", new ColorUIResource(Color.black),
1011:       "TextField.darkShadow", new ColorUIResource(shadow),
1012:       "TextField.font", new FontUIResource("SansSerif", Font.PLAIN, 12),
1013:       "TextField.foreground", new ColorUIResource(Color.black),
1014:       "TextField.highlight", new ColorUIResource(highLight),
1015:       "TextField.inactiveBackground", new ColorUIResource(Color.LIGHT_GRAY),
1016:       "TextField.inactiveForeground", new ColorUIResource(Color.GRAY),
1017:       "TextField.light", new ColorUIResource(highLight),
1018:       "TextField.highlight", new ColorUIResource(light),
1019:       "TextField.keyBindings", new JTextComponent.KeyBinding[] {
1020:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,
1021:                                                              0),
1022:                                       "notify-field-accept"),
1023:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT,
1024:                                  InputEvent.SHIFT_DOWN_MASK),
1025:                                  "selection-backward"),
1026:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT,
1027:                                  InputEvent.SHIFT_DOWN_MASK),
1028:                                  "selection-forward"),
1029:           },
1030:       "TextField.margin", new InsetsUIResource(0, 0, 0, 0),
1031:       "TextField.selectionBackground", new ColorUIResource(Color.black),
1032:       "TextField.selectionForeground", new ColorUIResource(Color.white),
1033:       "TextPane.background", new ColorUIResource(Color.white),
1034:       "TextPane.border", BasicBorders.getMarginBorder(),
1035:       "TextPane.caretBlinkRate", new Integer(500),
1036:       "TextPane.caretForeground", new ColorUIResource(Color.black),
1037:       "TextPane.font", new FontUIResource("Serif", Font.PLAIN, 12),
1038:       "TextPane.foreground", new ColorUIResource(Color.black),
1039:       "TextPane.inactiveForeground", new ColorUIResource(Color.gray),
1040:       "TextPane.keyBindings", new JTextComponent.KeyBinding[] {
1041:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_UP,
1042:                                                              0), "caret-up"),
1043:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN,
1044:                                                              0), "caret-down"),
1045:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_UP,
1046:                                                              0), "page-up"),
1047:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_PAGE_DOWN,
1048:                                                              0), "page-down"),
1049:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,
1050:                                                              0), "insert-break"),
1051:         new JTextComponent.KeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_TAB,
1052:                                                              0), "insert-tab")
1053:           },
1054:       "TextPane.margin", new InsetsUIResource(3, 3, 3, 3),
1055:       "TextPane.selectionBackground", new ColorUIResource(Color.black),
1056:       "TextPane.selectionForeground", new ColorUIResource(Color.white),
1057:       "TitledBorder.border", new BorderUIResource.EtchedBorderUIResource(),
1058:       "TitledBorder.font", new FontUIResource("Dialog", Font.PLAIN, 12),
1059:       "TitledBorder.titleColor", new ColorUIResource(darkShadow),
1060:       "ToggleButton.background", new ColorUIResource(light),
1061:       "ToggleButton.border",
1062:       new BorderUIResource.CompoundBorderUIResource(null, null),
1063:       "ToggleButton.darkShadow", new ColorUIResource(shadow),
1064:       "ToggleButton.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
1065:         "SPACE",  "pressed",
1066:         "released SPACE", "released"
1067:       }),
1068:       "ToggleButton.font", new FontUIResource("Dialog", Font.PLAIN, 12),
1069:       "ToggleButton.foreground", new ColorUIResource(darkShadow),
1070:       "ToggleButton.highlight", new ColorUIResource(highLight),
1071:       "ToggleButton.light", new ColorUIResource(light),
1072:       "ToggleButton.margin", new InsetsUIResource(2, 14, 2, 14),
1073:       "ToggleButton.shadow", new ColorUIResource(shadow),
1074:       "ToggleButton.textIconGap", new Integer(4),
1075:       "ToggleButton.textShiftOffset", new Integer(0),
1076:       "ToolBar.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
1077:         "UP",  "navigateUp",
1078:         "KP_UP", "navigateUp",
1079:         "DOWN",  "navigateDown",
1080:         "KP_DOWN", "navigateDown",
1081:         "LEFT",  "navigateLeft",
1082:         "KP_LEFT", "navigateLeft",
1083:         "RIGHT", "navigateRight",
1084:         "KP_RIGHT", "navigateRight"
1085:       }),
1086:       "ToolBar.background", new ColorUIResource(light),
1087:       "ToolBar.border", new BorderUIResource.EtchedBorderUIResource(),
1088:       "ToolBar.darkShadow", new ColorUIResource(shadow),
1089:       "ToolBar.dockingBackground", new ColorUIResource(light),
1090:       "ToolBar.dockingForeground", new ColorUIResource(Color.red),
1091:       "ToolBar.floatingBackground", new ColorUIResource(light),
1092:       "ToolBar.floatingForeground", new ColorUIResource(Color.darkGray),
1093:       "ToolBar.font", new FontUIResource("Dialog", Font.PLAIN, 12),
1094:       "ToolBar.foreground", new ColorUIResource(darkShadow),
1095:       "ToolBar.highlight", new ColorUIResource(highLight),
1096:       "ToolBar.light", new ColorUIResource(highLight),
1097:       "ToolBar.separatorSize", new DimensionUIResource(20, 20),
1098:       "ToolBar.shadow", new ColorUIResource(shadow),
1099:       "ToolTip.background", new ColorUIResource(light),
1100:       "ToolTip.border", new BorderUIResource.LineBorderUIResource(Color.lightGray),
1101:       "ToolTip.font", new FontUIResource("SansSerif", Font.PLAIN, 12),
1102:       "ToolTip.foreground", new ColorUIResource(darkShadow),
1103:       "Tree.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
1104:         "ESCAPE", "cancel"
1105:       }),
1106:       "Tree.background", new ColorUIResource(new Color(255, 255, 255)),
1107:       "Tree.changeSelectionWithFocus", Boolean.TRUE,
1108: //      "Tree.closedIcon", new IconUIResource(new ImageIcon("icons/TreeClosed.png")),
1109: //      "Tree.collapsedIcon", new IconUIResource(new ImageIcon("icons/TreeCollapsed.png")),
1110:       "Tree.drawsFocusBorderAroundIcon", Boolean.FALSE,
1111:       "Tree.editorBorder", new BorderUIResource.LineBorderUIResource(Color.lightGray),
1112:       "Tree.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
1113:         "shift PAGE_DOWN", "scrollDownExtendSelection",
1114:         "PAGE_DOWN", "scrollDownChangeSelection",
1115:         "END",  "selectLast",
1116:         "ctrl KP_UP", "selectPreviousChangeLead",
1117:         "shift END", "selectLastExtendSelection",
1118:         "HOME",  "selectFirst",
1119:         "ctrl END", "selectLastChangeLead",
1120:         "ctrl SLASH", "selectAll",
1121:         "LEFT",  "selectParent",
1122:         "shift HOME", "selectFirstExtendSelection",
1123:         "UP",  "selectPrevious",
1124:         "ctrl KP_DOWN", "selectNextChangeLead",
1125:         "RIGHT", "selectChild",
1126:         "ctrl HOME", "selectFirstChangeLead",
1127:         "DOWN",  "selectNext",
1128:         "ctrl KP_LEFT", "scrollLeft",
1129:         "shift UP", "selectPreviousExtendSelection",
1130:         "F2",  "startEditing",
1131:         "ctrl LEFT", "scrollLeft",
1132:         "ctrl KP_RIGHT","scrollRight",
1133:         "ctrl UP", "selectPreviousChangeLead",
1134:         "shift DOWN", "selectNextExtendSelection",
1135:         "ENTER", "toggle",
1136:         "KP_UP", "selectPrevious",
1137:         "KP_DOWN", "selectNext",
1138:         "ctrl RIGHT", "scrollRight",
1139:         "KP_LEFT", "selectParent",
1140:         "KP_RIGHT", "selectChild",
1141:         "ctrl DOWN", "selectNextChangeLead",
1142:         "ctrl A", "selectAll",
1143:         "shift KP_UP", "selectPreviousExtendSelection",
1144:         "shift KP_DOWN","selectNextExtendSelection",
1145:         "ctrl SPACE", "toggleSelectionPreserveAnchor",
1146:         "ctrl shift PAGE_UP", "scrollUpExtendSelection",
1147:         "ctrl BACK_SLASH", "clearSelection",
1148:         "shift SPACE", "extendSelection",
1149:         "ctrl PAGE_UP", "scrollUpChangeLead",
1150:         "shift PAGE_UP","scrollUpExtendSelection",
1151:         "SPACE", "toggleSelectionPreserveAnchor",
1152:         "ctrl shift PAGE_DOWN", "scrollDownExtendSelection",
1153:         "PAGE_UP",  "scrollUpChangeSelection",
1154:         "ctrl PAGE_DOWN", "scrollDownChangeLead"
1155:       }),
1156:       "Tree.font", new FontUIResource("Dialog", Font.PLAIN, 12),
1157:       "Tree.foreground", new ColorUIResource(Color.black),
1158:       "Tree.hash", new ColorUIResource(new Color(128, 128, 128)),
1159:       "Tree.leftChildIndent", new Integer(7),
1160:       "Tree.rightChildIndent", new Integer(13),
1161:       "Tree.rowHeight", new Integer(16),
1162:       "Tree.scrollsOnExpand", Boolean.TRUE,
1163:       "Tree.selectionBackground", new ColorUIResource(Color.black),
1164:       "Tree.nonSelectionBackground", new ColorUIResource(new Color(255, 255, 255)),
1165:       "Tree.selectionBorderColor", new ColorUIResource(Color.black),
1166:       "Tree.selectionBorder", new BorderUIResource.LineBorderUIResource(Color.black),
1167:       "Tree.selectionForeground", new ColorUIResource(new Color(255, 255, 255)),
1168:       "Tree.textBackground", new ColorUIResource(new Color(192, 192, 192)),
1169:       "Tree.textForeground", new ColorUIResource(new Color(0, 0, 0)),
1170:       "Viewport.background", new ColorUIResource(light),
1171:       "Viewport.foreground", new ColorUIResource(Color.black),
1172:       "Viewport.font", new FontUIResource("Dialog", Font.PLAIN, 12)
1173:     };
1174:     defaults.putDefaults(uiDefaults);
1175:   }
1176: } // class BasicLookAndFeel