This patch (committed) implements some stubbed methods in AccessibleJProgressBar
(these are almost the same as the AccessibleJSlider methods I committed earlier):
2006-03-23 David Gilbert <[EMAIL PROTECTED]>
* javax/swing/JProgressBar.java
(AccessibleJProgressBar.getAccessibleStateSet): Implemented,
(AccessibleJProgressBar.getAccessibleRole): Added API docs,
(AccessibleJProgressBar.getAccessibleValue): Implemented,
(AccessibleJProgressBar.getCurrentAccessibleValue): Likewise,
(AccessibleJProgressBar.setCurrentAccessibleValue): Likewise,
(AccessibleJProgressBar.getMinimumAccessibleValue): Likewise,
(AccessibleJProgressBar.getMaximumAccessibleValue): Likewise,
(getAccessibleContext): Added API docs.
Regards,
Dave
Index: javax/swing/JProgressBar.java
===================================================================
RCS file: /sources/classpath/classpath/javax/swing/JProgressBar.java,v
retrieving revision 1.18
diff -u -r1.18 JProgressBar.java
--- javax/swing/JProgressBar.java 13 Mar 2006 21:33:37 -0000 1.18
+++ javax/swing/JProgressBar.java 23 Mar 2006 21:15:55 -0000
@@ -39,10 +39,12 @@
package javax.swing;
import java.awt.Graphics;
+import java.beans.PropertyChangeEvent;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
+import javax.accessibility.AccessibleState;
import javax.accessibility.AccessibleStateSet;
import javax.accessibility.AccessibleValue;
import javax.swing.border.Border;
@@ -79,17 +81,16 @@
Accessible
{
/**
- * AccessibleJProgressBar
+ * Provides the accessibility features for the <code>JProgressBar</code>
+ * component.
*/
- // FIXME: This inner class is a complete stub and needs to be implemented
- // properly.
protected class AccessibleJProgressBar extends AccessibleJComponent
implements AccessibleValue
{
private static final long serialVersionUID = -2938130009392721813L;
/**
- * Constructor AccessibleJProgressBar
+ * Creates a new <code>AccessibleJProgressBar</code> instance.
*/
protected AccessibleJProgressBar()
{
@@ -97,19 +98,25 @@
}
/**
- * getAccessibleStateSet
+ * Returns a set containing the current state of the [EMAIL PROTECTED]
JProgressBar}
+ * component.
*
- * @return AccessibleStateSet
+ * @return The accessible state set.
*/
public AccessibleStateSet getAccessibleStateSet()
{
- return null;
+ AccessibleStateSet result = super.getAccessibleStateSet();
+ if (orientation == JProgressBar.HORIZONTAL)
+ result.add(AccessibleState.HORIZONTAL);
+ else if (orientation == JProgressBar.VERTICAL)
+ result.add(AccessibleState.VERTICAL);
+ return result;
}
/**
- * getAccessibleRole
+ * Returns the accessible role for the <code>JProgressBar</code> component.
*
- * @return AccessibleRole
+ * @return [EMAIL PROTECTED] AccessibleRole#PROGRESS_BAR}.
*/
public AccessibleRole getAccessibleRole()
{
@@ -117,56 +124,71 @@
}
/**
- * getAccessibleValue
+ * Returns an object that provides access to the current, minimum and
+ * maximum values.
*
- * @return AccessibleValue
+ * @return The accessible value.
*/
public AccessibleValue getAccessibleValue()
{
- return null;
+ return this;
}
/**
- * getCurrentAccessibleValue
+ * Returns the current value of the [EMAIL PROTECTED] JProgressBar}
component, as an
+ * [EMAIL PROTECTED] Integer}.
*
- * @return Number
+ * @return The current value of the [EMAIL PROTECTED] JProgressBar}
component.
*/
public Number getCurrentAccessibleValue()
{
- return null;
- }
+ return new Integer(getValue());
+ }
/**
- * setCurrentAccessibleValue
+ * Sets the current value of the [EMAIL PROTECTED] JProgressBar} component
and sends a
+ * [EMAIL PROTECTED] PropertyChangeEvent} (with the property name
+ * [EMAIL PROTECTED] AccessibleContext#ACCESSIBLE_VALUE_PROPERTY}) to all
registered
+ * listeners. If the supplied value is <code>null</code>, this method
+ * does nothing and returns <code>false</code>.
*
- * @param value0 TODO
+ * @param value the new progress bar value (<code>null</code> permitted).
*
- * @return boolean
+ * @return <code>true</code> if the slider value is updated, and
+ * <code>false</code> otherwise.
*/
- public boolean setCurrentAccessibleValue(Number value0)
+ public boolean setCurrentAccessibleValue(Number value)
{
- return false;
- }
+ if (value == null)
+ return false;
+ Number oldValue = getCurrentAccessibleValue();
+ setValue(value.intValue());
+ firePropertyChange(AccessibleContext.ACCESSIBLE_VALUE_PROPERTY,
oldValue,
+ new Integer(getValue()));
+ return true;
+ }
/**
- * getMinimumAccessibleValue
+ * Returns the minimum value of the [EMAIL PROTECTED] JProgressBar}
component, as an
+ * [EMAIL PROTECTED] Integer}.
*
- * @return Number
+ * @return The minimum value of the [EMAIL PROTECTED] JProgressBar}
component.
*/
public Number getMinimumAccessibleValue()
{
- return null;
- }
+ return new Integer(getMinimum());
+ }
/**
- * getMaximumAccessibleValue
+ * Returns the maximum value of the [EMAIL PROTECTED] JProgressBar}
component, as an
+ * [EMAIL PROTECTED] Integer}.
*
- * @return Number
+ * @return The maximum value of the [EMAIL PROTECTED] JProgressBar}
component.
*/
public Number getMaximumAccessibleValue()
{
- return null;
- }
+ return new Integer(getMaximum());
+ }
}
private static final long serialVersionUID = 1980046021813598781L;
@@ -654,9 +676,11 @@
}
/**
- * DOCUMENT ME!
+ * Returns the object that provides accessibility features for this
+ * <code>JProgressBar</code> component.
*
- * @return DOCUMENT ME!
+ * @return The accessible context (an instance of
+ * [EMAIL PROTECTED] AccessibleJProgressBar}).
*/
public AccessibleContext getAccessibleContext()
{