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.ActionEvent;
  45: import java.io.IOException;
  46: import java.io.InputStream;
  47: import java.io.Serializable;
  48: import java.util.Enumeration;
  49: import java.util.ResourceBundle;
  50: 
  51: import javax.sound.sampled.AudioInputStream;
  52: import javax.sound.sampled.AudioSystem;
  53: import javax.sound.sampled.Clip;
  54: import javax.sound.sampled.LineUnavailableException;
  55: import javax.sound.sampled.UnsupportedAudioFileException;
  56: import javax.swing.AbstractAction;
  57: import javax.swing.Action;
  58: import javax.swing.ActionMap;
  59: import javax.swing.BorderFactory;
  60: import javax.swing.KeyStroke;
  61: import javax.swing.LookAndFeel;
  62: import javax.swing.UIDefaults;
  63: import javax.swing.UIManager;
  64: import javax.swing.border.BevelBorder;
  65: import javax.swing.border.Border;
  66: import javax.swing.plaf.BorderUIResource;
  67: import javax.swing.plaf.ColorUIResource;
  68: import javax.swing.plaf.DimensionUIResource;
  69: import javax.swing.plaf.FontUIResource;
  70: import javax.swing.plaf.IconUIResource;
  71: import javax.swing.plaf.InsetsUIResource;
  72: 
  73: /**
  74:  * BasicLookAndFeel
  75:  * @author Andrew Selkirk
  76:  */
  77: public abstract class BasicLookAndFeel extends LookAndFeel
  78:   implements Serializable
  79: {
  80:   /**
  81:    * An action that can play an audio file.
  82:    *
  83:    * @author Roman Kennke (kennke@aicas.com)
  84:    */
  85:   private class AudioAction extends AbstractAction
  86:   {
  87:     /**
  88:      * The UIDefaults key that specifies the sound.
  89:      */
  90:     Object key;
  91: 
  92:     /**
  93:      * Creates a new AudioAction.
  94:      *
  95:      * @param key the key that describes the audio action, normally a filename
  96:      *        of an audio file relative to the current package
  97:      */
  98:     AudioAction(Object key)
  99:     {
 100:       this.key = key;
 101:     }
 102: 
 103:     /**
 104:      * Plays the sound represented by this action.
 105:      *
 106:      * @param event the action event that triggers this audio action
 107:      */
 108:     public void actionPerformed(ActionEvent event)
 109:     {
 110:       // We only can handle strings for now.
 111:       if (key instanceof String)
 112:         {
 113:           String name = UIManager.getString(key);
 114:           InputStream stream = getClass().getResourceAsStream(name);
 115:           try
 116:             {
 117:               Clip clip = AudioSystem.getClip();
 118:               AudioInputStream audioStream =
 119:                 AudioSystem.getAudioInputStream(stream);
 120:               clip.open(audioStream);
 121:             }
 122:           catch (LineUnavailableException ex)
 123:             {
 124:               // Nothing we can do about it.
 125:             }
 126:           catch (IOException ex)
 127:             {
 128:               // Nothing we can do about it.
 129:             }
 130:           catch (UnsupportedAudioFileException e)
 131:             {
 132:               // Nothing we can do about it.
 133:             }
 134:         }
 135:     }
 136:   }
 137: 
 138:   static final long serialVersionUID = -6096995660290287879L;
 139: 
 140:   private ActionMap audioActionMap;
 141: 
 142:   /**
 143:    * Creates a new instance of the Basic look and feel.
 144:    */
 145:   public BasicLookAndFeel()
 146:   {
 147:     // TODO
 148:   }
 149: 
 150:   /**
 151:    * Creates and returns a new instance of the default resources for this look 
 152:    * and feel.
 153:    * 
 154:    * @return The UI defaults.
 155:    */
 156:   public UIDefaults getDefaults()
 157:   {
 158:     // Variables
 159:     UIDefaults def = new UIDefaults();
 160:     // Initialize Class Defaults
 161:     initClassDefaults(def);
 162:     // Initialize System Colour Defaults
 163:     initSystemColorDefaults(def);
 164:     // Initialize Component Defaults
 165:     initComponentDefaults(def);
 166:     // Return UI Defaults
 167:     return def;
 168:   }
 169: 
 170:   /**
 171:    * Populates the <code>defaults</code> table with mappings between class IDs 
 172:    * and fully qualified class names for the UI delegates.
 173:    * 
 174:    * @param defaults  the defaults table (<code>null</code> not permitted).
 175:    */
 176:   protected void initClassDefaults(UIDefaults defaults)
 177:   {
 178:     // Variables
 179:     Object[] uiDefaults;
 180:     // Initialize Class Defaults
 181:     uiDefaults = new Object[] {
 182:       "ButtonUI", "javax.swing.plaf.basic.BasicButtonUI",
 183:       "CheckBoxMenuItemUI", "javax.swing.plaf.basic.BasicCheckBoxMenuItemUI",
 184:       "CheckBoxUI", "javax.swing.plaf.basic.BasicCheckBoxUI",
 185:       "ColorChooserUI", "javax.swing.plaf.basic.BasicColorChooserUI",
 186:       "ComboBoxUI", "javax.swing.plaf.basic.BasicComboBoxUI",
 187:       "DesktopIconUI", "javax.swing.plaf.basic.BasicDesktopIconUI",
 188:       "DesktopPaneUI", "javax.swing.plaf.basic.BasicDesktopPaneUI",
 189:       "EditorPaneUI", "javax.swing.plaf.basic.BasicEditorPaneUI",
 190:       "FileChooserUI", "javax.swing.plaf.basic.BasicFileChooserUI",
 191:       "FormattedTextFieldUI", "javax.swing.plaf.basic.BasicFormattedTextFieldUI",
 192:       "InternalFrameUI", "javax.swing.plaf.basic.BasicInternalFrameUI",
 193:       "LabelUI", "javax.swing.plaf.basic.BasicLabelUI",
 194:       "ListUI", "javax.swing.plaf.basic.BasicListUI",
 195:       "MenuBarUI", "javax.swing.plaf.basic.BasicMenuBarUI",
 196:       "MenuItemUI", "javax.swing.plaf.basic.BasicMenuItemUI",
 197:       "MenuUI", "javax.swing.plaf.basic.BasicMenuUI",
 198:       "OptionPaneUI", "javax.swing.plaf.basic.BasicOptionPaneUI",
 199:       "PanelUI", "javax.swing.plaf.basic.BasicPanelUI",
 200:       "PasswordFieldUI", "javax.swing.plaf.basic.BasicPasswordFieldUI",
 201:       "PopupMenuSeparatorUI", "javax.swing.plaf.basic.BasicPopupMenuSeparatorUI",
 202:       "PopupMenuUI", "javax.swing.plaf.basic.BasicPopupMenuUI",
 203:       "ProgressBarUI", "javax.swing.plaf.basic.BasicProgressBarUI",
 204:       "RadioButtonMenuItemUI", "javax.swing.plaf.basic.BasicRadioButtonMenuItemUI",
 205:       "RadioButtonUI", "javax.swing.plaf.basic.BasicRadioButtonUI",
 206:       "RootPaneUI", "javax.swing.plaf.basic.BasicRootPaneUI",
 207:       "ScrollBarUI", "javax.swing.plaf.basic.BasicScrollBarUI",
 208:       "ScrollPaneUI", "javax.swing.plaf.basic.BasicScrollPaneUI",
 209:       "SeparatorUI", "javax.swing.plaf.basic.BasicSeparatorUI",
 210:       "SliderUI", "javax.swing.plaf.basic.BasicSliderUI",
 211:       "SplitPaneUI", "javax.swing.plaf.basic.BasicSplitPaneUI",
 212:       "SpinnerUI", "javax.swing.plaf.basic.BasicSpinnerUI",
 213:       "StandardDialogUI", "javax.swing.plaf.basic.BasicStandardDialogUI",
 214:       "TabbedPaneUI", "javax.swing.plaf.basic.BasicTabbedPaneUI",
 215:       "TableHeaderUI", "javax.swing.plaf.basic.BasicTableHeaderUI",
 216:       "TableUI", "javax.swing.plaf.basic.BasicTableUI",
 217:       "TextPaneUI", "javax.swing.plaf.basic.BasicTextPaneUI",
 218:       "TextAreaUI", "javax.swing.plaf.basic.BasicTextAreaUI",
 219:       "TextFieldUI", "javax.swing.plaf.basic.BasicTextFieldUI",
 220:       "ToggleButtonUI", "javax.swing.plaf.basic.BasicToggleButtonUI",
 221:       "ToolBarSeparatorUI", "javax.swing.plaf.basic.BasicToolBarSeparatorUI",
 222:       "ToolBarUI", "javax.swing.plaf.basic.BasicToolBarUI",
 223:       "ToolTipUI", "javax.swing.plaf.basic.BasicToolTipUI",
 224:       "TreeUI", "javax.swing.plaf.basic.BasicTreeUI",
 225:       "ViewportUI", "javax.swing.plaf.basic.BasicViewportUI"
 226:     };
 227:     // Add Class Defaults to UI Defaults table
 228:     defaults.putDefaults(uiDefaults);
 229:   }
 230: 
 231:   /**
 232:    * Populates the <code>defaults</code> table with system color defaults.
 233:    * 
 234:    * @param defaults  the defaults table (<code>null</code> not permitted).
 235:    */
 236:   protected void initSystemColorDefaults(UIDefaults defaults)
 237:   {
 238:     Color highLight = new Color(249, 247, 246);
 239:     Color light = new Color(239, 235, 231);
 240:     Color shadow = new Color(139, 136, 134);
 241:     Color darkShadow = new Color(16, 16, 16);
 242: 
 243:     Object[] uiDefaults;
 244:     uiDefaults = new Object[] {
 245:       "activeCaption", new ColorUIResource(0, 0, 128),
 246:       "activeCaptionBorder", new ColorUIResource(Color.lightGray),
 247:       "activeCaptionText", new ColorUIResource(Color.white),
 248:       "control", new ColorUIResource(light),
 249:       "controlDkShadow", new ColorUIResource(shadow),
 250:       "controlHighlight", new ColorUIResource(highLight),
 251:       "controlLtHighlight", new ColorUIResource(highLight),
 252:       "controlShadow", new ColorUIResource(shadow),
 253:       "controlText", new ColorUIResource(darkShadow),
 254:       "desktop", new ColorUIResource(0, 92, 92),
 255:       "inactiveCaption", new ColorUIResource(Color.gray),
 256:       "inactiveCaptionBorder", new ColorUIResource(Color.lightGray),
 257:       "inactiveCaptionText", new ColorUIResource(Color.lightGray),
 258:       "info", new ColorUIResource(light),
 259:       "infoText", new ColorUIResource(darkShadow),
 260:       "menu", new ColorUIResource(light),
 261:       "menuText", new ColorUIResource(darkShadow),
 262:       "scrollbar", new ColorUIResource(light),
 263:       "text", new ColorUIResource(Color.white),
 264:       "textHighlight", new ColorUIResource(Color.black),
 265:       "textHighlightText", new ColorUIResource(Color.white),
 266:       "textInactiveText", new ColorUIResource(Color.gray),
 267:       "textText", new ColorUIResource(Color.black),
 268:       "window", new ColorUIResource(light),
 269:       "windowBorder", new ColorUIResource(Color.black),
 270:       "windowText", new ColorUIResource(darkShadow)
 271:     };
 272:     defaults.putDefaults(uiDefaults);
 273:   }
 274: 
 275:   /**
 276:    * Loads the system colors.  This method is not implemented yet.
 277:    * 
 278:    * @param defaults  the defaults table (<code>null</code> not permitted).
 279:    * @param systemColors TODO
 280:    * @param useNative TODO
 281:    */
 282:   protected void loadSystemColors(UIDefaults defaults, String[] systemColors,
 283:                                   boolean useNative)
 284:   {
 285:     // TODO
 286:   }
 287: 
 288:   /**
 289:    * loadResourceBundle
 290:    * @param defaults TODO
 291:    */
 292:   private void loadResourceBundle(UIDefaults defaults)
 293:   {
 294:     ResourceBundle bundle;
 295:     Enumeration e;
 296:     String key;
 297:     String value;
 298:     bundle = ResourceBundle.getBundle("resources/basic");
 299:     // Process Resources
 300:     e = bundle.getKeys();
 301:     while (e.hasMoreElements())
 302:       {
 303:         key = (String) e.nextElement();
 304:         value = bundle.getString(key);
 305:         defaults.put(key, value);
 306:       }
 307:   }
 308: 
 309:   /**
 310:    * initComponentDefaults
 311:    * @param defaults  the defaults table (<code>null</code> not permitted).
 312:    */
 313:   protected void initComponentDefaults(UIDefaults defaults)
 314:   {
 315:     Object[] uiDefaults;
 316:     
 317:     Color highLight = new Color(249, 247, 246);
 318:     Color light = new Color(239, 235, 231);
 319:     Color shadow = new Color(139, 136, 134);
 320:     Color darkShadow = new Color(16, 16, 16);
 321:     
 322:     uiDefaults = new Object[] {
 323: 
 324:       "AbstractUndoableEdit.undoText", "Undo",
 325:       "AbstractUndoableEdit.redoText", "Redo",
 326:       "Button.background", new ColorUIResource(Color.LIGHT_GRAY),
 327:       "Button.border",
 328:       new UIDefaults.LazyValue() 
 329:       {
 330:         public Object createValue(UIDefaults table)
 331:         {
 332:           return BasicBorders.getButtonBorder();
 333:         }
 334:       },
 335:       "Button.darkShadow", new ColorUIResource(Color.BLACK),
 336:       "Button.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 337:       "Button.foreground", new ColorUIResource(Color.BLACK),
 338:       "Button.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 339:           KeyStroke.getKeyStroke("SPACE"), "pressed",
 340:           KeyStroke.getKeyStroke("released SPACE"), "released"
 341:       }),
 342:       "Button.highlight", new ColorUIResource(Color.WHITE),
 343:       "Button.light", new ColorUIResource(Color.LIGHT_GRAY),
 344:       "Button.margin", new InsetsUIResource(2, 14, 2, 14),
 345:       "Button.shadow", new ColorUIResource(Color.GRAY),
 346:       "Button.textIconGap", new Integer(4),
 347:       "Button.textShiftOffset", new Integer(0),
 348:       "CheckBox.background", new ColorUIResource(new Color(204, 204, 204)),
 349:       "CheckBox.border", new BorderUIResource.CompoundBorderUIResource(null,
 350:                                                                        null),
 351:       "CheckBox.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 352:           KeyStroke.getKeyStroke("SPACE"), "pressed",
 353:           KeyStroke.getKeyStroke("released SPACE"), "released"
 354:       }),
 355:       "CheckBox.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 356:       "CheckBox.foreground", new ColorUIResource(darkShadow),
 357:       "CheckBox.icon",
 358:       new UIDefaults.LazyValue()
 359:       {
 360:         public Object createValue(UIDefaults def)
 361:         {
 362:           return BasicIconFactory.getCheckBoxIcon();
 363:         }
 364:       },
 365:       "CheckBox.checkIcon", 
 366:       new UIDefaults.LazyValue()
 367:       {
 368:         public Object createValue(UIDefaults def)
 369:         {
 370:           return BasicIconFactory.getMenuItemCheckIcon();
 371:         }
 372:       },
 373:       "CheckBox.margin",new InsetsUIResource(2, 2, 2, 2),
 374:       "CheckBox.textIconGap", new Integer(4),
 375:       "CheckBox.textShiftOffset", new Integer(0),
 376:       "CheckBoxMenuItem.acceleratorFont", new FontUIResource("Dialog",
 377:                                                              Font.PLAIN, 12),
 378:       "CheckBoxMenuItem.acceleratorForeground",
 379:       new ColorUIResource(new Color(16, 16, 16)),
 380:       "CheckBoxMenuItem.acceleratorSelectionForeground",
 381:       new ColorUIResource(Color.white),
 382:       "CheckBoxMenuItem.arrowIcon", BasicIconFactory.getMenuItemArrowIcon(),
 383:       "CheckBoxMenuItem.background", new ColorUIResource(light),
 384:       "CheckBoxMenuItem.border", new BasicBorders.MarginBorder(),
 385:       "CheckBoxMenuItem.borderPainted", Boolean.FALSE,
 386:       "CheckBoxMenuItem.checkIcon", 
 387:       new UIDefaults.LazyValue()
 388:       {
 389:         public Object createValue(UIDefaults def)
 390:         {
 391:           return BasicIconFactory.getCheckBoxMenuItemIcon();
 392:         }
 393:       },
 394:       "CheckBoxMenuItem.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 395:       "CheckBoxMenuItem.foreground", new ColorUIResource(darkShadow),
 396:       "CheckBoxMenuItem.margin", new InsetsUIResource(2, 2, 2, 2),
 397:       "CheckBoxMenuItem.selectionBackground", new ColorUIResource(Color.black),
 398:       "CheckBoxMenuItem.selectionForeground", new ColorUIResource(Color.white),
 399:       "ColorChooser.background", new ColorUIResource(light),
 400:       "ColorChooser.cancelText", "Cancel",
 401:       "ColorChooser.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 402:       "ColorChooser.foreground", new ColorUIResource(darkShadow),
 403:       "ColorChooser.hsbBlueText", "B",
 404:       "ColorChooser.hsbBrightnessText", "B",
 405:       "ColorChooser.hsbGreenText", "G",
 406:       "ColorChooser.hsbHueText", "H",
 407:       "ColorChooser.hsbNameText", "HSB",
 408:       "ColorChooser.hsbRedText", "R",
 409:       "ColorChooser.hsbSaturationText", "S",
 410:       "ColorChooser.okText", "OK",
 411:       "ColorChooser.previewText", "Preview",
 412:       "ColorChooser.resetText", "Reset",
 413:       "ColorChooser.rgbBlueMnemonic", "66",
 414:       "ColorChooser.rgbBlueText", "Blue",
 415:       "ColorChooser.rgbGreenMnemonic", "78",
 416:       "ColorChooser.rgbGreenText", "Green",
 417:       "ColorChooser.rgbNameText", "RGB",
 418:       "ColorChooser.rgbRedMnemonic", "68",
 419:       "ColorChooser.rgbRedText", "Red",
 420:       "ColorChooser.sampleText", "Sample Text  Sample Text",
 421:       "ColorChooser.swatchesDefaultRecentColor", new ColorUIResource(light),
 422:       "ColorChooser.swatchesNameText", "Swatches",
 423:       "ColorChooser.swatchesRecentSwatchSize", new Dimension(10, 10),
 424:       "ColorChooser.swatchesRecentText", "Recent:",
 425:       "ColorChooser.swatchesSwatchSize", new Dimension(10, 10),
 426:       "ComboBox.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
 427:         "ESCAPE", "hidePopup",
 428:         "PAGE_UP", "pageUpPassThrough",
 429:         "PAGE_DOWN", "pageDownPassThrough",
 430:         "HOME",  "homePassThrough",
 431:         "END",  "endPassThrough"
 432:       }),
 433:       "ComboBox.background", new ColorUIResource(Color.white),
 434:       "ComboBox.buttonBackground", new ColorUIResource(light),
 435:       "ComboBox.buttonDarkShadow", new ColorUIResource(darkShadow),
 436:       "ComboBox.buttonHighlight", new ColorUIResource(highLight),
 437:       "ComboBox.buttonShadow", new ColorUIResource(shadow),
 438:       "ComboBox.disabledBackground", new ColorUIResource(light),
 439:       "ComboBox.disabledForeground", new ColorUIResource(Color.gray),
 440:       "ComboBox.font", new FontUIResource("SansSerif", Font.PLAIN, 12),
 441:       "ComboBox.foreground", new ColorUIResource(Color.black),
 442:       "ComboBox.selectionBackground", new ColorUIResource(0, 0, 128),
 443:       "ComboBox.selectionForeground", new ColorUIResource(Color.white),
 444:       "Desktop.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
 445:         "KP_LEFT", "left",
 446:         "KP_RIGHT", "right",
 447:         "ctrl F5", "restore",
 448:         "LEFT",  "left",
 449:         "ctrl alt F6", "selectNextFrame",
 450:         "UP",  "up",
 451:         "ctrl F6", "selectNextFrame",
 452:         "RIGHT", "right",
 453:         "DOWN",  "down",
 454:         "ctrl F7", "move",
 455:         "ctrl F8", "resize",
 456:         "ESCAPE", "escape",
 457:         "ctrl TAB", "selectNextFrame",
 458:         "ctrl F9", "minimize",
 459:         "KP_UP", "up",
 460:         "ctrl F4", "close",
 461:         "KP_DOWN", "down",
 462:         "ctrl F10", "maximize",
 463:         "ctrl alt shift F6","selectPreviousFrame"
 464:       }),
 465:       "DesktopIcon.border", new BorderUIResource.CompoundBorderUIResource(null,
 466:                                                                           null),
 467:       "EditorPane.background", new ColorUIResource(Color.white),
 468:       "EditorPane.border", BasicBorders.getMarginBorder(),
 469:       "EditorPane.caretBlinkRate", new Integer(500),
 470:       "EditorPane.caretForeground", new ColorUIResource(Color.black),
 471:       "EditorPane.font", new FontUIResource("Serif", Font.PLAIN, 12),
 472:       "EditorPane.foreground", new ColorUIResource(Color.black),
 473:       "EditorPane.inactiveForeground", new ColorUIResource(Color.gray),
 474:       "EditorPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {            
 475:                 KeyStroke.getKeyStroke("shift UP"), "selection-up",
 476:                 KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word",
 477:                 KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word",
 478:                 KeyStroke.getKeyStroke("shift KP_UP"), "selection-up",
 479:                 KeyStroke.getKeyStroke("DOWN"), "caret-down",
 480:                 KeyStroke.getKeyStroke("shift ctrl T"), "previous-link-action",
 481:                 KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word",
 482:                 KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard",
 483:                 KeyStroke.getKeyStroke("END"), "caret-end-line",
 484:                 KeyStroke.getKeyStroke("shift PAGE_UP"), "selection-page-up",
 485:                 KeyStroke.getKeyStroke("KP_UP"), "caret-up",
 486:                 KeyStroke.getKeyStroke("DELETE"), "delete-next",
 487:                 KeyStroke.getKeyStroke("ctrl HOME"), "caret-begin",
 488:                 KeyStroke.getKeyStroke("shift LEFT"), "selection-backward",
 489:                 KeyStroke.getKeyStroke("ctrl END"), "caret-end",
 490:                 KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous",
 491:                 KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word",
 492:                 KeyStroke.getKeyStroke("LEFT"), "caret-backward",
 493:                 KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward",
 494:                 KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward",
 495:                 KeyStroke.getKeyStroke("ctrl SPACE"), "activate-link-action",
 496:                 KeyStroke.getKeyStroke("ctrl H"), "delete-previous",
 497:                 KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect",
 498:                 KeyStroke.getKeyStroke("ENTER"), "insert-break",
 499:                 KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line",
 500:                 KeyStroke.getKeyStroke("RIGHT"), "caret-forward",
 501:                 KeyStroke.getKeyStroke("shift ctrl PAGE_UP"), "selection-page-left",
 502:                 KeyStroke.getKeyStroke("shift DOWN"), "selection-down",
 503:                 KeyStroke.getKeyStroke("PAGE_DOWN"), "page-down",
 504:                 KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward",
 505:                 KeyStroke.getKeyStroke("shift ctrl O"), "toggle-componentOrientation",
 506:                 KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard",
 507:                 KeyStroke.getKeyStroke("shift ctrl PAGE_DOWN"), "selection-page-right",
 508:                 KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard",
 509:                 KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word",
 510:                 KeyStroke.getKeyStroke("shift END"), "selection-end-line",
 511:                 KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word",
 512:                 KeyStroke.getKeyStroke("HOME"), "caret-begin-line",
 513:                 KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard",
 514:                 KeyStroke.getKeyStroke("KP_DOWN"), "caret-down",
 515:                 KeyStroke.getKeyStroke("ctrl A"), "select-all",
 516:                 KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward",
 517:                 KeyStroke.getKeyStroke("shift ctrl END"), "selection-end",
 518:                 KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard",
 519:                 KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word",
 520:                 KeyStroke.getKeyStroke("ctrl T"), "next-link-action",
 521:                 KeyStroke.getKeyStroke("shift KP_DOWN"), "selection-down",
 522:                 KeyStroke.getKeyStroke("TAB"), "insert-tab",
 523:                 KeyStroke.getKeyStroke("UP"), "caret-up",
 524:                 KeyStroke.getKeyStroke("shift ctrl HOME"), "selection-begin",
 525:                 KeyStroke.getKeyStroke("shift PAGE_DOWN"), "selection-page-down",
 526:                 KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward",
 527:                 KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word",
 528:                 KeyStroke.getKeyStroke("PAGE_UP"), "page-up",
 529:                 KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard"
 530:           }),
 531:       "EditorPane.margin", new InsetsUIResource(3, 3, 3, 3),
 532:       "EditorPane.selectionBackground", new ColorUIResource(Color.black),
 533:       "EditorPane.selectionForeground", new ColorUIResource(Color.white),
 534:       "FileChooser.acceptAllFileFilterText", "All Files (*.*)",
 535:       "FileChooser.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
 536:         "ESCAPE", "cancelSelection"
 537:       }),
 538:       "FileChooser.cancelButtonMnemonic", "67",
 539:       "FileChooser.cancelButtonText", "Cancel",
 540:       "FileChooser.cancelButtonToolTipText", "Abort file chooser dialog",
 541:       "FileChooser.directoryDescriptionText", "Directory",
 542:       "FileChooser.fileDescriptionText", "Generic File",
 543:       "FileChooser.directoryOpenButtonMnemonic", "79",
 544:       "FileChooser.helpButtonMnemonic", "72",
 545:       "FileChooser.helpButtonText", "Help",
 546:       "FileChooser.helpButtonToolTipText", "FileChooser help",
 547:       "FileChooser.newFolderErrorSeparator", ":",
 548:       "FileChooser.newFolderErrorText", "Error creating new folder",
 549:       "FileChooser.openButtonMnemonic", "79",
 550:       "FileChooser.openButtonText", "Open",
 551:       "FileChooser.openButtonToolTipText", "Open selected file",
 552:       "FileChooser.saveButtonMnemonic", "83",
 553:       "FileChooser.saveButtonText", "Save",
 554:       "FileChooser.saveButtonToolTipText", "Save selected file",
 555:       "FileChooser.updateButtonMnemonic", "85",
 556:       "FileChooser.updateButtonText", "Update",
 557:       "FileChooser.updateButtonToolTipText", "Update directory listing",
 558:       "FocusManagerClassName", "TODO",
 559:       "FormattedTextField.background", new ColorUIResource(light),
 560:       "FormattedTextField.caretForeground", new ColorUIResource(Color.black),
 561:       "FormattedTextField.margin", new InsetsUIResource(0, 0, 0, 0),
 562:       "FormattedTextField.caretBlinkRate", new Integer(500),
 563:       "FormattedTextField.font",
 564:       new FontUIResource("SansSerif", Font.PLAIN, 12),
 565:       "FormattedTextField.foreground", new ColorUIResource(Color.black),
 566:       "FormattedTextField.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 567:         KeyStroke.getKeyStroke("KP_UP"), "increment",
 568:         KeyStroke.getKeyStroke("END"), "caret-end-line",
 569:         KeyStroke.getKeyStroke("shift ctrl  O"), "toggle-componentOrientation",
 570:         KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward",
 571:         KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward",
 572:         KeyStroke.getKeyStroke("KP_DOWN"), "decrement",
 573:         KeyStroke.getKeyStroke("HOME"), "caret-begin-line",
 574:         KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard",
 575:         KeyStroke.getKeyStroke("ctrl H"), "delete-previous",
 576:         KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward",
 577:         KeyStroke.getKeyStroke("LEFT"), "caret-backward",
 578:         KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard",
 579:         KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward",
 580:         KeyStroke.getKeyStroke("UP"), "increment",
 581:         KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word",
 582:         KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard",
 583:         KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line",
 584:         KeyStroke.getKeyStroke("ESCAPE"), "reset-field-edit",
 585:         KeyStroke.getKeyStroke("RIGHT"), "caret-forward",
 586:         KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word",
 587:         KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word",
 588:         KeyStroke.getKeyStroke("DOWN"), "decrement",
 589:         KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word",
 590:         KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard",
 591:         KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word",
 592:         KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect",
 593:         KeyStroke.getKeyStroke("ctrl A"), "select-all",
 594:         KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward",
 595:         KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard",
 596:         KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word",
 597:         KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous",
 598:         KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word",
 599:         KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard",
 600:         KeyStroke.getKeyStroke("shift END"), "selection-end-line",
 601:         KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word",
 602:         KeyStroke.getKeyStroke("DELETE"), "delete-next",
 603:         KeyStroke.getKeyStroke("ENTER"), "notify-field-accept",
 604:         KeyStroke.getKeyStroke("shift LEFT"), "selection-backward"
 605:       }),
 606:       "FormattedTextField.inactiveBackground", new ColorUIResource(light),
 607:       "FormattedTextField.inactiveForeground", new ColorUIResource(Color.gray),
 608:       "FormattedTextField.selectionBackground",
 609:       new ColorUIResource(Color.black),
 610:       "FormattedTextField.selectionForeground",
 611:       new ColorUIResource(Color.white),
 612:       "FormView.resetButtonText", "Reset",
 613:       "FormView.submitButtonText", "Submit Query",
 614:       "InternalFrame.activeTitleBackground", new ColorUIResource(0, 0, 128),
 615:       "InternalFrame.activeTitleForeground", new ColorUIResource(Color.white),
 616:       "InternalFrame.border",
 617:       new UIDefaults.LazyValue()
 618:       {
 619:     public Object createValue(UIDefaults table)
 620:     {
 621:       Color lineColor = new Color(238, 238, 238);
 622:       Border inner = BorderFactory.createLineBorder(lineColor, 1);
 623:       Color shadowInner = new Color(184, 207, 229);
 624:       Color shadowOuter = new Color(122, 138, 153);
 625:       Border outer = BorderFactory.createBevelBorder(BevelBorder.RAISED,
 626:                              Color.WHITE,
 627:                              Color.WHITE,
 628:                              shadowOuter,
 629:                              shadowInner);
 630:       Border border = new BorderUIResource.CompoundBorderUIResource(outer,
 631:                                     inner);
 632:       return border;
 633:     }
 634:       },
 635:       "InternalFrame.borderColor", new ColorUIResource(light),
 636:       "InternalFrame.borderDarkShadow", new ColorUIResource(Color.BLACK),
 637:       "InternalFrame.borderHighlight", new ColorUIResource(Color.WHITE),
 638:       "InternalFrame.borderLight", new ColorUIResource(Color.LIGHT_GRAY),
 639:       "InternalFrame.borderShadow", new ColorUIResource(Color.GRAY),
 640:       "InternalFrame.closeIcon", BasicIconFactory.createEmptyFrameIcon(),
 641:       "InternalFrame.icon",
 642:       new UIDefaults.LazyValue()
 643:       {
 644:         public Object createValue(UIDefaults def)
 645:         {
 646:           return new IconUIResource(BasicIconFactory.createEmptyFrameIcon());
 647:         }
 648:       },
 649:       "InternalFrame.iconifyIcon", BasicIconFactory.createEmptyFrameIcon(),
 650:       "InternalFrame.inactiveTitleBackground", new ColorUIResource(Color.gray),
 651:       "InternalFrame.inactiveTitleForeground",
 652:       new ColorUIResource(Color.lightGray),
 653:       "InternalFrame.maximizeIcon", BasicIconFactory.createEmptyFrameIcon(),
 654:       "InternalFrame.minimizeIcon", BasicIconFactory.createEmptyFrameIcon(),
 655:       "InternalFrame.titleFont", new FontUIResource("Dialog", Font.BOLD, 12),
 656:       "InternalFrame.windowBindings", new Object[] {
 657:         "shift ESCAPE", "showSystemMenu",
 658:         "ctrl SPACE",  "showSystemMenu",
 659:         "ESCAPE",  "showSystemMenu"
 660:       },
 661:       "Label.background", new ColorUIResource(light),
 662:       "Label.disabledForeground", new ColorUIResource(Color.white),
 663:       "Label.disabledShadow", new ColorUIResource(shadow),
 664:       "Label.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 665:       "Label.foreground", new ColorUIResource(darkShadow),
 666:       "List.background", new ColorUIResource(Color.white),
 667:       "List.border", new BasicBorders.MarginBorder(),
 668:       "List.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 669:             KeyStroke.getKeyStroke("ctrl DOWN"), "selectNextRowChangeLead",
 670:             KeyStroke.getKeyStroke("shift UP"), "selectPreviousRowExtendSelection",
 671:             KeyStroke.getKeyStroke("ctrl RIGHT"), "selectNextColumnChangeLead",
 672:             KeyStroke.getKeyStroke("shift ctrl LEFT"), "selectPreviousColumnExtendSelection",
 673:             KeyStroke.getKeyStroke("shift KP_UP"), "selectPreviousRowExtendSelection",
 674:             KeyStroke.getKeyStroke("DOWN"), "selectNextRow",
 675:             KeyStroke.getKeyStroke("ctrl UP"), "selectPreviousRowChangeLead",
 676:             KeyStroke.getKeyStroke("ctrl LEFT"), "selectPreviousColumnChangeLead",
 677:             KeyStroke.getKeyStroke("CUT"), "cut",
 678:             KeyStroke.getKeyStroke("END"), "selectLastRow",
 679:             KeyStroke.getKeyStroke("shift PAGE_UP"), "scrollUpExtendSelection",
 680:             KeyStroke.getKeyStroke("KP_UP"), "selectPreviousRow",
 681:             KeyStroke.getKeyStroke("shift ctrl UP"), "selectPreviousRowExtendSelection",
 682:             KeyStroke.getKeyStroke("ctrl HOME"), "selectFirstRowChangeLead",
 683:             KeyStroke.getKeyStroke("shift LEFT"), "selectPreviousColumnExtendSelection",
 684:             KeyStroke.getKeyStroke("ctrl END"), "selectLastRowChangeLead",
 685:             KeyStroke.getKeyStroke("ctrl PAGE_DOWN"), "scrollDownChangeLead",
 686:             KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selectNextColumnExtendSelection",
 687:             KeyStroke.getKeyStroke("LEFT"), "selectPreviousColumn",
 688:             KeyStroke.getKeyStroke("ctrl PAGE_UP"), "scrollUpChangeLead",
 689:             KeyStroke.getKeyStroke("KP_LEFT"), "selectPreviousColumn",
 690:             KeyStroke.getKeyStroke("shift KP_RIGHT"), "selectNextColumnExtendSelection",
 691:             KeyStroke.getKeyStroke("SPACE"), "addToSelection",
 692:             KeyStroke.getKeyStroke("ctrl SPACE"), "toggleAndAnchor",
 693:             KeyStroke.getKeyStroke("shift SPACE"), "extendTo",
 694:             KeyStroke.getKeyStroke("shift ctrl SPACE"), "moveSelectionTo",
 695:             KeyStroke.getKeyStroke("shift ctrl DOWN"), "selectNextRowExtendSelection",
 696:             KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "clearSelection",
 697:             KeyStroke.getKeyStroke("shift HOME"), "selectFirstRowExtendSelection",
 698:             KeyStroke.getKeyStroke("RIGHT"), "selectNextColumn",
 699:             KeyStroke.getKeyStroke("shift ctrl PAGE_UP"), "scrollUpExtendSelection",
 700:             KeyStroke.getKeyStroke("shift DOWN"), "selectNextRowExtendSelection",
 701:             KeyStroke.getKeyStroke("PAGE_DOWN"), "scrollDown",
 702:             KeyStroke.getKeyStroke("shift ctrl KP_UP"), "selectPreviousRowExtendSelection",
 703:             KeyStroke.getKeyStroke("shift KP_LEFT"), "selectPreviousColumnExtendSelection",
 704:             KeyStroke.getKeyStroke("ctrl X"), "cut",
 705:             KeyStroke.getKeyStroke("shift ctrl PAGE_DOWN"), "scrollDownExtendSelection",
 706:             KeyStroke.getKeyStroke("ctrl SLASH"), "selectAll",
 707:             KeyStroke.getKeyStroke("ctrl C"), "copy",
 708:             KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "selectNextColumnChangeLead",
 709:             KeyStroke.getKeyStroke("shift END"), "selectLastRowExtendSelection",
 710:             KeyStroke.getKeyStroke("shift ctrl KP_DOWN"), "selectNextRowExtendSelection",
 711:             KeyStroke.getKeyStroke("ctrl KP_LEFT"), "selectPreviousColumnChangeLead",
 712:             KeyStroke.getKeyStroke("HOME"), "selectFirstRow",
 713:             KeyStroke.getKeyStroke("ctrl V"), "paste",
 714:             KeyStroke.getKeyStroke("KP_DOWN"), "selectNextRow",
 715:             KeyStroke.getKeyStroke("ctrl KP_DOWN"), "selectNextRowChangeLead",
 716:             KeyStroke.getKeyStroke("shift RIGHT"), "selectNextColumnExtendSelection",
 717:             KeyStroke.getKeyStroke("ctrl A"), "selectAll",
 718:             KeyStroke.getKeyStroke("shift ctrl END"), "selectLastRowExtendSelection",
 719:             KeyStroke.getKeyStroke("COPY"), "copy",
 720:             KeyStroke.getKeyStroke("ctrl KP_UP"), "selectPreviousRowChangeLead",
 721:             KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selectPreviousColumnExtendSelection",
 722:             KeyStroke.getKeyStroke("shift KP_DOWN"), "selectNextRowExtendSelection",
 723:             KeyStroke.getKeyStroke("UP"), "selectPreviousRow",
 724:             KeyStroke.getKeyStroke("shift ctrl HOME"), "selectFirstRowExtendSelection",
 725:             KeyStroke.getKeyStroke("shift PAGE_DOWN"), "scrollDownExtendSelection",
 726:             KeyStroke.getKeyStroke("KP_RIGHT"), "selectNextColumn",
 727:             KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selectNextColumnExtendSelection",
 728:             KeyStroke.getKeyStroke("PAGE_UP"), "scrollUp",
 729:             KeyStroke.getKeyStroke("PASTE"), "paste"
 730:       }),
 731:       "List.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 732:       "List.foreground", new ColorUIResource(Color.black),
 733:       "List.selectionBackground", new ColorUIResource(0, 0, 128),
 734:       "List.selectionForeground", new ColorUIResource(Color.white),
 735:       "List.focusCellHighlightBorder",
 736:       new BorderUIResource.
 737:       LineBorderUIResource(new ColorUIResource(Color.yellow)),
 738:       "Menu.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 12),
 739:       "Menu.crossMenuMnemonic", Boolean.TRUE,
 740:       "Menu.acceleratorForeground", new ColorUIResource(darkShadow),
 741:       "Menu.acceleratorSelectionForeground", new ColorUIResource(Color.white),
 742:       "Menu.arrowIcon", BasicIconFactory.getMenuArrowIcon(),
 743:       "Menu.background", new ColorUIResource(light),
 744:       "Menu.border", new BasicBorders.MarginBorder(),
 745:       "Menu.borderPainted", Boolean.FALSE,
 746:       "Menu.checkIcon", BasicIconFactory.getMenuItemCheckIcon(),
 747:       "Menu.consumesTabs", Boolean.TRUE,
 748:       "Menu.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 749:       "Menu.foreground", new ColorUIResource(darkShadow),
 750:       "Menu.margin", new InsetsUIResource(2, 2, 2, 2),
 751:       "Menu.selectedWindowInputMapBindings", new Object[] {
 752:         "ESCAPE", "cancel",
 753:         "DOWN",  "selectNext",
 754:         "KP_DOWN", "selectNext",
 755:         "UP",  "selectPrevious",
 756:         "KP_UP", "selectPrevious",
 757:         "LEFT",  "selectParent",
 758:         "KP_LEFT", "selectParent",
 759:         "RIGHT", "selectChild",
 760:         "KP_RIGHT", "selectChild",
 761:         "ENTER", "return",
 762:         "SPACE", "return"
 763:       },
 764:       "Menu.menuPopupOffsetX", new Integer(0),
 765:       "Menu.menuPopupOffsetY", new Integer(0),
 766:       "Menu.submenuPopupOffsetX", new Integer(0),
 767:       "Menu.submenuPopupOffsetY", new Integer(0),
 768:       "Menu.selectionBackground", new ColorUIResource(Color.black),
 769:       "Menu.selectionForeground", new ColorUIResource(Color.white),
 770:       "MenuBar.background", new ColorUIResource(light),
 771:       "MenuBar.border", new BasicBorders.MenuBarBorder(null, null),
 772:       "MenuBar.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 773:       "MenuBar.foreground", new ColorUIResource(darkShadow),
 774:       "MenuBar.highlight", new ColorUIResource(highLight),
 775:       "MenuBar.shadow", new ColorUIResource(shadow),
 776:       "MenuBar.windowBindings", new Object[] {
 777:         "F10", "takeFocus"
 778:       },
 779:       "MenuItem.acceleratorDelimiter", "+",
 780:       "MenuItem.acceleratorFont", new FontUIResource("Dialog", Font.PLAIN, 12),
 781:       "MenuItem.acceleratorForeground", new ColorUIResource(darkShadow),
 782:       "MenuItem.acceleratorSelectionForeground",
 783:       new ColorUIResource(Color.white),
 784:       "MenuItem.arrowIcon", BasicIconFactory.getMenuItemArrowIcon(),
 785:       "MenuItem.background", new ColorUIResource(light),
 786:       "MenuItem.border", new BasicBorders.MarginBorder(),
 787:       "MenuItem.borderPainted", Boolean.FALSE,
 788:       "MenuItem.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 789:       "MenuItem.foreground", new ColorUIResource(darkShadow),
 790:       "MenuItem.margin", new InsetsUIResource(2, 2, 2, 2),
 791:       "MenuItem.selectionBackground", new ColorUIResource(Color.black),
 792:       "MenuItem.selectionForeground", new ColorUIResource(Color.white),
 793:       "OptionPane.background", new ColorUIResource(light),
 794:       "OptionPane.border",
 795:       new BorderUIResource.EmptyBorderUIResource(0, 0, 0, 0),
 796:       "OptionPane.buttonAreaBorder",
 797:       new BorderUIResource.EmptyBorderUIResource(0, 0, 0, 0),
 798:       "OptionPane.buttonClickThreshhold", new Integer(500),
 799:       "OptionPane.cancelButtonText", "Cancel",
 800:       "OptionPane.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 801:       "OptionPane.foreground", new ColorUIResource(darkShadow),
 802:       "OptionPane.messageAreaBorder",
 803:       new BorderUIResource.EmptyBorderUIResource(0, 0, 0, 0),
 804:       "OptionPane.messageForeground", new ColorUIResource(darkShadow),
 805:       "OptionPane.minimumSize",
 806:       new DimensionUIResource(BasicOptionPaneUI.MinimumWidth,
 807:                               BasicOptionPaneUI.MinimumHeight),
 808:       "OptionPane.noButtonText", "No",
 809:       "OptionPane.okButtonText", "OK",
 810:       "OptionPane.windowBindings", new Object[] {
 811:         "ESCAPE",  "close"
 812:       },
 813:       "OptionPane.yesButtonText", "Yes",
 814:       "Panel.background", new ColorUIResource(light),
 815:       "Panel.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 816:       "Panel.foreground", new ColorUIResource(Color.black),
 817:       "PasswordField.background", new ColorUIResource(light),
 818:       "PasswordField.border", new BasicBorders.FieldBorder(null, null,
 819:                                                            null, null),
 820:       "PasswordField.caretBlinkRate", new Integer(500),
 821:       "PasswordField.caretForeground", new ColorUIResource(Color.black),
 822:       "PasswordField.font", new FontUIResource("MonoSpaced", Font.PLAIN, 12),
 823:       "PasswordField.foreground", new ColorUIResource(Color.black),
 824:       "PasswordField.inactiveBackground", new ColorUIResource(light),
 825:       "PasswordField.inactiveForeground", new ColorUIResource(Color.gray),
 826:       "PasswordField.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 827:                       KeyStroke.getKeyStroke("END"), "caret-end-line",
 828:                       KeyStroke.getKeyStroke("shift ctrl O"), "toggle-componentOrientation",
 829:                       KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward",
 830:                       KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward",
 831:                       KeyStroke.getKeyStroke("HOME"), "caret-begin-line",
 832:                       KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard",
 833:                       KeyStroke.getKeyStroke("ctrl H"), "delete-previous",
 834:                       KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward",
 835:                       KeyStroke.getKeyStroke("LEFT"), "caret-backward",
 836:                       KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard",
 837:                       KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward",
 838:                       KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-end-line",
 839:                       KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard",
 840:                       KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line",
 841:                       KeyStroke.getKeyStroke("RIGHT"), "caret-forward",
 842:                       KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-begin-line",
 843:                       KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-begin-line",
 844:                       KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-end-line",
 845:                       KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard",
 846:                       KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-end-line",
 847:                       KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect",
 848:                       KeyStroke.getKeyStroke("ctrl A"), "select-all",
 849:                       KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward",
 850:                       KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard",
 851:                       KeyStroke.getKeyStroke("ctrl LEFT"), "caret-begin-line",
 852:                       KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous",
 853:                       KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-begin-line",
 854:                       KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard",
 855:                       KeyStroke.getKeyStroke("shift END"), "selection-end-line",
 856:                       KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-end-line",
 857:                       KeyStroke.getKeyStroke("DELETE"), "delete-next",
 858:                       KeyStroke.getKeyStroke("ENTER"), "notify-field-accept",
 859:                       KeyStroke.getKeyStroke("shift LEFT"), "selection-backward"
 860:                             }),
 861:       "PasswordField.margin", new InsetsUIResource(0, 0, 0, 0),
 862:       "PasswordField.selectionBackground", new ColorUIResource(Color.black),
 863:       "PasswordField.selectionForeground", new ColorUIResource(Color.white),
 864:       "PopupMenu.background", new ColorUIResource(light),
 865:       "PopupMenu.border", new BorderUIResource.BevelBorderUIResource(0),
 866:       "PopupMenu.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 867:       "PopupMenu.foreground", new ColorUIResource(darkShadow),
 868:       "ProgressBar.background", new ColorUIResource(Color.LIGHT_GRAY),
 869:       "ProgressBar.border",
 870:       new BorderUIResource.LineBorderUIResource(Color.GREEN, 2),
 871:       "ProgressBar.cellLength", new Integer(1),
 872:       "ProgressBar.cellSpacing", new Integer(0),
 873:       "ProgressBar.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 874:       "ProgressBar.foreground", new ColorUIResource(0, 0, 128),
 875:       "ProgressBar.selectionBackground", new ColorUIResource(0, 0, 128),
 876:       "ProgressBar.selectionForeground", new ColorUIResource(Color.LIGHT_GRAY),
 877:       "ProgressBar.repaintInterval", new Integer(50),
 878:       "ProgressBar.cycleTime", new Integer(3000),
 879:       "RadioButton.background", new ColorUIResource(light),
 880:       "RadioButton.border", new BorderUIResource.CompoundBorderUIResource(null,
 881:                                                                           null),
 882:       "RadioButton.darkShadow", new ColorUIResource(shadow),
 883:       "RadioButton.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 884:         KeyStroke.getKeyStroke("SPACE"),  "pressed",
 885:         KeyStroke.getKeyStroke("released SPACE"), "released"
 886:       }),
 887:       "RadioButton.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 888:       "RadioButton.foreground", new ColorUIResource(darkShadow),
 889:       "RadioButton.highlight", new ColorUIResource(highLight),
 890:       "RadioButton.icon",
 891:       new UIDefaults.LazyValue()
 892:       {
 893:         public Object createValue(UIDefaults def)
 894:         {
 895:           return BasicIconFactory.getRadioButtonIcon();
 896:         }
 897:       },
 898:       "RadioButton.light", new ColorUIResource(highLight),
 899:       "RadioButton.margin", new InsetsUIResource(2, 2, 2, 2),
 900:       "RadioButton.shadow", new ColorUIResource(shadow),
 901:       "RadioButton.textIconGap", new Integer(4),
 902:       "RadioButton.textShiftOffset", new Integer(0),
 903:       "RadioButtonMenuItem.acceleratorFont",
 904:       new FontUIResource("Dialog", Font.PLAIN, 12),
 905:       "RadioButtonMenuItem.acceleratorForeground",
 906:       new ColorUIResource(darkShadow),
 907:       "RadioButtonMenuItem.acceleratorSelectionForeground",
 908:       new ColorUIResource(Color.white),
 909:       "RadioButtonMenuItem.arrowIcon", BasicIconFactory.getMenuItemArrowIcon(),
 910:       "RadioButtonMenuItem.background", new ColorUIResource(light),
 911:       "RadioButtonMenuItem.border", new BasicBorders.MarginBorder(),
 912:       "RadioButtonMenuItem.borderPainted", Boolean.FALSE,
 913:       "RadioButtonMenuItem.checkIcon", BasicIconFactory.getRadioButtonMenuItemIcon(),
 914:       "RadioButtonMenuItem.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 915:       "RadioButtonMenuItem.foreground", new ColorUIResource(darkShadow),
 916:       "RadioButtonMenuItem.margin", new InsetsUIResource(2, 2, 2, 2),
 917:       "RadioButtonMenuItem.selectionBackground",
 918:       new ColorUIResource(Color.black),
 919:       "RadioButtonMenuItem.selectionForeground",
 920:       new ColorUIResource(Color.white),
 921:       "RootPane.defaultButtonWindowKeyBindings", new Object[] {
 922:         "ENTER",  "press",
 923:         "released ENTER", "release",
 924:         "ctrl ENTER",  "press",
 925:         "ctrl released ENTER", "release"
 926:       },
 927:       "ScrollBar.background", new ColorUIResource(224, 224, 224),
 928:       "ScrollBar.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 929:         "PAGE_UP", "negativeBlockIncrement",
 930:         "PAGE_DOWN", "positiveBlockIncrement",
 931:         "END",  "maxScroll",
 932:         "HOME",  "minScroll",
 933:         "LEFT",  "positiveUnitIncrement",
 934:         "KP_UP", "negativeUnitIncrement",
 935:         "KP_DOWN", "positiveUnitIncrement",
 936:         "UP",  "negativeUnitIncrement",
 937:         "RIGHT", "negativeUnitIncrement",
 938:         "KP_LEFT", "positiveUnitIncrement",
 939:         "DOWN",  "positiveUnitIncrement",
 940:         "KP_RIGHT", "negativeUnitIncrement"
 941:       }),
 942:       "ScrollBar.foreground", new ColorUIResource(light),
 943:       "ScrollBar.maximumThumbSize", new DimensionUIResource(4096, 4096),
 944:       "ScrollBar.minimumThumbSize", new DimensionUIResource(8, 8),
 945:       "ScrollBar.thumb", new ColorUIResource(light),
 946:       "ScrollBar.thumbDarkShadow", new ColorUIResource(shadow),
 947:       "ScrollBar.thumbHighlight", new ColorUIResource(highLight),
 948:       "ScrollBar.thumbShadow", new ColorUIResource(shadow),
 949:       "ScrollBar.track", new ColorUIResource(light),
 950:       "ScrollBar.trackHighlight", new ColorUIResource(shadow),
 951:       "ScrollBar.width", new Integer(16),
 952:       "ScrollPane.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
 953:         "PAGE_UP", "scrollUp",
 954:         "KP_LEFT", "unitScrollLeft",
 955:         "ctrl PAGE_DOWN","scrollRight",
 956:         "PAGE_DOWN", "scrollDown",
 957:         "KP_RIGHT", "unitScrollRight",
 958:         "LEFT",  "unitScrollLeft",
 959:         "ctrl END", "scrollEnd",
 960:         "UP",  "unitScrollUp",
 961:         "RIGHT", "unitScrollRight",
 962:         "DOWN",  "unitScrollDown",
 963:         "ctrl HOME", "scrollHome",
 964:         "ctrl PAGE_UP", "scrollLeft",
 965:         "KP_UP", "unitScrollUp",
 966:         "KP_DOWN", "unitScrollDown"
 967:       }),
 968:       "ScrollPane.background", new ColorUIResource(light),
 969:       "ScrollPane.border", new BorderUIResource.EtchedBorderUIResource(),
 970:       "ScrollPane.font", new FontUIResource("Dialog", Font.PLAIN, 12),
 971:       "ScrollPane.foreground", new ColorUIResource(darkShadow),
 972:       "Separator.background", new ColorUIResource(highLight),
 973:       "Separator.foreground", new ColorUIResource(shadow),
 974:       "Separator.highlight", new ColorUIResource(highLight),
 975:       "Separator.shadow", new ColorUIResource(shadow),
 976:       "Slider.background", new ColorUIResource(light),
 977:       "Slider.focus", new ColorUIResource(shadow),
 978:       "Slider.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
 979:             "ctrl PAGE_DOWN", "negativeBlockIncrement",
 980:             "PAGE_DOWN", "negativeBlockIncrement",
 981:             "PAGE_UP", "positiveBlockIncrement",
 982:             "ctrl PAGE_UP", "positiveBlockIncrement",
 983:             "KP_RIGHT", "positiveUnitIncrement",
 984:             "DOWN", "negativeUnitIncrement",
 985:             "KP_LEFT", "negativeUnitIncrement",
 986:             "RIGHT", "positiveUnitIncrement",
 987:             "KP_DOWN", "negativeUnitIncrement",
 988:             "UP", "positiveUnitIncrement",
 989:             "KP_UP", "positiveUnitIncrement",
 990:             "LEFT", "negativeUnitIncrement",
 991:             "HOME", "minScroll",
 992:             "END", "maxScroll"
 993:       }),
 994:       "Slider.focusInsets", new InsetsUIResource(2, 2, 2, 2),
 995:       "Slider.foreground", new ColorUIResource(light),
 996:       "Slider.highlight", new ColorUIResource(highLight),
 997:       "Slider.shadow", new ColorUIResource(shadow),
 998:       "Slider.thumbHeight", new Integer(20),
 999:       "Slider.thumbWidth", new Integer(11),
1000:       "Slider.tickHeight", new Integer(12),
1001:       "Spinner.background", new ColorUIResource(light),
1002:       "Spinner.foreground", new ColorUIResource(light),
1003:       "Spinner.arrowButtonSize", new DimensionUIResource(16, 5),
1004:       "Spinner.editorBorderPainted", Boolean.FALSE,
1005:       "Spinner.font", new FontUIResource("MonoSpaced", Font.PLAIN, 12),
1006:       "SplitPane.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
1007:         "F6",  "toggleFocus",
1008:         "F8",  "startResize",
1009:         "END",  "selectMax",
1010:         "HOME",  "selectMin",
1011:         "LEFT",  "negativeIncremnent",
1012:         "KP_UP", "negativeIncrement",
1013:         "KP_DOWN", "positiveIncrement",
1014:         "UP",  "negativeIncrement",
1015:         "RIGHT", "positiveIncrement",
1016:         "KP_LEFT", "negativeIncrement",
1017:         "DOWN",  "positiveIncrement",
1018:         "KP_RIGHT", "positiveIncrement"
1019:       }),
1020:       "SplitPane.background", new ColorUIResource(light),
1021:       "SplitPane.border", new BasicBorders.SplitPaneBorder(null, null),
1022:       "SplitPane.darkShadow", new ColorUIResource(shadow),
1023:       "SplitPane.dividerSize", new Integer(7),
1024:       "SplitPane.highlight", new ColorUIResource(highLight),
1025:       "SplitPane.shadow", new ColorUIResource(shadow),
1026:       "TabbedPane.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
1027:         "ctrl PAGE_DOWN","navigatePageDown",
1028:         "ctrl PAGE_UP", "navigatePageUp",
1029:         "ctrl UP", "requestFocus",
1030:         "ctrl KP_UP", "requestFocus"
1031:       }),
1032:       "TabbedPane.background", new ColorUIResource(light),
1033:       "TabbedPane.contentBorderInsets", new InsetsUIResource(2, 2, 3, 3),
1034:       "TabbedPane.darkShadow", new ColorUIResource(shadow),
1035:       "TabbedPane.focus", new ColorUIResource(darkShadow),
1036:       "TabbedPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
1037:             KeyStroke.getKeyStroke("ctrl DOWN"), "requestFocusForVisibleComponent",
1038:             KeyStroke.getKeyStroke("KP_UP"), "navigateUp",
1039:             KeyStroke.getKeyStroke("LEFT"), "navigateLeft",
1040:             KeyStroke.getKeyStroke("ctrl KP_DOWN"), "requestFocusForVisibleComponent",
1041:             KeyStroke.getKeyStroke("UP"), "navigateUp",
1042:             KeyStroke.getKeyStroke("KP_DOWN"), "navigateDown",
1043:             KeyStroke.getKeyStroke("KP_LEFT"), "navigateLeft",
1044:             KeyStroke.getKeyStroke("RIGHT"), "navigateRight",
1045:             KeyStroke.getKeyStroke("KP_RIGHT"), "navigateRight",
1046:             KeyStroke.getKeyStroke("DOWN"), "navigateDown"
1047:       }),
1048:       "TabbedPane.font", new FontUIResource("Dialog", Font.PLAIN, 12),
1049:       "TabbedPane.foreground", new ColorUIResource(darkShadow),
1050:       "TabbedPane.highlight", new ColorUIResource(highLight),
1051:       "TabbedPane.light", new ColorUIResource(highLight),
1052:       "TabbedPane.selectedTabPadInsets", new InsetsUIResource(2, 2, 2, 1),
1053:       "TabbedPane.shadow", new ColorUIResource(shadow),
1054:       "TabbedPane.tabbedPaneContentBorderInsets", new InsetsUIResource(3, 2, 1, 2),
1055:       "TabbedPane.tabbedPaneTabPadInsets", new InsetsUIResource(1, 1, 1, 1),
1056:       "TabbedPane.tabAreaInsets", new InsetsUIResource(3, 2, 0, 2),
1057:       "TabbedPane.tabInsets", new InsetsUIResource(0, 4, 1, 4),
1058:       "TabbedPane.tabRunOverlay", new Integer(2),
1059:       "TabbedPane.textIconGap", new Integer(4),
1060:       "Table.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
1061:         "ctrl DOWN", "selectNextRowChangeLead",
1062:         "ctrl RIGHT", "selectNextColumnChangeLead",
1063:         "ctrl UP", "selectPreviousRowChangeLead",
1064:         "ctrl LEFT", "selectPreviousColumnChangeLead",
1065:         "CUT", "cut",
1066:         "SPACE", "addToSelection",
1067:         "ctrl SPACE", "toggleAndAnchor",
1068:         "shift SPACE", "extendTo",
1069:         "shift ctrl SPACE", "moveSelectionTo",
1070:         "ctrl X", "cut",
1071:         "ctrl C", "copy",
1072:         "ctrl KP_RIGHT", "selectNextColumnChangeLead",
1073:         "ctrl KP_LEFT", "selectPreviousColumnChangeLead",
1074:         "ctrl V", "paste",
1075:         "ctrl KP_DOWN", "selectNextRowChangeLead",
1076:         "COPY", "copy",
1077:         "ctrl KP_UP", "selectPreviousRowChangeLead",
1078:         "PASTE", "paste",
1079:         "shift PAGE_DOWN","scrollDownExtendSelection",
1080:         "PAGE_DOWN", "scrollDownChangeSelection",
1081:         "END",  "selectLastColumn",
1082:         "shift END", "selectLastColumnExtendSelection",
1083:         "HOME",  "selectFirstColumn",
1084:         "ctrl END", "selectLastRow",
1085:         "ctrl shift END","selectLastRowExtendSelection",
1086:         "LEFT",  "selectPreviousColumn",
1087:         "shift HOME", "selectFirstColumnExtendSelection",
1088:         "UP",  "selectPreviousRow",
1089:         "RIGHT", "selectNextColumn",
1090:         "ctrl HOME", "selectFirstRow",
1091:         "shift LEFT", "selectPreviousColumnExtendSelection",
1092:         "DOWN",  "selectNextRow",
1093:         "ctrl shift HOME","selectFirstRowExtendSelection",
1094:         "shift UP", "selectPreviousRowExtendSelection",
1095:         "F2",  "startEditing",
1096:         "shift RIGHT", "selectNextColumnExtendSelection",
1097:         "TAB",  "selectNextColumnCell",
1098:         "shift DOWN", "selectNextRowExtendSelection",
1099:         "ENTER", "selectNextRowCell",
1100:         "KP_UP", "selectPreviousRow",
1101:         "KP_DOWN", "selectNextRow",
1102:         "KP_LEFT", "selectPreviousColumn",
1103:         "KP_RIGHT", "selectNextColumn",
1104:         "shift TAB", "selectPreviousColumnCell",
1105:         "ctrl A", "selectAll",
1106:         "shift ENTER", "selectPreviousRowCell",
1107:         "shift KP_DOWN", "selectNextRowExtendSelection",
1108:         "shift KP_LEFT", "selectPreviousColumnExtendSelection",
1109:         "ESCAPE",  "cancel",
1110:         "ctrl shift PAGE_UP", "scrollLeftExtendSelection",
1111:         "shift KP_RIGHT", "selectNextColumnExtendSelection",
1112:         "ctrl PAGE_UP",  "scrollLeftChangeSelection",
1113:         "shift PAGE_UP", "scrollUpExtendSelection",
1114:         "ctrl shift PAGE_DOWN", "scrollRightExtendSelection",
1115:         "ctrl PAGE_DOWN", "scrollRightChangeSelection",
1116:         "PAGE_UP",   "scrollUpChangeSelection",
1117:         "ctrl shift LEFT", "selectPreviousColumnExtendSelection",
1118:         "shift KP_UP", "selectPreviousRowExtendSelection",
1119:         "ctrl shift UP", "selectPreviousRowExtendSelection",
1120:         "ctrl shift RIGHT", "selectNextColumnExtendSelection",
1121:         "ctrl shift KP_RIGHT", "selectNextColumnExtendSelection",
1122:         "ctrl shift DOWN", "selectNextRowExtendSelection",
1123:         "ctrl BACK_SLASH", "clearSelection",
1124:         "ctrl shift KP_UP", "selectPreviousRowExtendSelection",
1125:         "ctrl shift KP_LEFT", "selectPreviousColumnExtendSelection",
1126:         "ctrl SLASH", "selectAll",
1127:         "ctrl shift KP_DOWN", "selectNextRowExtendSelection",
1128:       }),
1129:       "Table.background", new ColorUIResource(new ColorUIResource(255, 255, 255)),
1130:       "Table.focusCellBackground", new ColorUIResource(new ColorUIResource(255, 255, 255)),
1131:       "Table.focusCellForeground", new ColorUIResource(new ColorUIResource(0, 0, 0)),
1132:       "Table.focusCellHighlightBorder",
1133:       new BorderUIResource.LineBorderUIResource(
1134:                                              new ColorUIResource(255, 255, 0)),
1135:       "Table.font", new FontUIResource("Dialog", Font.PLAIN, 12),
1136:       "Table.foreground", new ColorUIResource(new ColorUIResource(0, 0, 0)),
1137:       "Table.gridColor", new ColorUIResource(new ColorUIResource(128, 128, 128)),
1138:       "Table.scrollPaneBorder", new BorderUIResource.BevelBorderUIResource(0),
1139:       "Table.selectionBackground", new ColorUIResource(new ColorUIResource(0, 0, 128)),
1140:       "Table.selectionForeground", new ColorUIResource(new ColorUIResource(255, 255, 255)),
1141:       "TableHeader.background", new ColorUIResource(new ColorUIResource(192, 192, 192)),
1142:       "TableHeader.font", new FontUIResource("Dialog", Font.PLAIN, 12),
1143:       "TableHeader.foreground", new ColorUIResource(new ColorUIResource(0, 0, 0)),
1144: 
1145:       "TextArea.background", new ColorUIResource(light),
1146:       "TextArea.border", new BorderUIResource(BasicBorders.getMarginBorder()),
1147:       "TextArea.caretBlinkRate", new Integer(500),
1148:       "TextArea.caretForeground", new ColorUIResource(Color.black),
1149:       "TextArea.font", new FontUIResource("MonoSpaced", Font.PLAIN, 12),
1150:       "TextArea.foreground", new ColorUIResource(Color.black),
1151:       "TextArea.inactiveForeground", new ColorUIResource(Color.gray),
1152:       "TextArea.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
1153:          KeyStroke.getKeyStroke("shift UP"), "selection-up",
1154:          KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word",
1155:          KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word",
1156:          KeyStroke.getKeyStroke("shift KP_UP"), "selection-up",
1157:          KeyStroke.getKeyStroke("DOWN"), "caret-down",
1158:          KeyStroke.getKeyStroke("shift ctrl T"), "previous-link-action",
1159:          KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word",
1160:          KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard",
1161:          KeyStroke.getKeyStroke("END"), "caret-end-line",
1162:          KeyStroke.getKeyStroke("shift PAGE_UP"), "selection-page-up",
1163:          KeyStroke.getKeyStroke("KP_UP"), "caret-up",
1164:          KeyStroke.getKeyStroke("DELETE"), "delete-next",
1165:          KeyStroke.getKeyStroke("ctrl HOME"), "caret-begin",
1166:          KeyStroke.getKeyStroke("shift LEFT"), "selection-backward",
1167:          KeyStroke.getKeyStroke("ctrl END"), "caret-end",
1168:          KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous",
1169:          KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word",
1170:          KeyStroke.getKeyStroke("LEFT"), "caret-backward",
1171:          KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward",
1172:          KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward",
1173:          KeyStroke.getKeyStroke("ctrl SPACE"), "activate-link-action",
1174:          KeyStroke.getKeyStroke("ctrl H"), "delete-previous",
1175:          KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect",
1176:          KeyStroke.getKeyStroke("ENTER"), "insert-break",
1177:          KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line",
1178:          KeyStroke.getKeyStroke("RIGHT"), "caret-forward",
1179:          KeyStroke.getKeyStroke("shift ctrl PAGE_UP"), "selection-page-left",
1180:          KeyStroke.getKeyStroke("shift DOWN"), "selection-down",
1181:          KeyStroke.getKeyStroke("PAGE_DOWN"), "page-down",
1182:          KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward",
1183:          KeyStroke.getKeyStroke("shift ctrl O"), "toggle-componentOrientation",
1184:          KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard",
1185:          KeyStroke.getKeyStroke("shift ctrl PAGE_DOWN"), "selection-page-right",
1186:          KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard",
1187:          KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word",
1188:          KeyStroke.getKeyStroke("shift END"), "selection-end-line",
1189:          KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word",
1190:          KeyStroke.getKeyStroke("HOME"), "caret-begin-line",
1191:          KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard",
1192:          KeyStroke.getKeyStroke("KP_DOWN"), "caret-down",
1193:          KeyStroke.getKeyStroke("ctrl A"), "select-all",
1194:          KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward",
1195:          KeyStroke.getKeyStroke("shift ctrl END"), "selection-end",
1196:          KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard",
1197:          KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word",
1198:          KeyStroke.getKeyStroke("ctrl T"), "next-link-action",
1199:          KeyStroke.getKeyStroke("shift KP_DOWN"), "selection-down",
1200:          KeyStroke.getKeyStroke("TAB"), "insert-tab",
1201:          KeyStroke.getKeyStroke("UP"), "caret-up",
1202:          KeyStroke.getKeyStroke("shift ctrl HOME"), "selection-begin",
1203:          KeyStroke.getKeyStroke("shift PAGE_DOWN"), "selection-page-down",
1204:          KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward",
1205:          KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word",
1206:          KeyStroke.getKeyStroke("PAGE_UP"), "page-up",
1207:          KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard"
1208:       }),
1209:       "TextArea.margin", new InsetsUIResource(0, 0, 0, 0),
1210:       "TextArea.selectionBackground", new ColorUIResource(Color.black),
1211:       "TextArea.selectionForeground", new ColorUIResource(Color.white),
1212:       "TextField.background", new ColorUIResource(light),
1213:       "TextField.border", new BasicBorders.FieldBorder(null, null, null, null),
1214:       "TextField.caretBlinkRate", new Integer(500),
1215:       "TextField.caretForeground", new ColorUIResource(Color.black),
1216:       "TextField.darkShadow", new ColorUIResource(shadow),
1217:       "TextField.font", new FontUIResource("SansSerif", Font.PLAIN, 12),
1218:       "TextField.foreground", new ColorUIResource(Color.black),
1219:       "TextField.highlight", new ColorUIResource(highLight),
1220:       "TextField.inactiveBackground", new ColorUIResource(Color.LIGHT_GRAY),
1221:       "TextField.inactiveForeground", new ColorUIResource(Color.GRAY),
1222:       "TextField.light", new ColorUIResource(highLight),
1223:       "TextField.highlight", new ColorUIResource(light),
1224:       "TextField.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
1225:          KeyStroke.getKeyStroke("ENTER"), "notify-field-accept",
1226:          KeyStroke.getKeyStroke("LEFT"), "caret-backward",
1227:          KeyStroke.getKeyStroke("RIGHT"), "caret-forward",
1228:          KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous",
1229:          KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard",
1230:          KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard",
1231:          KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard",
1232:          KeyStroke.getKeyStroke("shift LEFT"), "selection-backward",
1233:          KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward",
1234:          KeyStroke.getKeyStroke("HOME"), "caret-begin-line",
1235:          KeyStroke.getKeyStroke("END"), "caret-end-line",
1236:          KeyStroke.getKeyStroke("DELETE"), "delete-next",
1237:          KeyStroke.getKeyStroke("shift ctrl O"), "toggle-componentOrientation",
1238:          KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward",
1239:          KeyStroke.getKeyStroke("ctrl H"), "delete-previous",
1240:          KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward",
1241:          KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward",
1242:          KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word",
1243:          KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard",
1244:          KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line",
1245:          KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word",
1246:          KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word",
1247:          KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word",
1248:          KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard",
1249:          KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word",
1250:          KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect",
1251:          KeyStroke.getKeyStroke("ctrl A"), "select-all",
1252:          KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward",
1253:          KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard",
1254:          KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word",
1255:          KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word",
1256:          KeyStroke.getKeyStroke("shift END"), "selection-end-line",
1257:          KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word"
1258:       }),
1259:       "TextField.margin", new InsetsUIResource(0, 0, 0, 0),
1260:       "TextField.selectionBackground", new ColorUIResource(Color.black),
1261:       "TextField.selectionForeground", new ColorUIResource(Color.white),
1262:       "TextPane.background", new ColorUIResource(Color.white),
1263:       "TextPane.border", BasicBorders.getMarginBorder(),
1264:       "TextPane.caretBlinkRate", new Integer(500),
1265:       "TextPane.caretForeground", new ColorUIResource(Color.black),
1266:       "TextPane.font", new FontUIResource("Serif", Font.PLAIN, 12),
1267:       "TextPane.foreground", new ColorUIResource(Color.black),
1268:       "TextPane.inactiveForeground", new ColorUIResource(Color.gray),
1269:       "TextPane.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
1270:           KeyStroke.getKeyStroke("shift UP"), "selection-up", 
1271:           KeyStroke.getKeyStroke("ctrl RIGHT"), "caret-next-word", 
1272:           KeyStroke.getKeyStroke("shift ctrl LEFT"), "selection-previous-word", 
1273:           KeyStroke.getKeyStroke("shift KP_UP"), "selection-up", 
1274:           KeyStroke.getKeyStroke("DOWN"), "caret-down", 
1275:           KeyStroke.getKeyStroke("shift ctrl T"), "previous-link-action", 
1276:           KeyStroke.getKeyStroke("ctrl LEFT"), "caret-previous-word", 
1277:           KeyStroke.getKeyStroke("CUT"), "cut-to-clipboard", 
1278:           KeyStroke.getKeyStroke("END"), "caret-end-line", 
1279:           KeyStroke.getKeyStroke("shift PAGE_UP"), "selection-page-up", 
1280:           KeyStroke.getKeyStroke("KP_UP"), "caret-up", 
1281:           KeyStroke.getKeyStroke("DELETE"), "delete-next", 
1282:           KeyStroke.getKeyStroke("ctrl HOME"), "caret-begin", 
1283:           KeyStroke.getKeyStroke("shift LEFT"), "selection-backward", 
1284:           KeyStroke.getKeyStroke("ctrl END"), "caret-end", 
1285:           KeyStroke.getKeyStroke("BACK_SPACE"), "delete-previous", 
1286:           KeyStroke.getKeyStroke("shift ctrl RIGHT"), "selection-next-word", 
1287:           KeyStroke.getKeyStroke("LEFT"), "caret-backward", 
1288:           KeyStroke.getKeyStroke("KP_LEFT"), "caret-backward", 
1289:           KeyStroke.getKeyStroke("shift KP_RIGHT"), "selection-forward", 
1290:           KeyStroke.getKeyStroke("ctrl SPACE"), "activate-link-action", 
1291:           KeyStroke.getKeyStroke("ctrl H"), "delete-previous", 
1292:           KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "unselect", 
1293:           KeyStroke.getKeyStroke("ENTER"), "insert-break", 
1294:           KeyStroke.getKeyStroke("shift HOME"), "selection-begin-line", 
1295:           KeyStroke.getKeyStroke("RIGHT"), "caret-forward", 
1296:           KeyStroke.getKeyStroke("shift ctrl PAGE_UP"), "selection-page-left", 
1297:           KeyStroke.getKeyStroke("shift DOWN"), "selection-down", 
1298:           KeyStroke.getKeyStroke("PAGE_DOWN"), "page-down", 
1299:           KeyStroke.getKeyStroke("shift KP_LEFT"), "selection-backward", 
1300:           KeyStroke.getKeyStroke("shift ctrl O"), "toggle-componentOrientation", 
1301:           KeyStroke.getKeyStroke("ctrl X"), "cut-to-clipboard", 
1302:           KeyStroke.getKeyStroke("shift ctrl PAGE_DOWN"), "selection-page-right", 
1303:           KeyStroke.getKeyStroke("ctrl C"), "copy-to-clipboard", 
1304:           KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "caret-next-word", 
1305:           KeyStroke.getKeyStroke("shift END"), "selection-end-line", 
1306:           KeyStroke.getKeyStroke("ctrl KP_LEFT"), "caret-previous-word", 
1307:           KeyStroke.getKeyStroke("HOME"), "caret-begin-line", 
1308:           KeyStroke.getKeyStroke("ctrl V"), "paste-from-clipboard", 
1309:           KeyStroke.getKeyStroke("KP_DOWN"), "caret-down", 
1310:           KeyStroke.getKeyStroke("ctrl A"), "select-all", 
1311:           KeyStroke.getKeyStroke("shift RIGHT"), "selection-forward", 
1312:           KeyStroke.getKeyStroke("shift ctrl END"), "selection-end", 
1313:           KeyStroke.getKeyStroke("COPY"), "copy-to-clipboard", 
1314:           KeyStroke.getKeyStroke("shift ctrl KP_LEFT"), "selection-previous-word", 
1315:           KeyStroke.getKeyStroke("ctrl T"), "next-link-action", 
1316:           KeyStroke.getKeyStroke("shift KP_DOWN"), "selection-down", 
1317:           KeyStroke.getKeyStroke("TAB"), "insert-tab", 
1318:           KeyStroke.getKeyStroke("UP"), "caret-up", 
1319:           KeyStroke.getKeyStroke("shift ctrl HOME"), "selection-begin", 
1320:           KeyStroke.getKeyStroke("shift PAGE_DOWN"), "selection-page-down", 
1321:           KeyStroke.getKeyStroke("KP_RIGHT"), "caret-forward", 
1322:           KeyStroke.getKeyStroke("shift ctrl KP_RIGHT"), "selection-next-word", 
1323:           KeyStroke.getKeyStroke("PAGE_UP"), "page-up", 
1324:           KeyStroke.getKeyStroke("PASTE"), "paste-from-clipboard"
1325:       }),
1326:       "TextPane.margin", new InsetsUIResource(3, 3, 3, 3),
1327:       "TextPane.selectionBackground", new ColorUIResource(Color.black),
1328:       "TextPane.selectionForeground", new ColorUIResource(Color.white),
1329:       "TitledBorder.border", new BorderUIResource.EtchedBorderUIResource(),
1330:       "TitledBorder.font", new FontUIResource("Dialog", Font.PLAIN, 12),
1331:       "TitledBorder.titleColor", new ColorUIResource(darkShadow),
1332:       "ToggleButton.background", new ColorUIResource(light),
1333:       "ToggleButton.border",
1334:       new BorderUIResource.CompoundBorderUIResource(null, null),
1335:       "ToggleButton.darkShadow", new ColorUIResource(shadow),
1336:       "ToggleButton.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
1337:           KeyStroke.getKeyStroke("SPACE"),  "pressed",
1338:           KeyStroke.getKeyStroke("released SPACE"), "released"
1339:       }),
1340:       "ToggleButton.font", new FontUIResource("Dialog", Font.PLAIN, 12),
1341:       "ToggleButton.foreground", new ColorUIResource(darkShadow),
1342:       "ToggleButton.highlight", new ColorUIResource(highLight),
1343:       "ToggleButton.light", new ColorUIResource(light),
1344:       "ToggleButton.margin", new InsetsUIResource(2, 14, 2, 14),
1345:       "ToggleButton.shadow", new ColorUIResource(shadow),
1346:       "ToggleButton.textIconGap", new Integer(4),
1347:       "ToggleButton.textShiftOffset", new Integer(0),
1348:       "ToolBar.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
1349:         "UP",  "navigateUp",
1350:         "KP_UP", "navigateUp",
1351:         "DOWN",  "navigateDown",
1352:         "KP_DOWN", "navigateDown",
1353:         "LEFT",  "navigateLeft",
1354:         "KP_LEFT", "navigateLeft",
1355:         "RIGHT", "navigateRight",
1356:         "KP_RIGHT", "navigateRight"
1357:       }),
1358:       "ToolBar.background", new ColorUIResource(light),
1359:       "ToolBar.border", new BorderUIResource.EtchedBorderUIResource(),
1360:       "ToolBar.darkShadow", new ColorUIResource(shadow),
1361:       "ToolBar.dockingBackground", new ColorUIResource(light),
1362:       "ToolBar.dockingForeground", new ColorUIResource(Color.red),
1363:       "ToolBar.floatingBackground", new ColorUIResource(light),
1364:       "ToolBar.floatingForeground", new ColorUIResource(Color.darkGray),
1365:       "ToolBar.font", new FontUIResource("Dialog", Font.PLAIN, 12),
1366:       "ToolBar.foreground", new ColorUIResource(darkShadow),
1367:       "ToolBar.highlight", new ColorUIResource(highLight),
1368:       "ToolBar.light", new ColorUIResource(highLight),
1369:       "ToolBar.separatorSize", new DimensionUIResource(10, 10),
1370:       "ToolBar.shadow", new ColorUIResource(shadow),
1371:       "ToolTip.background", new ColorUIResource(light),
1372:       "ToolTip.border", new BorderUIResource.LineBorderUIResource(Color.lightGray),
1373:       "ToolTip.font", new FontUIResource("SansSerif", Font.PLAIN, 12),
1374:       "ToolTip.foreground", new ColorUIResource(darkShadow),
1375:       "Tree.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] {
1376:         "ESCAPE", "cancel"
1377:       }),
1378:       "Tree.background", new ColorUIResource(new Color(255, 255, 255)),
1379:       "Tree.changeSelectionWithFocus", Boolean.TRUE,
1380:       "Tree.drawsFocusBorderAroundIcon", Boolean.FALSE,
1381:       "Tree.editorBorder", new BorderUIResource.LineBorderUIResource(Color.lightGray),
1382:       "Tree.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
1383:               KeyStroke.getKeyStroke("ctrl DOWN"), "selectNextChangeLead",
1384:               KeyStroke.getKeyStroke("shift UP"), "selectPreviousExtendSelection",
1385:               KeyStroke.getKeyStroke("ctrl RIGHT"), "scrollRight",
1386:               KeyStroke.getKeyStroke("shift KP_UP"), "selectPreviousExtendSelection",
1387:               KeyStroke.getKeyStroke("DOWN"), "selectNext",
1388:               KeyStroke.getKeyStroke("ctrl UP"), "selectPreviousChangeLead",
1389:               KeyStroke.getKeyStroke("ctrl LEFT"), "scrollLeft",
1390:               KeyStroke.getKeyStroke("CUT"), "cut",
1391:               KeyStroke.getKeyStroke("END"), "selectLast",
1392:               KeyStroke.getKeyStroke("shift PAGE_UP"), "scrollUpExtendSelection",
1393:               KeyStroke.getKeyStroke("KP_UP"), "selectPrevious",
1394:               KeyStroke.getKeyStroke("shift ctrl UP"), "selectPreviousExtendSelection",
1395:               KeyStroke.getKeyStroke("ctrl HOME"), "selectFirstChangeLead",
1396:               KeyStroke.getKeyStroke("ctrl END"), "selectLastChangeLead",
1397:               KeyStroke.getKeyStroke("ctrl PAGE_DOWN"), "scrollDownChangeLead",
1398:               KeyStroke.getKeyStroke("LEFT"), "selectParent",
1399:               KeyStroke.getKeyStroke("ctrl PAGE_UP"), "scrollUpChangeLead",
1400:               KeyStroke.getKeyStroke("KP_LEFT"), "selectParent",
1401:               KeyStroke.getKeyStroke("SPACE"), "addToSelection",
1402:               KeyStroke.getKeyStroke("ctrl SPACE"), "toggleAndAnchor",
1403:               KeyStroke.getKeyStroke("shift SPACE"), "extendTo",
1404:               KeyStroke.getKeyStroke("shift ctrl SPACE"), "moveSelectionTo",
1405:               KeyStroke.getKeyStroke("ADD"), "expand",
1406:               KeyStroke.getKeyStroke("ctrl BACK_SLASH"), "clearSelection",
1407:               KeyStroke.getKeyStroke("shift ctrl DOWN"), "selectNextExtendSelection",
1408:               KeyStroke.getKeyStroke("shift HOME"), "selectFirstExtendSelection",
1409:               KeyStroke.getKeyStroke("RIGHT"), "selectChild",
1410:               KeyStroke.getKeyStroke("shift ctrl PAGE_UP"), "scrollUpExtendSelection",
1411:               KeyStroke.getKeyStroke("shift DOWN"), "selectNextExtendSelection",
1412:               KeyStroke.getKeyStroke("PAGE_DOWN"), "scrollDownChangeSelection",
1413:               KeyStroke.getKeyStroke("shift ctrl KP_UP"), "selectPreviousExtendSelection",
1414:               KeyStroke.getKeyStroke("SUBTRACT"), "collapse",
1415:               KeyStroke.getKeyStroke("ctrl X"), "cut",
1416:               KeyStroke.getKeyStroke("shift ctrl PAGE_DOWN"), "scrollDownExtendSelection",
1417:               KeyStroke.getKeyStroke("ctrl SLASH"), "selectAll",
1418:               KeyStroke.getKeyStroke("ctrl C"), "copy",
1419:               KeyStroke.getKeyStroke("ctrl KP_RIGHT"), "scrollRight",
1420:               KeyStroke.getKeyStroke("shift END"), "selectLastExtendSelection",
1421:               KeyStroke.getKeyStroke("shift ctrl KP_DOWN"), "selectNextExtendSelection",
1422:               KeyStroke.getKeyStroke("ctrl KP_LEFT"), "scrollLeft",
1423:               KeyStroke.getKeyStroke("HOME"), "selectFirst",
1424:               KeyStroke.getKeyStroke("ctrl V"), "paste",
1425:               KeyStroke.getKeyStroke("KP_DOWN"), "selectNext",
1426:               KeyStroke.getKeyStroke("ctrl A"), "selectAll",
1427:               KeyStroke.getKeyStroke("ctrl KP_DOWN"), "selectNextChangeLead",
1428:               KeyStroke.getKeyStroke("shift ctrl END"), "selectLastExtendSelection",
1429:               KeyStroke.getKeyStroke("COPY"), "copy",
1430:               KeyStroke.getKeyStroke("ctrl KP_UP"), "selectPreviousChangeLead",
1431:               KeyStroke.getKeyStroke("shift KP_DOWN"), "selectNextExtendSelection",
1432:               KeyStroke.getKeyStroke("UP"), "selectPrevious",
1433:               KeyStroke.getKeyStroke("shift ctrl HOME"), "selectFirstExtendSelection",
1434:               KeyStroke.getKeyStroke("shift PAGE_DOWN"), "scrollDownExtendSelection",
1435:               KeyStroke.getKeyStroke("KP_RIGHT"), "selectChild",
1436:               KeyStroke.getKeyStroke("F2"), "startEditing",
1437:               KeyStroke.getKeyStroke("PAGE_UP"), "scrollUpChangeSelection",
1438:               KeyStroke.getKeyStroke("PASTE"), "paste"
1439:       }),
1440:       "Tree.font", new FontUIResource("Dialog", Font.PLAIN, 12),
1441:       "Tree.foreground", new ColorUIResource(Color.black),
1442:       "Tree.hash", new ColorUIResource(new Color(128, 128, 128)),
1443:       "Tree.leftChildIndent", new Integer(7),
1444:       "Tree.rightChildIndent", new Integer(13),
1445:       "Tree.rowHeight", new Integer(16),
1446:       "Tree.scrollsOnExpand", Boolean.TRUE,
1447:       "Tree.selectionBackground", new ColorUIResource(Color.black),
1448:       "Tree.nonSelectionBackground", new ColorUIResource(new Color(255, 255, 255)),
1449:       "Tree.selectionBorderColor", new ColorUIResource(Color.black),
1450:       "Tree.selectionBorder", new BorderUIResource.LineBorderUIResource(Color.black),
1451:       "Tree.selectionForeground", new ColorUIResource(new Color(255, 255, 255)),
1452:       "Viewport.background", new ColorUIResource(light),
1453:       "Viewport.foreground", new ColorUIResource(Color.black),
1454:       "Viewport.font", new FontUIResource("Dialog", Font.PLAIN, 12)
1455:     };
1456:     defaults.putDefaults(uiDefaults);
1457:   }
1458: 
1459:   /**
1460:    * Returns the <code>ActionMap</code> that stores all the actions that are
1461:    * responsibly for rendering auditory cues.
1462:    *
1463:    * @return the action map that stores all the actions that are
1464:    *         responsibly for rendering auditory cues
1465:    *
1466:    * @see #createAudioAction
1467:    * @see #playSound
1468:    *
1469:    * @since 1.4
1470:    */
1471:   protected ActionMap getAudioActionMap()
1472:   {
1473:     if (audioActionMap != null)
1474:       audioActionMap = new ActionMap();
1475:     return audioActionMap;
1476:   }
1477: 
1478:   /**
1479:    * Creates an <code>Action</code> that can play an auditory cue specified by
1480:    * the key. The UIDefaults value for the key is normally a String that points
1481:    * to an audio file relative to the current package.
1482:    *
1483:    * @param key a UIDefaults key that specifies the sound
1484:    *
1485:    * @return an action that can play the sound
1486:    *
1487:    * @see #playSound
1488:    *
1489:    * @since 1.4
1490:    */
1491:   protected Action createAudioAction(Object key)
1492:   {
1493:     return new AudioAction(key);
1494:   }
1495: 
1496:   /**
1497:    * Plays the sound of the action if it is listed in
1498:    * <code>AuditoryCues.playList</code>.
1499:    *
1500:    * @param audioAction the audio action to play
1501:    *
1502:    * @since 1.4
1503:    */
1504:   protected void playSound(Action audioAction)
1505:   {
1506:     if (audioAction instanceof AudioAction)
1507:       {
1508:         Object[] playList = (Object[]) UIManager.get("AuditoryCues.playList");
1509:         for (int i = 0; i < playList.length; ++i)
1510:           {
1511:             if (playList[i].equals(((AudioAction) audioAction).key))
1512:               {
1513:                 ActionEvent ev = new ActionEvent(this,
1514:                                                  ActionEvent.ACTION_PERFORMED,
1515:                                                  (String) playList[i]);
1516:                 audioAction.actionPerformed(ev);
1517:                 break;
1518:               }
1519:           }
1520:       }
1521:   }
1522: 
1523: }