Overview Package Class Use Source Tree Index Deprecated About
GNU Classpath (0.95)
Frames | No Frames

Source for java.awt.PopupMenu

 1:  /* PopupMenu.java -- An AWT popup menu
 2:  Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
 3: 
 4: This file is part of GNU Classpath.
 5: 
 6: GNU Classpath is free software; you can redistribute it and/or modify
 7: it under the terms of the GNU General Public License as published by
 8: the Free Software Foundation; either version 2, or (at your option)
 9: any later version.
 10: 
 11: GNU Classpath is distributed in the hope that it will be useful, but
 12: WITHOUT ANY WARRANTY; without even the implied warranty of
 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 14: General Public License for more details.
 15: 
 16: You should have received a copy of the GNU General Public License
 17: along with GNU Classpath; see the file COPYING. If not, write to the
 18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 19: 02110-1301 USA.
 20: 
 21: Linking this library statically or dynamically with other modules is
 22: making a combined work based on this library. Thus, the terms and
 23: conditions of the GNU General Public License cover the whole
 24: combination.
 25: 
 26: As a special exception, the copyright holders of this library give you
 27: permission to link this library with independent modules to produce an
 28: executable, regardless of the license terms of these independent
 29: modules, and to copy and distribute the resulting executable under
 30: terms of your choice, provided that you also meet, for each linked
 31: independent module, the terms and conditions of the license of that
 32: module. An independent module is a module which is not derived from
 33: or based on this library. If you modify this library, you may extend
 34: this exception to your version of the library, but you are not
 35: obligated to do so. If you do not wish to do so, delete this
 36: exception statement from your version. */
 37: 
 38: 
 39:  package java.awt;
 40: 
 41:  import java.awt.peer.PopupMenuPeer;
 42: 
 43:  import javax.accessibility.AccessibleContext;
 44:  import javax.accessibility.AccessibleRole;
 45: 
 46:  /**
 47:  * This class implement an AWT popup menu widget
 48:  *
 49:  * @author Aaron M. Renn (arenn@urbanophile.com)
 50:  */
 51:  public class PopupMenu extends Menu
 52: {
 53: 
 54:  /*
 55:  * Static Variables
 56:  */
 57: 
 58:  /**
 59:  * The number used to generate the name returned by getName.
 60:  */
 61:  private static transient long next_popup_number;
 62: 
 63:  // Serialization Constant
 64:  private static final long serialVersionUID = - 4620452533522760060L;
 65: 
 66:  /*************************************************************************/
 67: 
 68:  /*
 69:  * Constructors
 70:  */
 71: 
 72:  /**
 73:  * Initializes a new instance of <code>PopupMenu</code>.
 74:  *
 75:  * @exception HeadlessException If GraphicsEnvironment.isHeadless()
 76:  * returns true.
 77:  */
 78:  public
 79:  PopupMenu()
 80: {
 81: }
 82: 
 83:  /*************************************************************************/
 84: 
 85:  /**
 86:  * Initializes a new instance of <code>PopupMenu</code> with the specified
 87:  * label.
 88:  *
 89:  * @param label The label for this popup menu.
 90:  *
 91:  * @exception HeadlessException If GraphicsEnvironment.isHeadless()
 92:  * returns true.
 93:  */
 94:  public
 95:  PopupMenu(String label)
 96: {
 97:  super(label);
 98: 
 99:  if (GraphicsEnvironment.isHeadless())
 100:  throw new HeadlessException ();
 101: }
 102: 
 103:  /*************************************************************************/
 104: 
 105:  /*
 106:  * Instance Methods
 107:  */
 108: 
 109:  /**
 110:  * Creates this object's native peer.
 111:  */
 112:  public void
 113:  addNotify()
 114: {
 115:  if (peer == null)
 116:  peer = getToolkit ().createPopupMenu (this);
 117:  super.addNotify ();
 118: }
 119: 
 120:  /*************************************************************************/
 121: 
 122:  /**
 123:  * Displays this popup menu at the specified coordinates relative to
 124:  * the specified component.
 125:  *
 126:  * @param component The component to which the display coordinates are relative.
 127:  * @param x The X coordinate of the menu.
 128:  * @param y The Y coordinate of the menu.
 129:  */
 130:  public void
 131:  show(Component component, int x, int y)
 132: {
 133:  if (getPeer() == null)
 134:  this.addNotify();
 135:  PopupMenuPeer pmp = (PopupMenuPeer)getPeer();
 136:  if (pmp != null)
 137:  {
 138:  /* XXX
 139:  Event e = new Event (component, Event.ACTION_EVENT, component);
 140:  e.x = x;
 141:  e.y = y;*/
 142:  pmp.show (component, x, y);
 143:  }
 144: }
 145: 
 146:  protected class AccessibleAWTPopupMenu extends AccessibleAWTMenu
 147:  {
 148:  private static final long serialVersionUID = -4282044795947239955L;
 149: 
 150:  protected AccessibleAWTPopupMenu()
 151:  {
 152:  }
 153:  
 154:  public AccessibleRole getAccessibleRole()
 155:  {
 156:  return AccessibleRole.POPUP_MENU;
 157:  }
 158:  
 159:  }
 160:  
 161:  /**
 162:  * Gets the AccessibleContext associated with this <code>PopupMenu</code>.
 163:  * The context is created, if necessary.
 164:  *
 165:  * @return the associated context
 166:  */
 167:  public AccessibleContext getAccessibleContext()
 168:  {
 169:  /* Create the context if this is the first request */
 170:  if (accessibleContext == null)
 171:  accessibleContext = new AccessibleAWTPopupMenu();
 172:  return accessibleContext;
 173:  }
 174:  
 175:  /**
 176:  * Generate a unique name for this <code>PopupMenu</code>.
 177:  *
 178:  * @return A unique name for this <code>PopupMenu</code>.
 179:  */
 180:  String generateName()
 181:  {
 182:  return "popup" + getUniqueLong();
 183:  }
 184: 
 185:  private static synchronized long getUniqueLong()
 186:  {
 187:  return next_popup_number++;
 188:  }
 189: 
 190: } // class PopupMenu
Overview Package Class Use Source Tree Index Deprecated About
GNU Classpath (0.95)

AltStyle によって変換されたページ (->オリジナル) /