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