summaryrefslogtreecommitdiff
path: root/libjava/javax/swing/JToolBar.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/javax/swing/JToolBar.java')
-rw-r--r--libjava/javax/swing/JToolBar.java733
1 files changed, 505 insertions, 228 deletions
diff --git a/libjava/javax/swing/JToolBar.java b/libjava/javax/swing/JToolBar.java
index e6db8720c2c..7b5121e76fc 100644
--- a/libjava/javax/swing/JToolBar.java
+++ b/libjava/javax/swing/JToolBar.java
@@ -38,6 +38,7 @@ exception statement from your version. */
package javax.swing;
import java.awt.Component;
+import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridLayout;
@@ -46,26 +47,31 @@ import java.awt.LayoutManager;
import java.beans.PropertyChangeListener;
import java.io.IOException;
import java.io.ObjectOutputStream;
-
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
import javax.accessibility.AccessibleStateSet;
import javax.swing.plaf.ToolBarUI;
+
/**
- * JToolBar
- * @author Andrew Selkirk
- * @version 1.0
+ * JToolBar is a component that provides a toolbar to Swing programs. Users
+ * can add buttons (or actions that will be represented by JButtons) as well
+ * as other components to the JToolBar. JToolBars can be dragged in and out
+ * of their parent components. If the JToolBar is dragged out of the parent,
+ * then it will be displayed in its own RootPaneContainer. For dragging to
+ * work properly, JToolBars need to be placed in a Container that has a
+ * BorderLayout. That parent Container cannot have components in the NORTH,
+ * EAST, SOUTH, or WEST components (that is not the JToolBar).
*/
-public class JToolBar extends JComponent
- implements SwingConstants, Accessible
+public class JToolBar extends JComponent implements SwingConstants, Accessible
{
/**
* AccessibleJToolBar
*/
protected class AccessibleJToolBar extends AccessibleJComponent
{
+ /** DOCUMENT ME! */
private static final long serialVersionUID = -5516888265903814215L;
/**
@@ -77,6 +83,7 @@ public class JToolBar extends JComponent
/**
* getAccessibleStateSet
+ *
* @return AccessibleStateSet
*/
public AccessibleStateSet getAccessibleStateSet()
@@ -86,6 +93,7 @@ public class JToolBar extends JComponent
/**
* getAccessibleRole
+ *
* @return AccessibleRole
*/
public AccessibleRole getAccessibleRole()
@@ -95,409 +103,678 @@ public class JToolBar extends JComponent
}
/**
- * Separator
+ * This is the private JToolBar layout manager.
+ */
+ private class DefaultToolBarLayout implements LayoutManager
+ {
+ /**
+ * This method is called when a new component is added to the container.
+ *
+ * @param name The name of the component added.
+ * @param comp The component that was added.
*/
- public static class Separator extends JSeparator {
+ public void addLayoutComponent(String name, Component comp)
+ {
+ // Do nothing.
+ }
- private static final long serialVersionUID = -1656745644823105219L;
+ /**
+ * This method is called to lay out the given container to position and
+ * size the child components.
+ *
+ * @param c The container to lay out.
+ *
+ * @throws Error DOCUMENT ME!
+ */
+ public void layoutContainer(Container c)
+ {
+ if (! (c instanceof JToolBar))
+ throw new Error("DefaultToolBarLayout can only be used on JToolBars.");
+ Insets insets = getInsets();
+ Insets margin = getMargin();
+ int middle;
+ if (margin != null)
+ {
+ insets.left += margin.left;
+ insets.top += margin.top;
+ insets.bottom += margin.bottom;
+ insets.right += margin.right;
+ }
+ Component[] components = c.getComponents();
+ Dimension tdims = c.getSize();
+ int start = 0;
+ Dimension pref;
- //-------------------------------------------------------------
- // Variables --------------------------------------------------
- //-------------------------------------------------------------
+ if (getOrientation() == SwingUtilities.HORIZONTAL)
+ {
+ start += insets.left;
+ for (int i = 0; i < components.length; i++)
+ {
+ if (components[i] != null && components[i].isVisible())
+ {
+ pref = components[i].getPreferredSize();
+ if (pref != null)
+ {
+ middle = (tdims.height - pref.height) / 2;
+ components[i].setBounds(start, middle, pref.width,
+ pref.height);
+ start += pref.width;
+ }
+ }
+ }
+ }
+ else
+ {
+ start += insets.top;
+ for (int i = 0; i < components.length; i++)
+ {
+ if (components[i] != null && components[i].isVisible())
+ {
+ pref = components[i].getPreferredSize();
+ if (pref != null)
+ {
+ middle = (tdims.width - pref.width) / 2;
+ components[i].setBounds(middle, start, pref.width,
+ pref.height);
+ start += pref.height;
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This method returns the minimum size of the given container given the
+ * child components.
+ *
+ * @param parent The container to measure.
+ *
+ * @return The minimum size of the given container.
+ */
+ public Dimension minimumLayoutSize(Container parent)
+ {
+ return preferredLayoutSize(parent);
+ }
/**
- * separatorSize
+ * This method returns the preferred size of the given container given the
+ * child components.
+ *
+ * @param parent The container to measure.
+ *
+ * @return The preferred size of the given container.
*/
- private Dimension size;
+ public Dimension preferredLayoutSize(Container parent)
+ {
+ int orientation = getOrientation();
+ Component[] components = getComponents();
+ int limit = 0;
+ int total = 0;
+ Dimension dims;
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
+ int w = 0;
+ int h = 0;
+
+ if (orientation == SwingConstants.HORIZONTAL)
+ {
+ for (int i = 0; i < components.length; i++)
+ {
+ dims = components[i].getPreferredSize();
+ if (dims != null)
+ {
+ if (dims.height > limit)
+ limit = dims.height;
+ total += dims.width;
+ }
+ }
+ w = total;
+ h = limit;
+ }
+ else
+ {
+ for (int i = 0; i < components.length; i++)
+ {
+ dims = components[i].getPreferredSize();
+ if (dims != null)
+ {
+ if (dims.width > limit)
+ limit = dims.width;
+ total += dims.height;
+ }
+ }
+ w = limit;
+ h = total;
+ }
+
+ Insets insets = getInsets();
+ w += insets.left + insets.right;
+ h += insets.top + insets.bottom;
+
+ Insets margin = getMargin();
+ if (margin != null)
+ {
+ w += margin.left + margin.right;
+ h += margin.top + margin.bottom;
+ }
+
+ return new Dimension(w, h);
+ }
/**
- * Constructor Separator
+ * This method is called when the given component is removed from the
+ * container.
+ *
+ * @param comp The component removed.
*/
- public Separator() {
- // TODO
- } // Separator()
+ public void removeLayoutComponent(Component comp)
+ {
+ // Do nothing.
+ }
+ }
/**
- * Constructor Separator
- * @param size TODO
+ * This is an extension of JSeparator used in toolbars. Unlike JSeparator,
+ * nothing is painted for this Separator, it is only blank space that
+ * separates components.
*/
- public Separator(Dimension size) {
- // TODO
- } // Separator()
+ public static class Separator extends JSeparator
+ {
+ /** DOCUMENT ME! */
+ private static final long serialVersionUID = -1656745644823105219L;
+ /**
+ * Creates a new Separator object.
+ */
+ public Separator()
+ {
+ super();
+ } // Separator()
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
+ /**
+ * Creates a new Separator object with the given size.
+ *
+ * @param size The size of the separator.
+ */
+ public Separator(Dimension size)
+ {
+ setPreferredSize(size);
+ } // Separator()
/**
- * getUIClassID
- * @returns String
+ * This method returns the String ID of the UI class of Separator.
+ *
+ * @return The UI class' String ID.
*/
- public String getUIClassID() {
- return null; // TODO
+ public String getUIClassID()
+ {
+ return "ToolBarSeparatorUI";
} // getUIClassID()
/**
- * getPreferredSize
- * @returns Dimension
+ * This method returns the preferred size of the Separator.
+ *
+ * @return The preferred size of the Separator.
*/
- public Dimension getPreferredSize() {
- return null; // TODO
+ public Dimension getPreferredSize()
+ {
+ return super.getPreferredSize();
} // getPreferredSize()
/**
- * getMaximumSize
- * @returns Dimension
+ * This method returns the maximum size of the Separator.
+ *
+ * @return The maximum size of the Separator.
*/
- public Dimension getMaximumSize() {
- return null; // TODO
+ public Dimension getMaximumSize()
+ {
+ return super.getPreferredSize();
} // getMaximumSize()
/**
- * getMinimumSize
- * @returns Dimension
+ * This method returns the minimum size of the Separator.
+ *
+ * @return The minimum size of the Separator.
*/
- public Dimension getMinimumSize() {
- return null; // TODO
+ public Dimension getMinimumSize()
+ {
+ return super.getPreferredSize();
} // getMinimumSize()
/**
- * getSeparatorSize
- * @returns Dimension
+ * This method returns the size of the Separator.
+ *
+ * @return The size of the Separator.
*/
- public Dimension getSeparatorSize() {
- return null; // TODO
+ public Dimension getSeparatorSize()
+ {
+ return super.getPreferredSize();
} // getSeparatorSize()
/**
- * setSeparatorSize
- * @param size TODO
+ * This method sets the size of the Separator.
+ *
+ * @param size The new size of the Separator.
*/
- public void setSeparatorSize(Dimension size) {
- // TODO
+ public void setSeparatorSize(Dimension size)
+ {
+ setPreferredSize(size);
} // setSeparatorSize()
-
-
} // Separator
-// /**
-// * DefaultJToolBarLayout
-// */
-// private class DefaultJToolBarLayout {
-//
-// private void DefaultJToolBarLayout() {
-// }
-//
-// private LayoutManager getLayout() {
-// switch (JToolBar.this.getOrientation()) {
-// case HORIZONTAL: setLayout(new GridLayout(1, 0, 4, 4));
-// break;
-// case VERTICAL: setLayout(new GridLayout(0, 1, 4, 4));
-// break;
-// }
-// }
-// } // DefaultJToolBarLayout
-
-
+ /** DOCUMENT ME! */
private static final long serialVersionUID = -1269915519555129643L;
- //-------------------------------------------------------------
- // Variables --------------------------------------------------
- //-------------------------------------------------------------
+ /** Whether the JToolBar paints its border. */
+ private transient boolean paintBorder = true;
- /**
- * uiClassID
- */
- private static final String uiClassID = "ToolBarUI";
+ /** The extra insets around the JToolBar. */
+ private transient Insets margin;
- /**
- * paintBorder
- */
- private boolean paintBorder;
-
- /**
- * margin
- */
- private Insets margin;
+ /** Whether the JToolBar can float (and be dragged around). */
+ private transient boolean floatable = true;
- /**
- * floatable
- */
- private boolean floatable;
+ /** Whether the buttons will have rollover borders. */
+ private transient boolean rollover;
- /**
- * orientation
- */
+ /** The orientation of the JToolBar. */
private int orientation = HORIZONTAL;
-// protected transient DefaultJToolBarLayout toolbarLayout;
-
- /** Fired in a PropertyChangeEvent when the "orientation" property changes.
- */
+ /** Fired in a PropertyChangeEvent when the orientation property changes. */
public static final String ORIENTATION_CHANGED_PROPERTY = "orientation";
- //-------------------------------------------------------------
- // Initialization ---------------------------------------------
- //-------------------------------------------------------------
+ /** Fired in a PropertyChangeEvent when the floatable property changes. */
+ public static final String FLOATABLE_CHANGED_PROPERTY = "floatable";
+
+ /** Fired in a PropertyChangeEvent when the borderPainted property changes. */
+ public static final String BORDER_PAINTED_CHANGED_PROPERTY = "borderPainted";
+
+ /** Fired in a PropertyChangeEvent when the margin property changes. */
+ public static final String MARGIN_CHANGED_PROPERTY = "margin";
+
+ /** Fired in a PropertyChangeEvent when the rollover property changes. */
+ public static final String ROLLOVER_CHANGED_PROPERTY = "rollover";
/**
- * Constructor JToolBar
+ * This method creates a new JToolBar object with horizontal orientation
+ * and no name.
*/
- public JToolBar() {
- this(null);
+ public JToolBar()
+ {
+ this(null, HORIZONTAL);
} // JToolBar()
/**
- * Constructor JToolBar
+ * This method creates a new JToolBar with the given orientation and no
+ * name.
+ *
* @param orientation JToolBar orientation (HORIZONTAL or VERTICAL)
*/
- public JToolBar(int orientation) {
+ public JToolBar(int orientation)
+ {
this(null, orientation);
} // JToolBar()
/**
- * Constructor JToolBar
+ * This method creates a new JToolBar object with the given name and
+ * horizontal orientation.
+ *
* @param name Name assigned to undocked tool bar.
*/
- public JToolBar(String name) {
+ public JToolBar(String name)
+ {
this(name, HORIZONTAL);
} // JToolBar()
/**
- * Constructor JToolBar
+ * This method creates a new JToolBar object with the given name and
+ * orientation.
+ *
* @param name Name assigned to undocked tool bar.
* @param orientation JToolBar orientation (HORIZONTAL or VERTICAL)
*/
- public JToolBar(String name, int orientation) {
+ public JToolBar(String name, int orientation)
+ {
setName(name);
- if (orientation != HORIZONTAL && orientation != VERTICAL)
- throw new IllegalArgumentException(orientation + " is not a legal orientation");
- this.orientation = orientation;
-// toolbarLayout = new DefaultJToolBarLayout();
+ setOrientation(orientation);
+ setLayout(new DefaultToolBarLayout());
+ revalidate();
updateUI();
} // JToolBar()
-
- //-------------------------------------------------------------
- // Methods ----------------------------------------------------
- //-------------------------------------------------------------
-
- /**
- * writeObject
- * @param stream TODO
- * @exception IOException TODO
- */
- private void writeObject(ObjectOutputStream stream) throws IOException {
- // TODO
- } // writeObject()
-
/**
- * add
- * @param action TODO
- * @returns JButton
+ * This method adds a new JButton that performs the given Action to the
+ * JToolBar.
+ *
+ * @param action The Action to add to the JToolBar.
+ *
+ * @return The JButton that wraps the Action.
*/
- public JButton add(Action action) {
- return null; // TODO
+ public JButton add(Action action)
+ {
+ JButton b = createActionComponent(action);
+ add(b);
+ return b;
} // add()
/**
- * paintBorder
- * @param graphics TODO
+ * This method paints the border if the borderPainted property is true.
+ *
+ * @param graphics The graphics object to paint with.
*/
- protected void paintBorder(Graphics graphics) {
- // TODO
+ protected void paintBorder(Graphics graphics)
+ {
+ if (paintBorder && isFloatable())
+ super.paintBorder(graphics);
} // paintBorder()
/**
- * getUI
- * @returns ToolBarUI
+ * This method returns the UI class used to paint this JToolBar.
+ *
+ * @return The UI class for this JToolBar.
*/
- public ToolBarUI getUI() {
- System.out.println("ui = " + ui);
+ public ToolBarUI getUI()
+ {
return (ToolBarUI) ui;
} // getUI()
/**
- * setUI
- * @param ui TODO
+ * This method sets the UI used with the JToolBar.
+ *
+ * @param ui The UI used with the JToolBar.
*/
- public void setUI(ToolBarUI ui) {
+ public void setUI(ToolBarUI ui)
+ {
super.setUI(ui);
} // setUI()
/**
- * updateUI
+ * This method resets the UI used to the Look and Feel defaults.
*/
- public void updateUI() {
+ public void updateUI()
+ {
setUI((ToolBarUI)UIManager.getUI(this));
+ revalidate();
+ repaint();
} // updateUI()
/**
- * getUIClassID
- * @returns String
+ * This method returns the String identifier for the UI class to the used
+ * with the JToolBar.
+ *
+ * @return The String identifier for the UI class.
*/
- public String getUIClassID() {
- return uiClassID;
+ public String getUIClassID()
+ {
+ return "ToolBarUI";
} // getUIClassID()
/**
- * getComponentIndex
- * @param component TODO
- * @returns int
+ * This method sets the rollover property for the JToolBar. In rollover
+ * mode, JButtons inside the JToolBar will only display their borders when
+ * the mouse is moving over them.
+ *
+ * @param b The new rollover property.
*/
- public int getComponentIndex(Component component) {
- return 0; // TODO
+ public void setRollover(boolean b)
+ {
+ if (b != rollover)
+ {
+ rollover = b;
+ firePropertyChange(ROLLOVER_CHANGED_PROPERTY, ! rollover, rollover);
+ revalidate();
+ repaint();
+ }
+ }
+
+ /**
+ * This method returns the rollover property.
+ *
+ * @return The rollover property.
+ */
+ public boolean isRollover()
+ {
+ return rollover;
+ }
+
+ /**
+ * This method returns the index of the given component.
+ *
+ * @param component The component to find.
+ *
+ * @return The index of the given component.
+ */
+ public int getComponentIndex(Component component)
+ {
+ Component[] components = getComponents();
+ if (components == null)
+ return -1;
+
+ for (int i = 0; i < components.length; i++)
+ if (components[i] == component)
+ return i;
+
+ return -1;
} // getComponentIndex()
/**
- * getComponentAtIndex
- * @param index TODO
- * @returns Component
+ * This method returns the component at the given index.
+ *
+ * @param index The index of the component.
+ *
+ * @return The component at the given index.
*/
- public Component getComponentAtIndex(int index) {
- return null; // TODO
+ public Component getComponentAtIndex(int index)
+ {
+ return getComponent(index);
} // getComponentAtIndex()
/**
- * getMargin
- * @returns Insets
+ * This method returns the margin property.
+ *
+ * @return The margin property.
*/
- public Insets getMargin() {
- return null; // TODO
+ public Insets getMargin()
+ {
+ return margin;
} // getMargin()
/**
- * setMargin
- * @param margin TODO
+ * This method sets the margin property. The margin property determines the
+ * extra space between the children components of the JToolBar and the
+ * border.
+ *
+ * @param margin The margin property.
*/
- public void setMargin(Insets margin) {
- // TODO
+ public void setMargin(Insets margin)
+ {
+ if ((this.margin != null && margin == null)
+ || (this.margin == null && margin != null)
+ || (margin != null && this.margin != null
+ && (margin.left != this.margin.left
+ || margin.right != this.margin.right || margin.top != this.margin.top
+ || margin.bottom != this.margin.bottom)))
+ {
+ Insets oldMargin = this.margin;
+ this.margin = margin;
+ firePropertyChange(MARGIN_CHANGED_PROPERTY, oldMargin, this.margin);
+ revalidate();
+ repaint();
+ }
} // setMargin()
/**
- * isBorderPainted
- * @returns boolean
+ * This method returns the borderPainted property.
+ *
+ * @return The borderPainted property.
*/
- public boolean isBorderPainted() {
- return false; // TODO
+ public boolean isBorderPainted()
+ {
+ return paintBorder;
} // isBorderPainted()
/**
- * setBorderPainted
- * @param painted TODO
+ * This method sets the borderPainted property. If set to false, the border
+ * will not be painted.
+ *
+ * @param painted Whether the border will be painted.
*/
- public void setBorderPainted(boolean painted) {
- // TODO
+ public void setBorderPainted(boolean painted)
+ {
+ if (painted != paintBorder)
+ {
+ paintBorder = painted;
+ firePropertyChange(BORDER_PAINTED_CHANGED_PROPERTY, ! paintBorder,
+ paintBorder);
+ repaint();
+ }
} // setBorderPainted()
/**
- * isFloatable
- * @returns boolean
+ * This method returns the floatable property.
+ *
+ * @return The floatable property.
*/
- public boolean isFloatable() {
- return false; // TODO
+ public boolean isFloatable()
+ {
+ return floatable;
} // isFloatable()
/**
- * setFloatable
- * @param floatable TODO
+ * This method sets the floatable property. If set to false, the JToolBar
+ * cannot be dragged.
+ *
+ * @param floatable Whether the JToolBar can be dragged.
*/
- public void setFloatable(boolean floatable) {
- // TODO
+ public void setFloatable(boolean floatable)
+ {
+ if (floatable != this.floatable)
+ {
+ this.floatable = floatable;
+ firePropertyChange(FLOATABLE_CHANGED_PROPERTY, ! floatable, floatable);
+ }
} // setFloatable()
/**
- * getOrientation
- * @returns int
+ * This method returns the orientation of the JToolBar.
+ *
+ * @return The orientation of the JToolBar.
*/
- public int getOrientation() {
- return this.orientation;
+ public int getOrientation()
+ {
+ return orientation;
} // getOrientation()
/**
- * setLayout
- * @param mgr
+ * This method sets the layout manager to be used with the JToolBar.
+ *
+ * @param mgr The Layout Manager used with the JToolBar.
*/
- public void setLayout(LayoutManager mgr) {
+ public void setLayout(LayoutManager mgr)
+ {
super.setLayout(mgr);
+ revalidate();
+ repaint();
} // setLayout()
/**
- * setOrientation
- * @param orientation
+ * This method sets the orientation property for JToolBar.
+ *
+ * @param orientation The new orientation for JToolBar.
+ *
+ * @throws IllegalArgumentException If the orientation is not HORIZONTAL or
+ * VERTICAL.
*/
- public void setOrientation(int orientation) {
+ public void setOrientation(int orientation)
+ {
if (orientation != HORIZONTAL && orientation != VERTICAL)
- throw new IllegalArgumentException(orientation + " is not a legal orientation");
+ throw new IllegalArgumentException(orientation
+ + " is not a legal orientation");
if (orientation != this.orientation)
{
int oldOrientation = this.orientation;
this.orientation = orientation;
firePropertyChange(ORIENTATION_CHANGED_PROPERTY, oldOrientation,
this.orientation);
+ revalidate();
+ repaint();
}
} // setOrientation()
/**
- * addSeparator
+ * This method adds a Separator of default size to the JToolBar.
*/
- public void addSeparator() {
- // TODO
+ public void addSeparator()
+ {
+ add(new Separator());
} // addSeparator()
/**
- * addSeparator
- * @param size TODO
+ * This method adds a Separator with the given size to the JToolBar.
+ *
+ * @param size The size of the Separator.
*/
- public void addSeparator(Dimension size) {
- // TODO
+ public void addSeparator(Dimension size)
+ {
+ add(new Separator(size));
} // addSeparator()
/**
- * createActionComponent
- * @param action TODO
- * @returns JButton
+ * This method is used to create JButtons which can be added to the JToolBar
+ * for the given action.
+ *
+ * @param action The action to create a JButton for.
+ *
+ * @return The JButton created from the action.
*/
- protected JButton createActionComponent(Action action) {
- return null; // TODO
+ protected JButton createActionComponent(Action action)
+ {
+ return new JButton(action);
} // createActionComponent()
/**
- * createActionChangeListener
- * @param button TODO
- * @returns PropertyChangeListener
+ * This method creates a pre-configured PropertyChangeListener which updates
+ * the control as changes are made to the Action. However, this is no
+ * longer the recommended way of adding Actions to Containers. As such,
+ * this method returns null.
+ *
+ * @param button The JButton to configure a PropertyChangeListener for.
+ *
+ * @return null.
*/
- protected PropertyChangeListener createActionChangeListener(JButton button) {
- return null; // TODO
+ protected PropertyChangeListener createActionChangeListener(JButton button)
+ {
+ // XXX: As specified, this returns null. But seems kind of strange, usually deprecated methods don't just return null, verify!
+ return null;
} // createActionChangeListener()
/**
- * addImpl
- * @param component TODO
- * @param constraints TODO
- * @param index TODO
- */
- /*
- protected void addImpl(Component component, Object constraints, int index) {
- // TODO
- } // addImpl()
+ * This method overrides Container's addImpl method. If a JButton is added,
+ * it is disabled.
+ *
+ * @param component The Component to add.
+ * @param constraints The Constraints placed on the component.
+ * @param index The index to place the Component at.
*/
+ protected void addImpl(Component component, Object constraints, int index)
+ {
+ // XXX: Sun says disable button but test cases show otherwise.
+ super.addImpl(component, constraints, index);
+ } // addImpl()
+
/**
- * paramString
- * @returns String
+ * This method returns a String description of the JToolBar.
+ *
+ * @return A String description of the JToolBar.
*/
- protected String paramString() {
- return null; // TODO
+ protected String paramString()
+ {
+ return "JToolBar";
} // paramString()
/**
* getAccessibleContext
+ *
* @return AccessibleContext
*/
public AccessibleContext getAccessibleContext()