classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] FYI: fix for javax.swing.plaf.basic.BasicScrollBarUI


From: Roman Kennke
Subject: [cp-patches] FYI: fix for javax.swing.plaf.basic.BasicScrollBarUI
Date: Mon, 18 Apr 2005 11:52:57 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204

Hi,

I commit the attached patch.

2005-04-18  Roman Kennke  <address@hidden>

       * javax/swing/plaf/basic/BasicScrollBarUI.java
       (installUI): Install listeners after everything all, otherwise
       we get strange NPEs in some situations, especially with
       custom L&Fs.
       (createIncreaseButton): Orientation is expected to be
       SwingConstants.NORTH, ..SOUTH, ..WEST or ..EAST and not
       HORIZONTAL or VERTICAL.
       (createDecreaseButton): Orientation is expected to be
       SwingConstants.NORTH, ..SOUTH, ..WEST or ..EAST and not
       HORIZONTAL or VERTICAL.
       (installComponents): Orientation for buttons is expected to be
       SwingConstants.NORTH, ..SOUTH, ..WEST or ..EAST and not
       HORIZONTAL or VERTICAL.

/Roman

Index: javax/swing/plaf/basic/BasicScrollBarUI.java
===================================================================
RCS file: 
/cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicScrollBarUI.java,v
retrieving revision 1.13
diff -u -r1.13 BasicScrollBarUI.java
--- javax/swing/plaf/basic/BasicScrollBarUI.java        26 Jan 2005 23:32:51 
-0000      1.13
+++ javax/swing/plaf/basic/BasicScrollBarUI.java        18 Apr 2005 09:44:14 
-0000
@@ -152,8 +152,18 @@
         {
          incrButton.removeMouseListener(buttonListener);
          decrButton.removeMouseListener(buttonListener);
-         incrButton = createIncreaseButton(scrollbar.getOrientation());
-         decrButton = createDecreaseButton(scrollbar.getOrientation());
+          int orientation = scrollbar.getOrientation();
+          switch (orientation)
+            {
+            case (JScrollBar.HORIZONTAL):
+              incrButton = createIncreaseButton(EAST);
+              decrButton = createDecreaseButton(WEST);
+              break;
+            case (JScrollBar.VERTICAL):
+              incrButton = createIncreaseButton(SOUTH);
+              decrButton = createDecreaseButton(NORTH);
+              break;
+            }
          incrButton.addMouseListener(buttonListener);
          decrButton.addMouseListener(buttonListener);
          calculatePreferredSize();
@@ -513,16 +523,9 @@
   protected JButton createIncreaseButton(int orientation)
   {
     if (incrButton == null)
-      incrButton = new BasicArrowButton((orientation == 
SwingConstants.HORIZONTAL)
-                                        ? SwingConstants.EAST
-                                        : SwingConstants.SOUTH);
+      incrButton = new BasicArrowButton(orientation);
     else
-      {
-       if (orientation == SwingConstants.HORIZONTAL)
-         ((BasicArrowButton) incrButton).setDirection(SwingConstants.EAST);
-       else
-         ((BasicArrowButton) incrButton).setDirection(SwingConstants.SOUTH);
-      }
+      ((BasicArrowButton) incrButton).setDirection(orientation);
     return incrButton;
   }
 
@@ -537,16 +540,9 @@
   protected JButton createDecreaseButton(int orientation)
   {
     if (decrButton == null)
-      decrButton = new BasicArrowButton((orientation == 
SwingConstants.HORIZONTAL)
-                                        ? SwingConstants.WEST
-                                        : SwingConstants.NORTH);
+      decrButton = new BasicArrowButton(orientation);
     else
-      {
-       if (orientation == SwingConstants.HORIZONTAL)
-         ((BasicArrowButton) decrButton).setDirection(SwingConstants.WEST);
-       else
-         ((BasicArrowButton) decrButton).setDirection(SwingConstants.NORTH);
-      }
+      ((BasicArrowButton) decrButton).setDirection(orientation);
     return decrButton;
   }
 
@@ -793,9 +789,19 @@
    */
   protected void installComponents()
   {
-    incrButton = createIncreaseButton(scrollbar.getOrientation());
+    int orientation = scrollbar.getOrientation();
+    switch (orientation)
+      {
+      case (JScrollBar.HORIZONTAL):
+        incrButton = createIncreaseButton(EAST);
+        decrButton = createDecreaseButton(WEST);
+        break;
+      case (JScrollBar.VERTICAL):
+        incrButton = createIncreaseButton(SOUTH);
+        decrButton = createDecreaseButton(NORTH);
+        break;
+      }
     scrollbar.add(incrButton);
-    decrButton = createDecreaseButton(scrollbar.getOrientation());
     scrollbar.add(decrButton);
   }
 
@@ -869,9 +875,9 @@
        scrollTimer.setRepeats(true);
 
        installComponents();
-       installListeners();
        installDefaults();
        configureScrollBarColors();
+       installListeners();
 
        calculatePreferredSize();
        layoutContainer(scrollbar);

reply via email to

[Prev in Thread] Current Thread [Next in Thread]