diff options
| author | Michael Koch <konqueror@gmx.de> | 2004-07-17 07:17:02 +0000 |
|---|---|---|
| committer | Michael Koch <konqueror@gmx.de> | 2004-07-17 07:17:02 +0000 |
| commit | b8e35f9af9d11b4b897744a9984d70666a98ccdb (patch) | |
| tree | 1da7f5659b4c1f5166f72e1c878f6fcf0e7e9234 /gnu/java/awt/EmbeddedWindow.java | |
| parent | 1e758169bf04871da6f22266944479a9e54381c6 (diff) | |
| download | classpath-b8e35f9af9d11b4b897744a9984d70666a98ccdb.tar.gz | |
2004-07-17 Michael Koch <konqueror@gmx.de>
* configure.ac
(AC_CONFIG_FILES): Removed native/jni/java-awt/Makefile.
* gnu/java/awt/EmbeddedWindow.java
(static): Removed.
(addNotify): Set peer via reflection.
(setWindowPeer): Removed.
* native/jni/Makefile.am
(SUBDIRS): Removed java-awt.
(DIST_SUBDIRS): Likewise.
* native/jni/java-awt/.cvsignore,
native/jni/java-awt/Makefile.am,
native/jni/java-awt/gnu_java_awt_EmbeddedWindow.c:
Removed.
Diffstat (limited to 'gnu/java/awt/EmbeddedWindow.java')
| -rw-r--r-- | gnu/java/awt/EmbeddedWindow.java | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/gnu/java/awt/EmbeddedWindow.java b/gnu/java/awt/EmbeddedWindow.java index f938f55b7..5f1d71a80 100644 --- a/gnu/java/awt/EmbeddedWindow.java +++ b/gnu/java/awt/EmbeddedWindow.java @@ -40,23 +40,20 @@ package gnu.java.awt; import gnu.classpath.Configuration; import gnu.java.awt.peer.EmbeddedWindowPeer; + +import java.awt.Component; import java.awt.Frame; import java.awt.Toolkit; +import java.lang.reflect.Field; /** * Represents an AWT window that can be embedded into another * application. * - * @author Michael Koch <konqueror@gmx.de> + * @author Michael Koch (konqueror@gmx.de) */ public class EmbeddedWindow extends Frame { - static - { - if (Configuration.INIT_LOAD_LIBRARY) - System.loadLibrary("javaawt"); - } - private long handle; /** @@ -93,14 +90,25 @@ public class EmbeddedWindow extends Frame throw new UnsupportedOperationException ("Embedded windows are not supported by the current peers: " + tk.getClass()); - setWindowPeer (((EmbeddedWindowSupport) tk).createEmbeddedWindow (this)); + // Circumvent the package-privateness of the AWT internal + // java.awt.Component.peer member variable. + try + { + Field peerField = Component.class.getDeclaredField("peer"); + peerField.set(this, ((EmbeddedWindowSupport) tk).createEmbeddedWindow (this)); + } + catch (IllegalAccessException e) + { + // This should never happen. + } + catch (NoSuchFieldException e) + { + // This should never happen. + } + super.addNotify(); } - // This method is only made native to circumvent the package-privateness of - // an AWT internal java.awt.Component.peer member variable. - native void setWindowPeer (EmbeddedWindowPeer peer); - /** * If the native peer for this embedded window has been created, * then setHandle will embed the window. If not, setHandle tells |
