Hi David,

This is great news that you look at the accessibility code. Thank you
for implementing/looking over it. One question: do you write mauve tests
for the accessibility fixes? I think this would be helpful because there
is nearly no specs and also I don't know of any free application to test
against so we can make sure our implementation is correct. And even
though there is no free application that seems to use this code, I think
it is quite important to get this (at least somewhat) right. I have the
feeling that accessibility _is_ (or will be) used by government programs
and some companies also seem to use it. It would be nice if we could
support this too.

/Roman

Am Donnerstag, den 23.03.2006, 23:41 +0000 schrieb David Gilbert:
> This patch (committed) fixes a few minor bugs in the accessibility code 
> (getAccessibleName() for several components, and getSelectedObjects() for 
> JButton), 
> and marks some more methods as stubs:
> 
> 2006-03-23  David Gilbert  <[EMAIL PROTECTED]>
> 
>       * java/awt/Component.java
>       (getAccessibleName): Just return accessibleName,
>       * javax/swing/AbstractButton.java
>       (getAccessibleStateSet): Mark as stub,
>       (getAccessibleName): Implemented,
>       (getAcessibleIcon): Mark as stub,
>       (getAccessibleRelationSet): Likewise,
>       (getAccessibleAction): Likewise,
>       (getAccessibleValue): Likewise,
>       (getAccessibleActionCount): Likewise,
>       (getAccessibleActionDescription): Likewise,
>       (doAccessibleAction): Likewise,
>       (getCurrentAccessibleValue): Likewise,
>       (setCurrentAccessibleValue): Likewise,
>       (getMinimumAccessibleValue): Likewise,
>       (getMaximumAccessibleValue): Likewise,
>       (getAccessibleText): Likewise,
>       (getIndexAtPoint): Likewise,
>       (getCharacterBounds): Likewise,
>       (getCharCount): Likewise,
>       (getCaretPosition): Likewise,
>       (getAtIndex): Likewise,
>       (getAfterIndex): Likewise,
>       (getBeforeIndex): Likewise,
>       (getCharacterAttribute): Likewise,
>       (getSelectionStart): Likewise,
>       (getSelectionEnd): Likewise,
>       (getSelectedText): Likewise,
>       (getTextRectangle): Likewise,
>       (setIconTextGap): Fire PropertyChangeEvent, not state changed,
>       (getIconTextGap): Added @since 1.4,
>       (setContentAreaFilled): Reordered code to make event sequence match
>       reference implementation,
>       * javax/swing/JButton.java
>       (getSelectedObjects): Removed,
>       *javax/swing/JComponent.java
>       (getAccessibleName): Call super.
> 
> Regards,
> 
> Dave
> einfaches Textdokument-Anlage (diff.txt)
> Index: java/awt/Component.java
> ===================================================================
> RCS file: /sources/classpath/classpath/java/awt/Component.java,v
> retrieving revision 1.108
> diff -u -r1.108 Component.java
> --- java/awt/Component.java   23 Mar 2006 21:17:22 -0000      1.108
> +++ java/awt/Component.java   23 Mar 2006 23:00:48 -0000
> @@ -5292,7 +5292,7 @@
>       */
>      public String getAccessibleName()
>      {
> -      return accessibleName == null ? getName() : accessibleName;
> +      return accessibleName;
>      }
>  
>      /**
> Index: javax/swing/AbstractButton.java
> ===================================================================
> RCS file: /sources/classpath/classpath/javax/swing/AbstractButton.java,v
> retrieving revision 1.51
> diff -u -r1.51 AbstractButton.java
> --- javax/swing/AbstractButton.java   13 Mar 2006 15:22:27 -0000      1.51
> +++ javax/swing/AbstractButton.java   23 Mar 2006 23:00:56 -0000
> @@ -37,6 +37,8 @@
>  
>  package javax.swing;
>  
> +import gnu.classpath.NotImplementedException;
> +
>  import java.awt.Graphics;
>  import java.awt.Image;
>  import java.awt.Insets;
> @@ -389,132 +391,163 @@
>      }
>  
>      public AccessibleStateSet getAccessibleStateSet()
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
> +    /**
> +     * Returns the accessible name for the button.
> +     */
>      public String getAccessibleName()
>      {
> -      return null; // TODO
> +      String result = super.getAccessibleName();
> +      if (result == null)
> +        result = text;
> +      return result;
>      }
>  
>      public AccessibleIcon[] getAccessibleIcon()
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public AccessibleRelationSet getAccessibleRelationSet()
> +      throws NotImplementedException
>      {
>        // TODO: What should be modified here?
>        return super.getAccessibleRelationSet();
>      }
>  
>      public AccessibleAction getAccessibleAction()
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public AccessibleValue getAccessibleValue()
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public int getAccessibleActionCount()
> +      throws NotImplementedException
>      {
>        return 0; // TODO
>      }
>  
>      public String getAccessibleActionDescription(int value0)
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public boolean doAccessibleAction(int value0)
> +      throws NotImplementedException
>      {
>        return false; // TODO
>      }
>  
>      public Number getCurrentAccessibleValue()
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public boolean setCurrentAccessibleValue(Number value0)
> +      throws NotImplementedException
>      {
>        return false; // TODO
>      }
>  
>      public Number getMinimumAccessibleValue()
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public Number getMaximumAccessibleValue()
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public AccessibleText getAccessibleText()
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public int getIndexAtPoint(Point value0)
> +      throws NotImplementedException
>      {
>        return 0; // TODO
>      }
>  
>      public Rectangle getCharacterBounds(int value0)
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public int getCharCount()
> +      throws NotImplementedException
>      {
>        return 0; // TODO
>      }
>  
>      public int getCaretPosition()
> +      throws NotImplementedException
>      {
>        return 0; // TODO
>      }
>  
>      public String getAtIndex(int value0, int value1)
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public String getAfterIndex(int value0, int value1)
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public String getBeforeIndex(int value0, int value1)
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public AttributeSet getCharacterAttribute(int value0)
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      public int getSelectionStart()
> +      throws NotImplementedException
>      {
>        return 0; // TODO
>      }
>  
>      public int getSelectionEnd()
> +      throws NotImplementedException
>      {
>        return 0; // TODO
>      }
>  
>      public String getSelectedText()
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
>  
>      private Rectangle getTextRectangle()
> +      throws NotImplementedException
>      {
>        return null; // TODO
>      }
> @@ -1283,6 +1316,8 @@
>     * Set the value of the [EMAIL PROTECTED] #iconTextGap} property.
>     * 
>     * @param i The new value of the property
> +   * 
> +   * @since 1.4
>     */
>    public void setIconTextGap(int i)
>    {
> @@ -1291,7 +1326,7 @@
>      
>      int old = iconTextGap;
>      iconTextGap = i;
> -    fireStateChanged();
> +    firePropertyChange("iconTextGap", new Integer(old), new Integer(i));
>      revalidate();
>      repaint();
>    }
> @@ -1300,6 +1335,8 @@
>     * Get the value of the [EMAIL PROTECTED] #iconTextGap} property.
>     *
>     * @return The current value of the property
> +   * 
> +   * @since 1.4
>     */
>    public int getIconTextGap()
>    {
> @@ -1920,12 +1957,12 @@
>      if (contentAreaFilled == b)
>        return;
>      
> -    boolean old = contentAreaFilled;
> -    contentAreaFilled = b;
> -    firePropertyChange(CONTENT_AREA_FILLED_CHANGED_PROPERTY, old, b);
>      // The JDK sets the opaque property to the value of the contentAreaFilled
>      // property, so should we do.
>      setOpaque(b);
> +    boolean old = contentAreaFilled;
> +    contentAreaFilled = b;
> +    firePropertyChange(CONTENT_AREA_FILLED_CHANGED_PROPERTY, old, b);
>     }
>  
>    /**
> Index: javax/swing/JButton.java
> ===================================================================
> RCS file: /sources/classpath/classpath/javax/swing/JButton.java,v
> retrieving revision 1.23
> diff -u -r1.23 JButton.java
> --- javax/swing/JButton.java  19 Oct 2005 15:16:50 -0000      1.23
> +++ javax/swing/JButton.java  23 Mar 2006 23:00:56 -0000
> @@ -103,11 +103,6 @@
>      setModel(new DefaultButtonModel());
>    }
>  
> -  public Object[] getSelectedObjects()
> -  {
> -    return null;
> -  }
> -
>    protected void configurePropertiesFromAction(Action a)
>    {
>      // Factory method which sets the AbstractButton's properties according to
> Index: javax/swing/JComponent.java
> ===================================================================
> RCS file: /sources/classpath/classpath/javax/swing/JComponent.java,v
> retrieving revision 1.108
> diff -u -r1.108 JComponent.java
> --- javax/swing/JComponent.java       23 Mar 2006 17:16:23 -0000      1.108
> +++ javax/swing/JComponent.java       23 Mar 2006 23:01:00 -0000
> @@ -252,9 +252,8 @@
>       */
>      public String getAccessibleName()
>      {
> -      // TODO: Figure out what exactly to return here. It's possible that 
> this
> -      // method simply should return null.
> -      return null;
> +      // TODO: Figure out what exactly to return here.
> +      return super.getAccessibleName();
>      }
>  
>      /**
-- 
“Improvement makes straight roads, but the crooked roads, without
Improvement, are roads of Genius.” - William Blake

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil

Reply via email to