JavaEmbeddedFrameView.st
changeset 384 9c0f24e91237
parent 318 8720093188f7
child 397 ff55215c1eac
--- a/JavaEmbeddedFrameView.st	Sat Oct 17 12:56:52 1998 +0000
+++ b/JavaEmbeddedFrameView.st	Sat Oct 17 12:58:55 1998 +0000
@@ -2,7 +2,7 @@
 	instanceVariableNames:'codeURL codeBaseURL documentURL archiveURL parameterDictionary
 		embeddedAppletFrame applet appletID appletThread
 		infoDisplayReceiver autoSetupApplet autoStartApplet
-		autoDestroyApplet'
+		autoDestroyApplet isNS40'
 	classVariableNames:'NextSequentialAppletID'
 	poolDictionaries:''
 	category:'Java-Views-Support'
@@ -89,51 +89,117 @@
 !JavaEmbeddedFrameView methodsFor:'applet control'!
 
 appletDESTROY
+    |ev|
+
+    isNS40 ifTrue:[
+        ev := (Java classForName:'netscape.applet.AppletEvent') basicNew.
+        ev perform:#'<init>(I)V' with:(embeddedAppletFrame class instVarNamed:'APPLET_DESTROY').
+        embeddedAppletFrame
+            perform:#'sendEvent(Lnetscape/applet/NEvent;)V'
+            with:ev.
+        ^ self
+    ].
     embeddedAppletFrame
         perform:#'sendEvent(I)V' 
         with:(embeddedAppletFrame class instVarNamed:'APPLET_DESTROY').
 
     "Created: / 28.1.1998 / 21:41:45 / cg"
+    "Modified: / 16.10.1998 / 02:50:10 / cg"
 !
 
 appletDISPOSE
+    |ev|
+
+    isNS40 ifTrue:[
+        ev := (Java classForName:'netscape.applet.AppletEvent') basicNew.
+        ev perform:#'<init>(I)V' with:(embeddedAppletFrame class instVarNamed:'APPLET_DISPOSE').
+        embeddedAppletFrame
+            perform:#'sendEvent(Lnetscape/applet/NEvent;)V'
+            with:ev.
+        ^ self
+    ].
     embeddedAppletFrame
         perform:#'sendEvent(I)V' 
         with:(embeddedAppletFrame class instVarNamed:'APPLET_DISPOSE').
 
     "Created: / 28.1.1998 / 21:41:57 / cg"
+    "Modified: / 16.10.1998 / 02:50:26 / cg"
 !
 
 appletINIT
+    |ev|
+
+    isNS40 ifTrue:[
+        ev := (Java classForName:'netscape.applet.AppletEvent') basicNew.
+        ev perform:#'<init>(I)V' with:(embeddedAppletFrame class instVarNamed:'APPLET_INIT').
+        embeddedAppletFrame
+            perform:#'sendEvent(Lnetscape/applet/NEvent;)V'
+            with:ev.
+        ^ self
+    ].
     embeddedAppletFrame
         perform:#'sendEvent(I)V' 
         with:(embeddedAppletFrame class instVarNamed:'APPLET_INIT').
 
     "Created: / 28.1.1998 / 21:17:51 / cg"
+    "Modified: / 16.10.1998 / 02:49:46 / cg"
 !
 
 appletLOAD
+    |ev|
+
+    isNS40 ifTrue:[
+        ev := (Java classForName:'netscape.applet.AppletEvent') basicNew.
+        ev perform:#'<init>(I)V' with:(embeddedAppletFrame class instVarNamed:'APPLET_LOAD').
+        embeddedAppletFrame
+            perform:#'sendEvent(Lnetscape/applet/NEvent;)V'
+            with:ev.
+        ^ self
+    ].
     embeddedAppletFrame
         perform:#'sendEvent(I)V' 
         with:(embeddedAppletFrame class instVarNamed:'APPLET_LOAD').
 
     "Created: / 28.1.1998 / 21:17:37 / cg"
+    "Modified: / 16.10.1998 / 02:49:16 / cg"
 !
 
 appletSTART
+    |ev|
+
+    isNS40 ifTrue:[
+        ev := (Java classForName:'netscape.applet.AppletEvent') basicNew.
+        ev perform:#'<init>(I)V' with:(embeddedAppletFrame class instVarNamed:'APPLET_START').
+        embeddedAppletFrame
+            perform:#'sendEvent(Lnetscape/applet/NEvent;)V'
+            with:ev.
+        ^ self
+    ].
     embeddedAppletFrame
         perform:#'sendEvent(I)V' 
         with:(embeddedAppletFrame class instVarNamed:'APPLET_START').
 
     "Created: / 28.1.1998 / 21:18:01 / cg"
+    "Modified: / 16.10.1998 / 02:51:07 / cg"
 !
 
 appletSTOP
+    |ev|
+
+    isNS40 ifTrue:[
+        ev := (Java classForName:'netscape.applet.AppletEvent') basicNew.
+        ev perform:#'<init>(I)V' with:(embeddedAppletFrame class instVarNamed:'APPLET_STOP').
+        embeddedAppletFrame
+            perform:#'sendEvent(Lnetscape/applet/NEvent;)V'
+            with:ev.
+        ^ self
+    ].
     embeddedAppletFrame
         perform:#'sendEvent(I)V' 
         with:(embeddedAppletFrame class instVarNamed:'APPLET_STOP').
 
     "Created: / 28.1.1998 / 21:41:33 / cg"
+    "Modified: / 16.10.1998 / 02:50:58 / cg"
 !
 
 autoDestroyApplet:aBoolean
@@ -302,7 +368,7 @@
 
 setupAppletFrame
     |jMozillaAppletContextClass appletContext
-     jEmbeddedAppletFrameClass 
+     jEmbeddedAppletFrameClass jDerivedAppletFrameClass
      toolkit peer attribs id
      jCodeBaseURL jDocumentURL jArchiveURL|
 
@@ -356,7 +422,16 @@
         self warn:'no netscape.applet.EmbeddedAppletFrame class'.
         ^ false
     ].
-    embeddedAppletFrame := jEmbeddedAppletFrameClass new.
+    jDerivedAppletFrameClass := Java classForName:'netscape.applet.DerivedAppletFrame'.
+    jDerivedAppletFrameClass notNil ifTrue:[
+        "/ ns4.0
+        embeddedAppletFrame := jDerivedAppletFrameClass new.
+        isNS40 := true.
+    ] ifFalse:[
+        "/ ns3.x
+        embeddedAppletFrame := jEmbeddedAppletFrameClass new.
+        isNS40 := false.
+    ].
     embeddedAppletFrame instVarNamed:'pData' put:self.
 
     toolkit := Java classForName:'java.awt.Toolkit'.
@@ -365,26 +440,43 @@
                 perform:#'createFrame(Ljava/awt/Frame;)Ljava/awt/peer/FramePeer;'
                 with:embeddedAppletFrame.
 
-    (embeddedAppletFrame respondsTo:#'<init>(Ljava/net/URL;Ljava/net/URL;Ljava/net/URL;Ljava/util/Hashtable;Lnetscape/applet/MozillaAppletContext;Ljava/lang/Integer;)V')
+    (embeddedAppletFrame respondsTo:#'<init>(Ljava/net/URL;Ljava/net/URL;Ljava/net/URL;Ljava/util/Hashtable;Lnetscape/applet/MozillaAppletContext;Ljava/lang/Integer;Z)V')
     ifTrue:[
-        "/ 3.01 netscape
+        "/ 4.0 netscape
         embeddedAppletFrame 
-            perform:#'<init>(Ljava/net/URL;Ljava/net/URL;Ljava/net/URL;Ljava/util/Hashtable;Lnetscape/applet/MozillaAppletContext;Ljava/lang/Integer;)V'
-            with:jDocumentURL
-            with:jCodeBaseURL
-            with:jArchiveURL
-            with:attribs
-            with:appletContext
-            with:(Java as_Integer:id).
+            perform:#'<init>(Ljava/net/URL;Ljava/net/URL;Ljava/net/URL;Ljava/util/Hashtable;Lnetscape/applet/MozillaAppletContext;Ljava/lang/Integer;Z)V'
+            withArguments:
+                (Array
+                    with:jDocumentURL
+                    with:jCodeBaseURL
+                    with:jArchiveURL
+                    with:attribs
+                    with:appletContext
+                    with:(Java as_Integer:id)
+                    with:0 "/ reloadClasses-boolean
+                ).
     ] ifFalse:[
-        "/ oldStyle netscape
-        embeddedAppletFrame 
-            perform:#'<init>(Ljava/net/URL;Ljava/net/URL;Ljava/util/Hashtable;Lnetscape/applet/MozillaAppletContext;I)V'
-            with:jDocumentURL
-            with:jCodeBaseURL
-            with:attribs
-            with:appletContext
-            with:id.
+        (embeddedAppletFrame respondsTo:#'<init>(Ljava/net/URL;Ljava/net/URL;Ljava/net/URL;Ljava/util/Hashtable;Lnetscape/applet/MozillaAppletContext;Ljava/lang/Integer;)V')
+        ifTrue:[
+            "/ 3.01 netscape
+            embeddedAppletFrame 
+                perform:#'<init>(Ljava/net/URL;Ljava/net/URL;Ljava/net/URL;Ljava/util/Hashtable;Lnetscape/applet/MozillaAppletContext;Ljava/lang/Integer;)V'
+                with:jDocumentURL
+                with:jCodeBaseURL
+                with:jArchiveURL
+                with:attribs
+                with:appletContext
+                with:(Java as_Integer:id).
+        ] ifFalse:[
+            "/ oldStyle netscape
+            embeddedAppletFrame 
+                perform:#'<init>(Ljava/net/URL;Ljava/net/URL;Ljava/util/Hashtable;Lnetscape/applet/MozillaAppletContext;I)V'
+                with:jDocumentURL
+                with:jCodeBaseURL
+                with:attribs
+                with:appletContext
+                with:id.
+        ].
     ].
 
     embeddedAppletFrame instVarNamed:'peer' put:peer.
@@ -396,7 +488,7 @@
     ^ true
 
     "Created: / 28.1.1998 / 21:23:25 / cg"
-    "Modified: / 29.1.1998 / 20:55:00 / cg"
+    "Modified: / 16.10.1998 / 02:40:52 / cg"
 ! !
 
 !JavaEmbeddedFrameView methodsFor:'resizing'!
@@ -424,5 +516,5 @@
 !JavaEmbeddedFrameView class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaEmbeddedFrameView.st,v 1.7 1998/02/06 01:55:31 cg Exp $'
+    ^ '$Header: /home/jv/Projects/SmalltalkX/repositories/cvs/stx/libjava/JavaEmbeddedFrameView.st,v 1.8 1998/10/17 12:58:55 cg Exp $'
 ! !