home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 January / PCO0198.ISO / browser / net_linx / java40.jar / netscape / applet / EmbeddedProgramTaskOwner.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  3.2 KB  |  200 lines

  1. package netscape.applet;
  2.  
  3. import java.net.URL;
  4. import netscape.application.Application;
  5. import netscape.util.Hashtable;
  6. import netscape.util.Vector;
  7.  
  8. class EmbeddedProgramTaskOwner implements TaskOwner {
  9.    static Vector taskOwners;
  10.    Vector programs;
  11.    EmbeddedProgramOwner programOwner;
  12.    EmbeddedBeanOwner beanOwner;
  13.    boolean programInitialized = false;
  14.  
  15.    EmbeddedProgramTaskOwner(EmbeddedObject var1) {
  16.       if (taskOwners == null) {
  17.          taskOwners = new Vector();
  18.       }
  19.  
  20.       taskOwners.addElement(this);
  21.       if (this.programs == null) {
  22.          this.programs = new Vector();
  23.       }
  24.  
  25.       this.programs.addElement(var1);
  26.    }
  27.  
  28.    int count() {
  29.       return this.programs.count();
  30.    }
  31.  
  32.    void addProgram(EmbeddedObject var1) {
  33.       this.programs.addElement(var1);
  34.    }
  35.  
  36.    void removeProgram(EmbeddedObject var1) {
  37.       this.programs.removeElement(var1);
  38.       if (this.programs.count() == 0) {
  39.          taskOwners.removeElement(this);
  40.       }
  41.  
  42.    }
  43.  
  44.    EmbeddedObject getCurrentProgram() {
  45.       if (this.programs == null) {
  46.          return null;
  47.       } else {
  48.          for(int var2 = 0; var2 < this.programs.size(); ++var2) {
  49.             EmbeddedObject var1 = (EmbeddedObject)this.programs.elementAt(var2);
  50.             if (var1.state == 2) {
  51.                return var1;
  52.             }
  53.          }
  54.  
  55.          return (EmbeddedObject)this.programs.elementAt(0);
  56.       }
  57.    }
  58.  
  59.    EmbeddedObject getProgramForBean(EmbeddedObject var1) {
  60.       if (this.programs == null) {
  61.          return null;
  62.       } else {
  63.          EmbeddedObject var3 = null;
  64.  
  65.          for(int var4 = 0; var4 < this.programs.size(); ++var4) {
  66.             EmbeddedObject var2 = (EmbeddedObject)this.programs.elementAt(var4);
  67.             if (var2.contextID == var1.contextID && var2.task == var1.task) {
  68.                return var2;
  69.             }
  70.  
  71.             if (var2.contextID == 0 && var2.objectID == 0) {
  72.                var3 = var2;
  73.             }
  74.          }
  75.  
  76.          return var3;
  77.       }
  78.    }
  79.  
  80.    static synchronized EmbeddedObject findBean(int var0, int var1) {
  81.       if (taskOwners == null) {
  82.          return null;
  83.       } else {
  84.          for(int var2 = 0; var2 < taskOwners.count(); ++var2) {
  85.             Vector var3 = ((EmbeddedProgramTaskOwner)taskOwners.elementAt(var2)).programs;
  86.  
  87.             for(int var4 = 0; var4 < var3.count(); ++var4) {
  88.                EmbeddedObject var6 = (EmbeddedObject)var3.elementAt(var4);
  89.                if (var6.contextID == var0 || var6.contextID == 0) {
  90.                   EmbeddedObject var5 = (EmbeddedObject)var6.beans().get(var1);
  91.                   if (var5 != null) {
  92.                      return var5;
  93.                   }
  94.                }
  95.             }
  96.          }
  97.  
  98.          return null;
  99.       }
  100.    }
  101.  
  102.    static synchronized EmbeddedObject findProgram(int var0, int var1) {
  103.       if (taskOwners == null) {
  104.          return null;
  105.       } else {
  106.          for(int var2 = 0; var2 < taskOwners.count(); ++var2) {
  107.             Vector var3 = ((EmbeddedProgramTaskOwner)taskOwners.elementAt(var2)).programs;
  108.  
  109.             for(int var4 = 0; var4 < var3.count(); ++var4) {
  110.                EmbeddedObject var5 = (EmbeddedObject)var3.elementAt(var4);
  111.                if (var5.contextID == var0 && var5.objectID == var1) {
  112.                   return var5;
  113.                }
  114.             }
  115.          }
  116.  
  117.          return null;
  118.       }
  119.    }
  120.  
  121.    static synchronized EmbeddedObject findBeanOrProgram(int var0, int var1) {
  122.       EmbeddedObject var2 = findProgram(var0, var1);
  123.       if (var2 == null) {
  124.          var2 = findBean(var0, var1);
  125.       }
  126.  
  127.       return var2;
  128.    }
  129.  
  130.    static synchronized EmbeddedObject findJSProgramForTask(Task var0) {
  131.       if (taskOwners == null) {
  132.          return null;
  133.       } else {
  134.          for(int var1 = 0; var1 < taskOwners.count(); ++var1) {
  135.             Vector var2 = ((EmbeddedProgramTaskOwner)taskOwners.elementAt(var1)).programs;
  136.             if (var2.count() > 0) {
  137.                EmbeddedObject var3 = (EmbeddedObject)var2.elementAt(0);
  138.                if (var3.task == var0) {
  139.                   for(int var4 = 0; var4 < var2.count(); ++var4) {
  140.                      var3 = (EmbeddedObject)var2.elementAt(var4);
  141.                      if (var3.contextID == 0 && var3.objectID == 0) {
  142.                         return var3;
  143.                      }
  144.                   }
  145.  
  146.                   return null;
  147.                }
  148.                break;
  149.             }
  150.          }
  151.  
  152.          return null;
  153.       }
  154.    }
  155.  
  156.    int frameContext() {
  157.       EmbeddedObject var1 = this.getCurrentProgram();
  158.       return var1.frameContext;
  159.    }
  160.  
  161.    URL documentURL() {
  162.       EmbeddedObject var1 = this.getCurrentProgram();
  163.       return var1.documentURL();
  164.    }
  165.  
  166.    URL codebaseURL() {
  167.       EmbeddedObject var1 = this.getCurrentProgram();
  168.       return var1.codebaseURL();
  169.    }
  170.  
  171.    Hashtable parameters() {
  172.       EmbeddedObject var1 = this.getCurrentProgram();
  173.       return var1.attributes();
  174.    }
  175.  
  176.    public void taskWillShutdown(Task var1) {
  177.       for(int var2 = this.programs.count() - 1; var2 >= 0; --var2) {
  178.          EmbeddedObject var3 = (EmbeddedObject)this.programs.elementAt(var2);
  179.          IntTable var4 = var3.beans();
  180.  
  181.          for(int var5 = var4.count() - 1; var5 >= 0; --var5) {
  182.             EmbeddedObject var6 = (EmbeddedObject)var4.elementAt(var5);
  183.             if (var6.state != 3) {
  184.                var6.stopObject();
  185.             }
  186.  
  187.             var6.destroyObject();
  188.          }
  189.       }
  190.  
  191.    }
  192.  
  193.    public void appDidConstruct(Object var1) {
  194.       TaskAppletContext var2 = new TaskAppletContext(this);
  195.       TaskAppletStub var3 = new TaskAppletStub(var2);
  196.       ((Application)var1).applet().setStub(var3);
  197.       ((Application)var1).appletResources().setBaseURL(this.codebaseURL());
  198.    }
  199. }
  200.