home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2002 March / PCWMAR02.iso / software / windowsxp / ftgateoffice / ftgateoffice.exe / Main / webhelp.jar / hhapplet / ImageCache.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-11-07  |  2.3 KB  |  128 lines

  1. package hhapplet;
  2.  
  3. import java.applet.Applet;
  4. import java.awt.Image;
  5. import java.awt.Toolkit;
  6. import java.io.InputStream;
  7. import java.net.MalformedURLException;
  8. import java.net.URL;
  9. import java.util.Hashtable;
  10.  
  11. public class ImageCache {
  12.    private Hashtable m_Imagehash = null;
  13.    private Applet m_applet = null;
  14.  
  15.    public ImageCache(Applet var1) {
  16.       this.m_applet = var1;
  17.       this.m_Imagehash = new Hashtable();
  18.    }
  19.  
  20.    public String GetImagePrefixName(int var1) {
  21.       switch (var1) {
  22.          case 0:
  23.             return "topimage";
  24.          case 1:
  25.             return "topimageopen";
  26.          default:
  27.             return "";
  28.       }
  29.    }
  30.  
  31.    public synchronized Image GetImage(String var1) {
  32.       URL var2 = null;
  33.       boolean var3 = true;
  34.       if (var1 == null) {
  35.          return null;
  36.       } else {
  37.          try {
  38.             if (var1.toLowerCase().startsWith("zip:")) {
  39.                return (Image)this.m_Imagehash.get(var1.substring(4, var1.length()));
  40.             }
  41.  
  42.             var1 = var1.replace('|', ':');
  43.             var2 = new URL(var1);
  44.          } catch (MalformedURLException var7) {
  45.             var3 = false;
  46.          }
  47.  
  48.          if (!var3 && this.m_applet != null) {
  49.             try {
  50.                var2 = new URL(this.m_applet.getDocumentBase(), var1);
  51.             } catch (MalformedURLException var6) {
  52.             }
  53.          }
  54.  
  55.          if (var2 == null) {
  56.             return null;
  57.          } else {
  58.             Object var4 = this.m_Imagehash.get(var2);
  59.             if (var4 != null && var4 instanceof Image) {
  60.                return (Image)var4;
  61.             } else if (this.m_applet != null) {
  62.                try {
  63.                   var8 = this.m_applet.getImage(var2);
  64.                } catch (Exception var5) {
  65.                   return null;
  66.                }
  67.  
  68.                if (var8 != null) {
  69.                   this.m_Imagehash.put(var2, var8);
  70.                }
  71.  
  72.                return var8;
  73.             } else {
  74.                return null;
  75.             }
  76.          }
  77.       }
  78.    }
  79.  
  80.    public Image GetGif(String var1) {
  81.       return this.GetImage(var1 + ".gif");
  82.    }
  83.  
  84.    public Image GetGif(int var1) {
  85.       return this.GetGif(var1, 0);
  86.    }
  87.  
  88.    public Image GetGif(int var1, int var2) {
  89.       return this.GetGif(this.GetImagePrefixName(var2) + String.valueOf(var1));
  90.    }
  91.  
  92.    public void putImage(String var1, long var2, Object var4) {
  93.       if (var4 instanceof InputStream) {
  94.          InputStream var5 = (InputStream)var4;
  95.          if (this.m_Imagehash.get(var1) == null) {
  96.             try {
  97.                if (var2 < 65535L) {
  98.                   int var6 = (int)var2;
  99.                   byte[] var7 = new byte[var6];
  100.  
  101.                   int var8;
  102.                   int var10;
  103.                   for(var8 = var5.read(var7); var8 < var6; var8 += var10) {
  104.                      byte[] var9 = new byte[var6 - var8];
  105.                      var10 = var5.read(var9);
  106.                      if (var10 == 0) {
  107.                         break;
  108.                      }
  109.  
  110.                      for(int var11 = 0; var11 < var10 && var11 < var6 - var8; ++var11) {
  111.                         var7[var8 + var11] = var9[var11];
  112.                      }
  113.                   }
  114.  
  115.                   if (var6 == var8) {
  116.                      this.m_Imagehash.put(var1, Toolkit.getDefaultToolkit().createImage(var7));
  117.                      return;
  118.                   }
  119.                }
  120.             } catch (Exception var12) {
  121.                ((Throwable)var12).printStackTrace();
  122.             }
  123.          }
  124.       }
  125.  
  126.    }
  127. }
  128.