[Patch] javax.swing merged

Michael Koch konqueror@gmx.de
Fri Apr 22 18:33:00 GMT 2005


Hi list,


I just commited the attached patches to merge the latest Swing
improvements from GNU classpath to HEAD.


Michael


2005-04-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Changed Button.border to be
	BasicBorders.getButtonBorder as it should be.

2005-04-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	(getMaximumSize): Return (Short.MAX_VALUE, Short.MAX_VALUE) as it
	should according to a mauve testcase, instead of the preferred
	size.

2005-04-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/JMenu.java
	(add): add(Component) now calls PopupMenu.insert(..) instead of
	PopupMenu.add(..). add(..) is not implemented for Component,
	so JComponent.add(..) is called instead, adding the component
	in the wrong place.

2005-04-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/basic/BasicButtonListener.java
	(mousePressed): replaced query to getModifiersEx with getModifiers.
	This method relied on faulty behaviour in getModifierEx.
	(mouseReleased): replaced query to getModifiersEx with getModifiers.
	This method relied on faulty behaviour in getModifierEx.

2005-04-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(getDefaults): Call addCustomEntriesToTable on the theme.

2005-04-22  Roman Kennke  <roman@kennke.org>

	* javax/swing/tree/DefaultTreeSelectionModel.java
	(constructor): Added implementation.
	(getRowMapper): Added implementation.
	(setSelectionMode): Added implementation.
	(getSelectionMode): Added implementation.
	(getSelectionPath): Added implementation.
	(getSelectionPaths): Added implementation.
	(getSelectionCount): Added implementation.
	(isSelectionEmpty): Added implementation.
	(getSelectionRows): Added implementation.
	(getMinSelectionRow): Added implementation.
	(getMaxSelectionRow): Added implementation.
	(getLeadSelectionRow): Added implementation.
	(getLeadSelectionPath): Added implementation.

-------------- next part --------------
Index: javax/swing/JMenu.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JMenu.java,v
retrieving revision 1.9
diff -u -r1.9 JMenu.java
--- javax/swing/JMenu.java	16 Feb 2005 20:02:29 -0000	1.9
+++ javax/swing/JMenu.java	22 Apr 2005 18:30:09 -0000
@@ -162,7 +162,8 @@
    */
   public Component add(Component component)
   {
-    return popupMenu.add(component);
+    popupMenu.insert(component, -1);
+    return component;
   }
 
   /**
Index: javax/swing/plaf/basic/BasicButtonListener.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicButtonListener.java,v
retrieving revision 1.5
diff -u -r1.5 BasicButtonListener.java
--- javax/swing/plaf/basic/BasicButtonListener.java	16 Feb 2005 20:02:49 -0000	1.5
+++ javax/swing/plaf/basic/BasicButtonListener.java	22 Apr 2005 18:30:09 -0000
@@ -157,7 +157,7 @@
       {
         AbstractButton button = (AbstractButton) e.getSource();
         ButtonModel model = button.getModel();
-        if ((e.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0)
+        if (e.getButton() == MouseEvent.BUTTON1)
           {
             // It is important that these transitions happen in this order.
             model.setArmed(true);
@@ -179,7 +179,7 @@
       {
         AbstractButton button = (AbstractButton) e.getSource();
         ButtonModel model = button.getModel();
-        if ((e.getModifiersEx() & InputEvent.BUTTON1_DOWN_MASK) != 0)
+        if (e.getButton() == MouseEvent.BUTTON1)
           {
             // It is important that these transitions happen in this order.
             model.setPressed(false);
Index: javax/swing/plaf/basic/BasicLookAndFeel.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicLookAndFeel.java,v
retrieving revision 1.13
diff -u -r1.13 BasicLookAndFeel.java
--- javax/swing/plaf/basic/BasicLookAndFeel.java	22 Feb 2005 12:16:00 -0000	1.13
+++ javax/swing/plaf/basic/BasicLookAndFeel.java	22 Apr 2005 18:30:09 -0000
@@ -244,7 +244,14 @@
       "AbstractUndoableEdit.redoText", "Redo",
 
       "Button.background", new ColorUIResource(Color.lightGray),
-      "Button.border", BorderUIResource.getEtchedBorderUIResource(),
+      "Button.border",
+      new UIDefaults.LazyValue() 
+      {
+        public Object createValue(UIDefaults table)
+        {
+          return BasicBorders.getButtonBorder();
+        }
+      },
       "Button.darkShadow", new ColorUIResource(Color.darkGray),
       "Button.focusInputMap", new UIDefaults.LazyInputMap(new Object[] {
         "SPACE",  "pressed",
Index: javax/swing/plaf/basic/BasicTabbedPaneUI.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/basic/BasicTabbedPaneUI.java,v
retrieving revision 1.11
diff -u -r1.11 BasicTabbedPaneUI.java
--- javax/swing/plaf/basic/BasicTabbedPaneUI.java	16 Feb 2005 20:02:58 -0000	1.11
+++ javax/swing/plaf/basic/BasicTabbedPaneUI.java	22 Apr 2005 18:30:09 -0000
@@ -1168,8 +1168,7 @@
    * This is a helper class that implements UIResource so it is not added as a
    * tab when an object of this class is added to the JTabbedPane.
    */
-  private static class ScrollingButton extends BasicArrowButton
-    implements UIResource
+  private class ScrollingButton extends BasicArrowButton implements UIResource
   {
     /**
      * Creates a ScrollingButton given the direction.
@@ -1682,7 +1681,7 @@
    */
   public Dimension getMaximumSize(JComponent c)
   {
-    return getPreferredSize(c);
+    return new Dimension(Short.MAX_VALUE, Short.MAX_VALUE);
   }
 
   /**
Index: javax/swing/plaf/metal/MetalLookAndFeel.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/plaf/metal/MetalLookAndFeel.java,v
retrieving revision 1.9
diff -u -r1.9 MetalLookAndFeel.java
--- javax/swing/plaf/metal/MetalLookAndFeel.java	20 Apr 2005 05:47:56 -0000	1.9
+++ javax/swing/plaf/metal/MetalLookAndFeel.java	22 Apr 2005 18:30:09 -0000
@@ -92,6 +92,9 @@
     if (LAF_defaults == null)
       LAF_defaults = super.getDefaults();
 
+    // add custom theme entries to the table
+    theme.addCustomEntriesToTable(LAF_defaults);
+    
     // Returns the default values for this look and feel. 
     return LAF_defaults;
   }
Index: javax/swing/tree/DefaultTreeSelectionModel.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/tree/DefaultTreeSelectionModel.java,v
retrieving revision 1.5
diff -u -r1.5 DefaultTreeSelectionModel.java
--- javax/swing/tree/DefaultTreeSelectionModel.java	20 Apr 2005 05:47:57 -0000	1.5
+++ javax/swing/tree/DefaultTreeSelectionModel.java	22 Apr 2005 18:30:09 -0000
@@ -116,7 +116,7 @@
    */
   public DefaultTreeSelectionModel()
   {
-    // TODO
+    setSelectionMode(DISCONTIGUOUS_TREE_SELECTION);
   }
 
   /**
@@ -187,7 +187,7 @@
    */
   public RowMapper getRowMapper()
   {
-    return null; // TODO
+    return rowMapper;
   }
 
   /**
@@ -202,9 +202,9 @@
    * @see {@link #CONTIGUOUS_TREE_SELECTION}
    * @see {@link #DISCONTIGUOUS_TREE_SELECTION}
    */
-  public void setSelectionMode(int value0)
+  public void setSelectionMode(int mode)
   {
-    // TODO
+    selectionMode = mode;
   }
 
   /**
@@ -219,7 +219,7 @@
    */
   public int getSelectionMode()
   {
-    return 0; // TODO
+    return selectionMode;
   }
 
   /**
@@ -311,7 +311,10 @@
    */
   public TreePath getSelectionPath()
   {
-    return null; // TODO
+    if ((selection == null) || (selection.length == 0))
+      return null;
+    else
+      return selection[0];
   }
 
   /**
@@ -321,7 +324,7 @@
    */
   public TreePath[] getSelectionPaths()
   {
-    return null; // TODO
+    return selection;
   }
 
   /**
@@ -331,7 +334,10 @@
    */
   public int getSelectionCount()
   {
-    return 0; // TODO
+    if (selection == null)
+      return 0;
+    else
+      return selection.length;
   }
 
   /**
@@ -355,7 +361,7 @@
    */
   public boolean isSelectionEmpty()
   {
-    return false; // TODO
+    return ((selection == null) || (selection.length == 0));
   }
 
   /**
@@ -432,7 +438,10 @@
    */
   public int[] getSelectionRows()
   {
-    return null; // TODO
+    if (rowMapper == null)
+      return null;
+    else
+      return rowMapper.getRowsForPaths(selection);
   }
 
   /**
@@ -442,7 +451,15 @@
    */
   public int getMinSelectionRow()
   {
-    return 0; // TODO
+    if ((rowMapper == null) || (selection == null) || (selection.length == 0))
+      return -1;
+    else {
+      int[] rows = rowMapper.getRowsForPaths(selection);
+      int minRow = Integer.MAX_VALUE;
+      for (int index = 0; index < rows.length; index++)
+        minRow = Math.min(minRow, rows[index]);
+      return minRow;
+    }
   }
 
   /**
@@ -452,7 +469,15 @@
    */
   public int getMaxSelectionRow()
   {
-    return 0; // TODO
+    if ((rowMapper == null) || (selection == null) || (selection.length == 0))
+      return -1;
+    else {
+      int[] rows = rowMapper.getRowsForPaths(selection);
+      int maxRow = -1;
+      for (int index = 0; index < rows.length; index++)
+        maxRow = Math.max(maxRow, rows[index]);
+      return maxRow;
+    }
   }
 
   /**
@@ -482,7 +507,10 @@
    */
   public int getLeadSelectionRow()
   {
-    return 0; // TODO
+    if ((rowMapper == null) || (leadPath == null))
+      return -1;
+    else
+      return rowMapper.getRowsForPaths(new TreePath[]{ leadPath })[0];
   }
 
   /**
@@ -491,7 +519,7 @@
    */
   public TreePath getLeadSelectionPath()
   {
-    return null; // TODO
+    return leadPath;
   }
 
   /**


More information about the Java-patches mailing list