--- a/jdk/src/solaris/classes/sun/awt/motif/MMenuItemPeer.java Thu Sep 11 11:25:48 2008 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,190 +0,0 @@
-/*
- * Copyright 1995-2003 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-package sun.awt.motif;
-
-import java.awt.*;
-import java.awt.peer.*;
-import java.awt.event.ActionEvent;
-import sun.awt.AppContext;
-
-class MMenuItemPeer implements MenuItemPeer {
- long pData;
- long jniGlobalRef;
- boolean isCheckbox = false;
- MenuItem target;
- boolean nativeCreated = false;
-
- private boolean disposed = false;
-
- static {
- initIDs();
- }
-
- /**
- * Initialize JNI field and method IDs
- */
- private static native void initIDs();
-
- native void createMenuItem(MMenuPeer parent);
-
- void create(MMenuPeer parent) {
- if (parent.nativeCreated) {
- createMenuItem(parent);
- nativeCreated = true;
- setEnabled(target.isEnabled());
- }
- }
-
- protected MMenuItemPeer() {
- }
-
- MMenuItemPeer(MenuItem target) {
- this.target = target;
- MMenuPeer parent = (MMenuPeer) MToolkit.targetToPeer(getParent_NoClientCode(target));
- create(parent);
- }
-
- static native MenuContainer getParent_NoClientCode(MenuComponent menuComponent);
-
- protected void finalize() throws Throwable {
- dispose();
- super.finalize();
- }
-
- public void setEnabled(boolean b) {
- if (b) {
- enable();
- } else {
- disable();
- }
- }
-
- public void setLabel(String label) {
- if (!nativeCreated) {
- return;
- }
- pSetLabel(label);
- // Fix for bug 4234266 AWT component : MenuItem throw NullPointer exception.
- MenuShortcut sc = target.getShortcut();
- setShortcut(sc != null ? sc.toString() : null );
- }
-
- public void setShortcut(String shortCut) {
- if (!nativeCreated) {
- return;
- }
- pSetShortcut(shortCut);
- }
-
- native void pSetLabel(String label);
- native void pSetShortcut(String shortCut);
-
- /**
- * DEPRECATED but, for now, called by setEnabled(boolean).
- */
- public void enable() {
- if (!nativeCreated) {
- return;
- }
- pEnable();
- }
- native void pEnable();
-
- /**
- * DEPRECATED but, for now, called by setEnabled(boolean).
- */
- public void disable() {
- if (!nativeCreated) {
- return;
- }
- pDisable();
- }
- native void pDisable();
-
- private void destroyNativeWidgetImpl() {
- if (nativeCreated) {
- pDispose();
- nativeCreated = false;
- }
- }
-
- void destroyNativeWidget() {
- // We do not need to synchronize this method because the caller
- // always holds the tree lock
-
- destroyNativeWidgetImpl();
- }
-
- /*
- * Subclasses should override disposeImpl() instead of dispose(). Client
- * code should always invoke dispose(), never disposeImpl().
- */
- protected void disposeImpl() {
- // Don't call destroyNativeWidget() because on a Menu, this will
- // cause a traversal of all the menu's MenuItems. This traversal was
- // already done once by java.awt.Menu.removeNotify().
-
- destroyNativeWidgetImpl();
- MToolkit.targetDisposedPeer(target, this);
- }
- public final void dispose() {
- boolean call_disposeImpl = false;
-
- if (!disposed) {
- synchronized (this) {
- if (!disposed) {
- disposed = call_disposeImpl = true;
- }
- }
- }
-
- if (call_disposeImpl) {
- disposeImpl();
- }
- }
-
- native void pDispose();
-
- void postEvent(AWTEvent event) {
- MToolkit.postEvent(MToolkit.targetToAppContext(target), event);
- }
-
- // NOTE: This method may be called by privileged threads.
- // DO NOT INVOKE CLIENT CODE ON THIS THREAD!
- public void action(final long when, final int modifiers) {
-
- MToolkit.executeOnEventHandlerThread(target, new Runnable() {
- public void run() {
- postEvent(new ActionEvent(target, ActionEvent.ACTION_PERFORMED,
- target.getActionCommand(), when,
- modifiers));
- }
- });
- }
-
- // Needed for MenuComponentPeer.
- public void setFont(Font f) {
- }
-}