[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