home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 139 / dpcs0999.iso / Web / CFserver / data1.cab / Java / netscape / application / AppletResources.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-12  |  4.4 KB  |  172 lines

  1. package netscape.application;
  2.  
  3. import java.io.InputStream;
  4. import java.net.URL;
  5. import netscape.util.Vector;
  6.  
  7. class AppletResources {
  8.    Application _applet;
  9.    URL _baseURL;
  10.    String _subdirectory = "";
  11.    static final String CONTENTS = ".contents";
  12.    static final String LANGUAGES = "Languages";
  13.    static final String INTERFACES_DIRECTORY = "interfaces";
  14.    static final String IMAGE_DIRECTORY = "images";
  15.    static final String FONT_DIRECTORY = "fonts";
  16.    static final String SOUND_DIRECTORY = "sounds";
  17.  
  18.    public AppletResources(Application var1, URL var2) {
  19.       this._applet = var1;
  20.       this._baseURL = var2;
  21.    }
  22.  
  23.    public void setBaseURL(URL var1) {
  24.       this._baseURL = var1;
  25.    }
  26.  
  27.    public URL baseURL() {
  28.       return this._baseURL;
  29.    }
  30.  
  31.    public void setSubdirectory(String var1) {
  32.       this._subdirectory = var1;
  33.       if (this._subdirectory == null) {
  34.          this._subdirectory = "";
  35.       }
  36.  
  37.    }
  38.  
  39.    public String subdirectory() {
  40.       return this._subdirectory;
  41.    }
  42.  
  43.    public Vector availableLanguages() {
  44.       return null;
  45.    }
  46.  
  47.    private URL _urlFromBaseAndPath(URL var1, String var2) {
  48.       URL var3;
  49.       try {
  50.          var3 = new URL(var1, var2);
  51.       } catch (Exception var5) {
  52.          System.err.println("appletResources._urlFromBaseAndPath() - " + var5);
  53.          var3 = null;
  54.       }
  55.  
  56.       return var3;
  57.    }
  58.  
  59.    public Vector URLsForResource(String var1) {
  60.       Vector var2 = new Vector();
  61.       String var5 = this._subdirectory;
  62.       if (var5.length() > 0 && var5.charAt(var5.length() - 1) != '/') {
  63.          var5 = var5 + "/";
  64.       }
  65.  
  66.       Vector var4 = this._applet.languagePreferences();
  67.       Vector var3 = this.availableLanguages();
  68.       if (var3 == null) {
  69.          int var13 = var4.count();
  70.  
  71.          for(int var10 = 0; var10 < var13; ++var10) {
  72.             var2.addElement(this._urlFromBaseAndPath(this._baseURL, (String)var4.elementAt(var10) + ".pkg/" + var5 + var1));
  73.          }
  74.  
  75.          var2.addElement(this._urlFromBaseAndPath(this._baseURL, var5 + var1));
  76.          return var2;
  77.       } else if (var3.isEmpty()) {
  78.          var2.addElement(this._urlFromBaseAndPath(this._baseURL, var5 + var1));
  79.          return var2;
  80.       } else if (!var4.isEmpty()) {
  81.          int var11 = var4.count();
  82.  
  83.          for(int var8 = 0; var8 < var11; ++var8) {
  84.             if (var3.contains(var4.elementAt(var8))) {
  85.                var2.addElement(this._urlFromBaseAndPath(this._baseURL, (String)var4.elementAt(var8) + ".pkg/" + var5 + var1));
  86.             }
  87.          }
  88.  
  89.          var11 = var3.count();
  90.  
  91.          for(int var9 = 0; var9 < var11; ++var9) {
  92.             if (!var4.contains(var3.elementAt(var9))) {
  93.                var2.addElement(this._urlFromBaseAndPath(this._baseURL, (String)var3.elementAt(var9) + ".pkg/" + var5 + var1));
  94.             }
  95.          }
  96.  
  97.          var2.addElement(this._urlFromBaseAndPath(this._baseURL, var5 + var1));
  98.          return var2;
  99.       } else {
  100.          int var7 = var3.count();
  101.  
  102.          for(int var6 = 0; var6 < var7; ++var6) {
  103.             var2.addElement(this._urlFromBaseAndPath(this._baseURL, (String)var3.elementAt(var6) + ".pkg/" + var5 + var1));
  104.          }
  105.  
  106.          var2.addElement(this._urlFromBaseAndPath(this._baseURL, var5 + var1));
  107.          return var2;
  108.       }
  109.    }
  110.  
  111.    public Vector URLsForInterface(String var1) {
  112.       return this.URLsForResource("interfaces/" + var1);
  113.    }
  114.  
  115.    public Vector URLsForImage(String var1) {
  116.       return this.URLsForResource("images/" + var1);
  117.    }
  118.  
  119.    public Vector URLsForFont(String var1) {
  120.       return this.URLsForResource("fonts/" + var1);
  121.    }
  122.  
  123.    public Vector URLsForSound(String var1) {
  124.       return this.URLsForResource("sounds/" + var1);
  125.    }
  126.  
  127.    public Vector URLsForResourceOfType(String var1, String var2) {
  128.       return this.URLsForResource(var2 + "/" + var1);
  129.    }
  130.  
  131.    public InputStream streamForURLs(Vector var1) {
  132.       if (var1 != null && !var1.isEmpty()) {
  133.          int var4 = var1.count();
  134.  
  135.          for(int var5 = 0; var5 < var4; ++var5) {
  136.             try {
  137.                URL var2 = (URL)var1.elementAt(var5);
  138.                InputStream var3 = var2.openStream();
  139.                return var3;
  140.             }
  141.          }
  142.  
  143.          return null;
  144.       } else {
  145.          return null;
  146.       }
  147.    }
  148.  
  149.    public InputStream streamForInterface(String var1) {
  150.       return this.streamForURLs(this.URLsForInterface(var1));
  151.    }
  152.  
  153.    URL urlForBitmapNamed(String var1) {
  154.       Vector var2 = this.URLsForImage(var1);
  155.       return var2.count() > 0 ? (URL)var2.elementAt(0) : null;
  156.    }
  157.  
  158.    URL urlForSoundNamed(String var1) {
  159.       Vector var2 = this.URLsForSound(var1);
  160.       return var2.count() > 0 ? (URL)var2.elementAt(0) : null;
  161.    }
  162.  
  163.    URL urlForFontNamed(String var1) {
  164.       Vector var2 = this.URLsForFont(var1);
  165.       return var2.count() > 0 ? (URL)var2.elementAt(0) : null;
  166.    }
  167.  
  168.    public InputStream streamForResourceOfType(String var1, String var2) {
  169.       return this.streamForURLs(this.URLsForResourceOfType(var1, var2));
  170.    }
  171. }
  172.