6954231: SynthTextPaneUI.installUI() doesn't set component to opaque even if prop was not set by client progr
authorpeterz
Fri, 28 May 2010 13:32:40 +0400 (2010-05-28)
changeset 5594 3db39773da2e
parent 5593 b89c8108f831
child 5595 27cbc0c6ba34
6954231: SynthTextPaneUI.installUI() doesn't set component to opaque even if prop was not set by client progr Reviewed-by: alexp
jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java
jdk/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java	Fri May 28 13:31:38 2010 +0400
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java	Fri May 28 13:32:40 2010 +0400
@@ -779,20 +779,16 @@
         if (c instanceof JTextComponent) {
             editor = (JTextComponent) c;
 
+            // common case is background painted... this can
+            // easily be changed by subclasses or from outside
+            // of the component.
+            LookAndFeel.installProperty(editor, "opaque", Boolean.TRUE);
+            LookAndFeel.installProperty(editor, "autoscrolls", Boolean.TRUE);
+
             // install defaults
             installDefaults();
             installDefaults2();
 
-            // This is a workaround as these should not override what synth has
-            // set them to
-            if (! (this instanceof SynthUI)) {
-                // common case is background painted... this can
-                // easily be changed by subclasses or from outside
-                // of the component.
-                LookAndFeel.installProperty(editor, "opaque", Boolean.TRUE);
-                LookAndFeel.installProperty(editor, "autoscrolls", Boolean.TRUE);
-            }
-
             // attach to the model and editor
             editor.addPropertyChangeListener(updateHandler);
             Document doc = editor.getDocument();
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java	Fri May 28 13:31:38 2010 +0400
+++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java	Fri May 28 13:32:40 2010 +0400
@@ -72,7 +72,28 @@
     }
 
     /**
-     * @inheritDoc
+     * Installs the UI for a component.  This does the following
+     * things.
+     * <ol>
+     * <li>
+     * Sets opaqueness of the associated component according to its style,
+     * if the opaque property has not already been set by the client program.
+     * <li>
+     * Installs the default caret and highlighter into the
+     * associated component. These properties are only set if their
+     * current value is either {@code null} or an instance of
+     * {@link UIResource}.
+     * <li>
+     * Attaches to the editor and model.  If there is no
+     * model, a default one is created.
+     * <li>
+     * Creates the view factory and the view hierarchy used
+     * to represent the model.
+     * </ol>
+     *
+     * @param c the editor component
+     * @see BasicTextUI#installUI
+     * @see ComponentUI#installUI
      */
     @Override
     public void installUI(JComponent c) {