OSDN Git Service

Merged gcj-eclipse branch to trunk.
[pf3gnuchains/gcc-fork.git] / libjava / classpath / java / awt / Menu.java
index f900d92..cef04a3 100644 (file)
@@ -54,38 +54,28 @@ import javax.accessibility.AccessibleRole;
 public class Menu extends MenuItem implements MenuContainer, Serializable
 {
 
 public class Menu extends MenuItem implements MenuContainer, Serializable
 {
 
-/*
- * Static Variables
- */
-
-/**
- * The number used to generate the name returned by getName.
- */
-private static transient long next_menu_number;
-
-// Serialization Constant
-private static final long serialVersionUID = -8809584163345499784L;
-
-/*************************************************************************/
+  /**
+   * The number used to generate the name returned by getName.
+   */
+  private static transient long next_menu_number;
 
 
-/*
- * Instance Variables
- */
+  // Serialization Constant
+  private static final long serialVersionUID = -8809584163345499784L;
 
 
-/**
-  * @serial The actual items in the menu
-  */
-private Vector items = new Vector();
+  /**
+    * @serial The actual items in the menu
+    */
+  private Vector items = new Vector();
 
 
-/**
-  * @serial Flag indicating whether or not this menu is a tear off
-  */
-private boolean tearOff;
+  /**
+   * @serial Flag indicating whether or not this menu is a tear off
+   */
+  private boolean tearOff;
 
 
-/**
-  * @serial Indicates whether or not this is a help menu.
-  */
-private boolean isHelpMenu;
+  /**
+   * @serial Indicates whether or not this is a help menu.
+   */
+  private boolean isHelpMenu;
 
   /*
    * @serial Unused in this implementation, but present in Sun's
 
   /*
    * @serial Unused in this implementation, but present in Sun's
@@ -93,371 +83,316 @@ private boolean isHelpMenu;
    */
   private int menuSerializedDataVersion = 1;
 
    */
   private int menuSerializedDataVersion = 1;
 
-static final transient String separatorLabel = "-";
-
-/*************************************************************************/
-
-/*
- * Constructors
- */
-
-/**
-  * Initializes a new instance of <code>Menu</code> with no label and that
-  * is not a tearoff;
-  *
-  * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
-  */
-public
-Menu()
-{
-}
-
-/*************************************************************************/
-
-/**
-  * Initializes a new instance of <code>Menu</code> that is not a tearoff and
-  * that has the specified label.
-  *
-  * @param label The menu label.
-  *
-  * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
-  */
-public
-Menu(String label)
-{
-  this(label, false);
-}
-
-/*************************************************************************/
-
-/**
-  * Initializes a new instance of <code>Menu</code> with the specified
-  * label and tearoff status.
-  *
-  * @param label The label for this menu
-  * @param isTearOff <code>true</code> if this menu is a tear off menu,
-  * <code>false</code> otherwise.
-  *
-  * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
-  */
-public
-Menu(String label, boolean isTearOff)
-{
-  super(label);
+  static final transient String separatorLabel = "-";
 
 
-  tearOff = isTearOff;
+  /**
+   * Initializes a new instance of <code>Menu</code> with no label and that
+   * is not a tearoff;
+   *
+   * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
+   */
+  public Menu()
+  {
+  }
 
 
-  if (label.equals("Help"))
-    isHelpMenu = true;
+  /**
+   * Initializes a new instance of <code>Menu</code> that is not a tearoff and
+   * that has the specified label.
+   *
+   * @param label The menu label.
+   *
+   * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
+   */
+  public Menu(String label)
+  {
+    this(label, false);
+  }
 
 
-  if (GraphicsEnvironment.isHeadless())
-    throw new HeadlessException ();
-}
+  /**
+   * Initializes a new instance of <code>Menu</code> with the specified
+   * label and tearoff status.
+   *
+   * @param label The label for this menu
+   * @param isTearOff <code>true</code> if this menu is a tear off menu,
+   * <code>false</code> otherwise.
+   *
+   * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true.
+   */
+  public Menu(String label, boolean isTearOff)
+  {
+    super(label);
 
 
-/*************************************************************************/
+    tearOff = isTearOff;
 
 
-/*
- * Instance Methods
- */
+    if (label.equals("Help"))
+      isHelpMenu = true;
 
 
-/**
-  * Tests whether or not this menu is a tearoff.
-  *
-  * @return <code>true</code> if this menu is a tearoff, <code>false</code>
-  * otherwise.
-  */
-public boolean
-isTearOff()
-{
-  return(tearOff);
-}
+    if (GraphicsEnvironment.isHeadless())
+      throw new HeadlessException();
+  }
 
 
-/*************************************************************************/
+  /**
+   * Tests whether or not this menu is a tearoff.
+   *
+   * @return <code>true</code> if this menu is a tearoff, <code>false</code>
+   * otherwise.
+   */
+  public boolean isTearOff()
+  {
+    return(tearOff);
+  }
 
 
-/**
-  * Returns the number of items in this menu.
-  *
-  * @return The number of items in this menu.
-  */
-public int
-getItemCount()
-{
-  return countItems ();
-}
+  /**
+   * Returns the number of items in this menu.
+   *
+   * @return The number of items in this menu.
+   */
+  public int getItemCount()
+  {
+    return countItems();
+  }
 
 
-/**
- * Returns the number of items in this menu.
- *
- * @return The number of items in this menu.
- *
- * @deprecated As of JDK 1.1, replaced by getItemCount().
- */
-public int countItems ()
-{
-  return items.size ();
-}
+  /**
  * Returns the number of items in this menu.
  *
  * @return The number of items in this menu.
  *
  * @deprecated As of JDK 1.1, replaced by getItemCount().
  */
+  public int countItems()
+  {
+    return items.size();
+  }
  
  
-/*************************************************************************/
-
-/**
-  * Returns the item at the specified index.
-  *
-  * @return The item at the specified index.
-  *
-  * @exception ArrayIndexOutOfBoundsException If the index value is not valid.
-  */
-public MenuItem
-getItem(int index)
-{
-  return((MenuItem)items.elementAt(index));
-}
-
-/*************************************************************************/
-
-/**
-  * Adds the specified item to this menu.  If it was previously part of
-  * another menu, it is first removed from that menu.
-  *
-  * @param item The new item to add.
-  *
-  * @return The item that was added.
-  */
-public MenuItem
-add(MenuItem item)
-{
-  MenuContainer parent = item.getParent();
-  if (parent != null)
-    parent.remove(item);
-
-  items.addElement(item);
-  item.setParent(this);
+  /**
+   * Returns the item at the specified index.
+   * 
+   * @param index  the item index.
+   *
+   * @return The item at the specified index.
+   *
+   * @exception ArrayIndexOutOfBoundsException If the index value is not valid.
+   */
+  public MenuItem getItem(int index)
+  {
+    return((MenuItem) items.elementAt(index));
+  }
 
 
-  if (peer != null)
-    {
-      item.addNotify();
-      MenuPeer mp = (MenuPeer) peer;
-      mp.addItem(item);
-    }
+  /**
+   * Adds the specified item to this menu.  If it was previously part of
+   * another menu, it is first removed from that menu.
+   *
+   * @param item The new item to add.
+   *
+   * @return The item that was added.
+   */
+  public MenuItem add(MenuItem item)
+  {
+    MenuContainer parent = item.getParent();
+    if (parent != null)
+      parent.remove(item);
 
 
-  return item;
-}
+    items.addElement(item);
+    item.setParent(this);
 
 
-/*************************************************************************/
+    if (peer != null)
+      {
+        item.addNotify();
+        MenuPeer mp = (MenuPeer) peer;
+        mp.addItem(item);
+      }
 
 
-/**
-  * Add an item with the specified label to this menu.
-  *
-  * @param label The label of the menu item to add.
-  */
-public void
-add(String label)
-{
-  add(new MenuItem(label));
-}
-
-/*************************************************************************/
-
-/**
-  * Inserts the specified menu item into this menu at the specified index.
-  *
-  * @param item The menu item to add.
-  * @param index The index of the menu item.
-  *
-  * @exception IllegalArgumentException If the index is less than zero.
-  * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid.
-  */
-public void
-insert(MenuItem item, int index)
-{
-  if (index < 0)
-    throw new IllegalArgumentException("Index is less than zero");
+    return item;
+  }
 
 
-  int count = getItemCount ();
+  /**
+   * Add an item with the specified label to this menu.
+   *
+   * @param label The label of the menu item to add.
+   */
+  public void add(String label)
+  {
+    add(new MenuItem(label));
+  }
 
 
-  if (index >= count)
-    add(item);
-  else
-    {
-      MenuContainer parent = item.getParent();
-      if (parent != null)
-       parent.remove(item);
+  /**
+   * Inserts the specified menu item into this menu at the specified index.  If
+   * the index is greater than or equal to the number of items already in the
+   * menu, the new item is added as the last item in the menu.
+   *
+   * @param item The menu item to add (<code>null</code> not permitted).
+   * @param index The index of the menu item (>= 0).
+   *
+   * @throws IllegalArgumentException if the index is less than zero.
+   * @throws NullPointerException if <code>item</code> is <code>null</code>.
+   */
+  public void insert(MenuItem item, int index)
+  {
+    if (index < 0)
+      throw new IllegalArgumentException("Index is less than zero");
+
+    int count = getItemCount();
+
+    if (index >= count)
+      add(item);
+    else
+      {
+        MenuContainer parent = item.getParent();
+        if (parent != null)
+          parent.remove(item);
       
       
-      items.insertElementAt(item, index);
-      item.setParent(this);
-
-      MenuPeer peer = (MenuPeer) getPeer();
-      if (peer == null)
-       return;
+        items.insertElementAt(item, index);
+        item.setParent(this);
 
 
-      for (int i = count - 1; i >= index; i--)
-        peer.delItem(i);
+        MenuPeer peer = (MenuPeer) getPeer();
+        if (peer == null)
+          return;
 
 
-      item.addNotify();
-      peer.addItem(item);
+        for (int i = count - 1; i >= index; i--)
+          peer.delItem(i);
 
 
-      for (int i = index; i < count; i++)
-        peer.addItem((MenuItem) items.elementAt (i));
-    }
-
-}
+        item.addNotify();
+        peer.addItem(item);
 
 
-/*************************************************************************/
+        // bear in mind that count is the number of items *before* the new
+        // item was added
+        for (int i = index + 1; i <= count; i++)
+          peer.addItem((MenuItem) items.elementAt(i));
+      }
 
 
-/**
-  * Inserts an item with the specified label into this menu at the specified index.
-  *
-  * @param label The label of the item to add.
-  * @param index The index of the menu item.
-  *
-  * @exception IllegalArgumentException If the index is less than zero.
-  * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid.
-  */
-public void
-insert(String label, int index)
-{
-  insert(new MenuItem(label), index);
-}
-
-/*************************************************************************/
-
-/**
-  * Adds a separator bar at the current menu location.
-  */
-public void
-addSeparator()
-{
-  add(new MenuItem(separatorLabel));
-}
-
-/*************************************************************************/
-
-/**
-  * Inserts a separator bar at the specified index value.
-  *
-  * @param index The index at which to insert a separator bar.
-  *
-  * @exception IllegalArgumentException If the index is less than zero.
-  * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid.
-  */
-public void
-insertSeparator(int index)
-{
-  insert(new MenuItem(separatorLabel), index);
-}
+  }
 
 
-/*************************************************************************/
+  /**
+   * Inserts an item with the specified label into this menu at the specified 
+   * index.  If the index is greater than or equal to the number of items 
+   * already in the menu, the new item is added as the last item in the menu.
+   *
+   * @param label The label of the item to add.
+   * @param index The index of the menu item (>= 0).
+   *
+   * @throws IllegalArgumentException If the index is less than zero.
+   */
+  public void insert(String label, int index)
+  {
+    insert(new MenuItem(label), index);
+  }
 
 
-/**
-  * Deletes the item at the specified index from this menu.
-  *
-  * @param index The index of the item to remove.
-  * 
-  * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid.
-  */
-public synchronized void
-remove(int index)
-{
-  MenuItem item = (MenuItem) items.remove(index);
+  /**
+   * Adds a separator bar at the current menu location.
+   */
+  public void addSeparator()
+  {
+    add(new MenuItem(separatorLabel));
+  }
 
 
-  MenuPeer mp = (MenuPeer) getPeer();
-  if (mp != null)
-    {
-      mp.delItem(index);
-      item.removeNotify();
-    }
-  item.setParent(null);
-}
+  /**
+   * Inserts a separator bar at the specified index value.
+   *
+   * @param index The index at which to insert a separator bar.
+   *
+   * @exception IllegalArgumentException If the index is less than zero.
+   * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid.
+   */
+  public void insertSeparator(int index)
+  {
+    insert(new MenuItem(separatorLabel), index);
+  }
 
 
-/*************************************************************************/
+  /**
+   * Deletes the item at the specified index from this menu.
+   *
+   * @param index The index of the item to remove.
+   * 
+   * @exception ArrayIndexOutOfBoundsException If the index is otherwise invalid.
+   */
+  public synchronized void remove(int index)
+  {
+    MenuItem item = (MenuItem) items.remove(index);
+
+    MenuPeer mp = (MenuPeer) getPeer();
+    if (mp != null)
+      {
+        mp.delItem(index);
+        item.removeNotify();
+      }
+    item.setParent(null);
+  }
 
 
-/**
-  * Removes the specifed item from the menu.  If the specified component
-  * does not exist, this method does nothing.
-  *
-  * @param item The component to remove.
-  */
-public void
-remove(MenuComponent item)
-{
-  int index = items.indexOf(item);
-  if (index == -1)
-    return;
+  /**
+   * Removes the specifed item from the menu.  If the specified component
+   * does not exist, this method does nothing.
+   *
+   * @param item The component to remove.
+   */
+  public void remove(MenuComponent item)
+  {
+    int index = items.indexOf(item);
+    if (index == -1)
+      return;
 
 
-  remove(index);
-}
+    remove(index);
+  }
 
 
-/*************************************************************************/
+  /**
+   * Removes all the elements from this menu.
+   */
+  public synchronized void removeAll()
+  {
+    int count = getItemCount();
+    for(int i = 0; i < count; i++)
+      {
+        // We must always remove item 0.
+        remove(0);
+      }
+  }
 
 
-/**
-  * Removes all the elements from this menu.
-  */
-public synchronized void
-removeAll()
-{
-  int count = getItemCount();
-  for(int i = 0; i < count; i++)
+  /**
+   * Creates the native peer for this object.
+   */
+  public void addNotify()
+  {
+    MenuPeer peer = (MenuPeer) getPeer();
+    if (peer == null)
+      {
+        peer = getToolkit().createMenu(this);
+        setPeer(peer);
+      }
+
+    Enumeration e = items.elements();
+    while (e.hasMoreElements())
     {
     {
-      // We must always remove item 0.
-      remove(0);
+      MenuItem mi = (MenuItem)e.nextElement();
+      mi.addNotify();
+      peer.addItem(mi);
     }
     }
-}
 
 
-/*************************************************************************/
+    super.addNotify();
+  }
 
 
-/**
-  * Creates the native peer for this object.
-  */
-public void
-addNotify()
-{
-  MenuPeer peer = (MenuPeer) getPeer();
-  if (peer == null)
+  /**
+   * Destroys the native peer for this object.
+   */
+  public void removeNotify()
+  {
+    Enumeration e = items.elements();
+    while (e.hasMoreElements())
     {
     {
-      peer = getToolkit().createMenu(this);
-      setPeer(peer);
+      MenuItem mi = (MenuItem) e.nextElement();
+      mi.removeNotify();
     }
     }
-
-  Enumeration e = items.elements();
-  while (e.hasMoreElements())
-  {
-    MenuItem mi = (MenuItem)e.nextElement();
-    mi.addNotify();
-    peer.addItem(mi);
+    super.removeNotify();
   }
 
   }
 
-  super.addNotify ();
-}
-
-/*************************************************************************/
-
-/**
-  * Destroys the native peer for this object.
-  */
-public void
-removeNotify()
-{
-  Enumeration e = items.elements();
-  while (e.hasMoreElements())
+  /**
+   * Returns a debugging string for this menu.
+   *
+   * @return A debugging string for this menu.
+   */
+  public String paramString()
   {
   {
-    MenuItem mi = (MenuItem) e.nextElement();
-    mi.removeNotify();
+    return (",tearOff=" + tearOff + ",isHelpMenu=" + isHelpMenu
+           + super.paramString());
   }
   }
-  super.removeNotify();
-}
-
-/*************************************************************************/
-
-/**
-  * Returns a debugging string for this menu.
-  *
-  * @return A debugging string for this menu.
-  */
-public String
-paramString()
-{
-  return (",tearOff=" + tearOff + ",isHelpMenu=" + isHelpMenu
-         + super.paramString());
-}
 
   /**
    * Basic Accessibility class for Menu.  Details get provided in derived
 
   /**
    * Basic Accessibility class for Menu.  Details get provided in derived