Frames | No Frames |
1: /* SwingMenuItemPeer.java -- A Swing based peer for AWT menu items 2: Copyright (C) 2006 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: package gnu.java.awt.peer.swing; 39: 40: import java.awt.Font; 41: import java.awt.MenuItem; 42: import java.awt.Toolkit; 43: import java.awt.event.ActionEvent; 44: import java.awt.event.ActionListener; 45: import java.awt.peer.MenuItemPeer; 46: 47: import javax.swing.JMenuItem; 48: 49: /** 50: * A Swing based peer for the AWT MenuItem. 51: * 52: * @author Roman Kennke (kennke@aicas.com) 53: */ 54: public class SwingMenuItemPeer 55: implements MenuItemPeer 56: { 57: /** 58: * The AWT menu item. 59: */ 60: MenuItem awtMenuItem; 61: 62: /** 63: * The Swing menu item. 64: */ 65: JMenuItem menuItem; 66: 67: /** 68: * Receives ActionEvents from the Swing menu item and forwards them 69: * to the ActionListeners of the AWT MenuItem. 70: * 71: * @author Roman Kennke (kennke@aicas.com) 72: */ 73: private class SwingMenuItemListener implements ActionListener 74: { 75: 76: /** 77: * Receives notification when the action has been performed. 78: * 79: * @param event the action event 80: */ 81: public void actionPerformed(ActionEvent event) 82: { 83: event.setSource(awtMenuItem); 84: Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); 85: } 86: 87: } 88: 89: /** 90: * Creates a new instance of <code>SwingMenuItemPeer</code>. 91: * 92: * @param awtMenuItem the AWT menu item 93: */ 94: public SwingMenuItemPeer(MenuItem awtMenuItem) 95: { 96: this.awtMenuItem = awtMenuItem; 97: menuItem = new JMenuItem(awtMenuItem.getLabel()); 98: menuItem.addActionListener(new SwingMenuItemListener()); 99: } 100: 101: /** 102: * Disables the menu item. 103: */ 104: public void disable() 105: { 106: menuItem.setEnabled(false); 107: } 108: 109: /** 110: * Enables the menu item. 111: */ 112: public void enable() 113: { 114: menuItem.setEnabled(true); 115: } 116: 117: /** 118: * Sets the enabled state to <code>enabled</code>. 119: * 120: * @param enabled if the menu item should be enabled or not 121: */ 122: public void setEnabled(boolean enabled) 123: { 124: menuItem.setEnabled(enabled); 125: } 126: 127: /** 128: * Sets the label for the menu item. 129: * 130: * @param text the label to set 131: */ 132: public void setLabel(String text) 133: { 134: menuItem.setText(text); 135: } 136: 137: /** 138: * Disposes the menu item. This releases any reference to the Swing and AWT 139: * menu item. 140: */ 141: public void dispose() 142: { 143: menuItem = null; 144: awtMenuItem = null; 145: } 146: 147: /** 148: * Sets the font for this menu item. 149: * 150: * @param font the font to set 151: */ 152: public void setFont(Font font) 153: { 154: menuItem.setFont(font); 155: } 156: 157: }