home *** CD-ROM | disk | FTP | other *** search
- package hhapplet;
-
- import java.applet.Applet;
- import java.awt.Image;
- import java.awt.Toolkit;
- import java.io.InputStream;
- import java.net.MalformedURLException;
- import java.net.URL;
- import java.util.Hashtable;
-
- public class ImageCache {
- private Hashtable m_Imagehash = null;
- private Applet m_applet = null;
-
- public ImageCache(Applet var1) {
- this.m_applet = var1;
- this.m_Imagehash = new Hashtable();
- }
-
- public String GetImagePrefixName(int var1) {
- switch (var1) {
- case 0:
- return "topimage";
- case 1:
- return "topimageopen";
- default:
- return "";
- }
- }
-
- public synchronized Image GetImage(String var1) {
- URL var2 = null;
- boolean var3 = true;
- if (var1 == null) {
- return null;
- } else {
- try {
- if (var1.toLowerCase().startsWith("zip:")) {
- return (Image)this.m_Imagehash.get(var1.substring(4, var1.length()));
- }
-
- var1 = var1.replace('|', ':');
- var2 = new URL(var1);
- } catch (MalformedURLException var7) {
- var3 = false;
- }
-
- if (!var3 && this.m_applet != null) {
- try {
- var2 = new URL(this.m_applet.getDocumentBase(), var1);
- } catch (MalformedURLException var6) {
- }
- }
-
- if (var2 == null) {
- return null;
- } else {
- Object var4 = this.m_Imagehash.get(var2);
- if (var4 != null && var4 instanceof Image) {
- return (Image)var4;
- } else if (this.m_applet != null) {
- try {
- var8 = this.m_applet.getImage(var2);
- } catch (Exception var5) {
- return null;
- }
-
- if (var8 != null) {
- this.m_Imagehash.put(var2, var8);
- }
-
- return var8;
- } else {
- return null;
- }
- }
- }
- }
-
- public Image GetGif(String var1) {
- return this.GetImage(var1 + ".gif");
- }
-
- public Image GetGif(int var1) {
- return this.GetGif(var1, 0);
- }
-
- public Image GetGif(int var1, int var2) {
- return this.GetGif(this.GetImagePrefixName(var2) + String.valueOf(var1));
- }
-
- public void putImage(String var1, long var2, Object var4) {
- if (var4 instanceof InputStream) {
- InputStream var5 = (InputStream)var4;
- if (this.m_Imagehash.get(var1) == null) {
- try {
- if (var2 < 65535L) {
- int var6 = (int)var2;
- byte[] var7 = new byte[var6];
-
- int var8;
- int var10;
- for(var8 = var5.read(var7); var8 < var6; var8 += var10) {
- byte[] var9 = new byte[var6 - var8];
- var10 = var5.read(var9);
- if (var10 == 0) {
- break;
- }
-
- for(int var11 = 0; var11 < var10 && var11 < var6 - var8; ++var11) {
- var7[var8 + var11] = var9[var11];
- }
- }
-
- if (var6 == var8) {
- this.m_Imagehash.put(var1, Toolkit.getDefaultToolkit().createImage(var7));
- return;
- }
- }
- } catch (Exception var12) {
- ((Throwable)var12).printStackTrace();
- }
- }
- }
-
- }
- }
-