home *** CD-ROM | disk | FTP | other *** search
- package netscape.applet;
-
- import java.net.URL;
- import netscape.application.Application;
- import netscape.util.Hashtable;
- import netscape.util.Vector;
-
- class EmbeddedProgramTaskOwner implements TaskOwner {
- static Vector taskOwners;
- Vector programs;
- EmbeddedProgramOwner programOwner;
- EmbeddedBeanOwner beanOwner;
- boolean programInitialized = false;
-
- EmbeddedProgramTaskOwner(EmbeddedObject var1) {
- if (taskOwners == null) {
- taskOwners = new Vector();
- }
-
- taskOwners.addElement(this);
- if (this.programs == null) {
- this.programs = new Vector();
- }
-
- this.programs.addElement(var1);
- }
-
- int count() {
- return this.programs.count();
- }
-
- void addProgram(EmbeddedObject var1) {
- this.programs.addElement(var1);
- }
-
- void removeProgram(EmbeddedObject var1) {
- this.programs.removeElement(var1);
- if (this.programs.count() == 0) {
- taskOwners.removeElement(this);
- }
-
- }
-
- EmbeddedObject getCurrentProgram() {
- if (this.programs == null) {
- return null;
- } else {
- for(int var2 = 0; var2 < this.programs.size(); ++var2) {
- EmbeddedObject var1 = (EmbeddedObject)this.programs.elementAt(var2);
- if (var1.state == 2) {
- return var1;
- }
- }
-
- return (EmbeddedObject)this.programs.elementAt(0);
- }
- }
-
- EmbeddedObject getProgramForBean(EmbeddedObject var1) {
- if (this.programs == null) {
- return null;
- } else {
- EmbeddedObject var3 = null;
-
- for(int var4 = 0; var4 < this.programs.size(); ++var4) {
- EmbeddedObject var2 = (EmbeddedObject)this.programs.elementAt(var4);
- if (var2.contextID == var1.contextID && var2.task == var1.task) {
- return var2;
- }
-
- if (var2.contextID == 0 && var2.objectID == 0) {
- var3 = var2;
- }
- }
-
- return var3;
- }
- }
-
- static synchronized EmbeddedObject findBean(int var0, int var1) {
- if (taskOwners == null) {
- return null;
- } else {
- for(int var2 = 0; var2 < taskOwners.count(); ++var2) {
- Vector var3 = ((EmbeddedProgramTaskOwner)taskOwners.elementAt(var2)).programs;
-
- for(int var4 = 0; var4 < var3.count(); ++var4) {
- EmbeddedObject var6 = (EmbeddedObject)var3.elementAt(var4);
- if (var6.contextID == var0 || var6.contextID == 0) {
- EmbeddedObject var5 = (EmbeddedObject)var6.beans().get(var1);
- if (var5 != null) {
- return var5;
- }
- }
- }
- }
-
- return null;
- }
- }
-
- static synchronized EmbeddedObject findProgram(int var0, int var1) {
- if (taskOwners == null) {
- return null;
- } else {
- for(int var2 = 0; var2 < taskOwners.count(); ++var2) {
- Vector var3 = ((EmbeddedProgramTaskOwner)taskOwners.elementAt(var2)).programs;
-
- for(int var4 = 0; var4 < var3.count(); ++var4) {
- EmbeddedObject var5 = (EmbeddedObject)var3.elementAt(var4);
- if (var5.contextID == var0 && var5.objectID == var1) {
- return var5;
- }
- }
- }
-
- return null;
- }
- }
-
- static synchronized EmbeddedObject findBeanOrProgram(int var0, int var1) {
- EmbeddedObject var2 = findProgram(var0, var1);
- if (var2 == null) {
- var2 = findBean(var0, var1);
- }
-
- return var2;
- }
-
- static synchronized EmbeddedObject findJSProgramForTask(Task var0) {
- if (taskOwners == null) {
- return null;
- } else {
- for(int var1 = 0; var1 < taskOwners.count(); ++var1) {
- Vector var2 = ((EmbeddedProgramTaskOwner)taskOwners.elementAt(var1)).programs;
- if (var2.count() > 0) {
- EmbeddedObject var3 = (EmbeddedObject)var2.elementAt(0);
- if (var3.task == var0) {
- for(int var4 = 0; var4 < var2.count(); ++var4) {
- var3 = (EmbeddedObject)var2.elementAt(var4);
- if (var3.contextID == 0 && var3.objectID == 0) {
- return var3;
- }
- }
-
- return null;
- }
- break;
- }
- }
-
- return null;
- }
- }
-
- int frameContext() {
- EmbeddedObject var1 = this.getCurrentProgram();
- return var1.frameContext;
- }
-
- URL documentURL() {
- EmbeddedObject var1 = this.getCurrentProgram();
- return var1.documentURL();
- }
-
- URL codebaseURL() {
- EmbeddedObject var1 = this.getCurrentProgram();
- return var1.codebaseURL();
- }
-
- Hashtable parameters() {
- EmbeddedObject var1 = this.getCurrentProgram();
- return var1.attributes();
- }
-
- public void taskWillShutdown(Task var1) {
- for(int var2 = this.programs.count() - 1; var2 >= 0; --var2) {
- EmbeddedObject var3 = (EmbeddedObject)this.programs.elementAt(var2);
- IntTable var4 = var3.beans();
-
- for(int var5 = var4.count() - 1; var5 >= 0; --var5) {
- EmbeddedObject var6 = (EmbeddedObject)var4.elementAt(var5);
- if (var6.state != 3) {
- var6.stopObject();
- }
-
- var6.destroyObject();
- }
- }
-
- }
-
- public void appDidConstruct(Object var1) {
- TaskAppletContext var2 = new TaskAppletContext(this);
- TaskAppletStub var3 = new TaskAppletStub(var2);
- ((Application)var1).applet().setStub(var3);
- ((Application)var1).appletResources().setBaseURL(this.codebaseURL());
- }
- }
-