/*
* Icono.java
*
* Created on 13 de junio de 2002, 13:42
*/
package com.utils;
/**
*
* @author amolinero
* @version
*/
import com.GestDB.general.Trackbug;
import java.awt.*;
import java.awt.MediaTracker;
import java.awt.image.ImageObserver;
import java.io.*;
import java.net.URL;
public class Icono extends java.awt.Component implements javax.swing.Icon, Serializable
{
protected transient Image image;
protected transient int loadStatus;
protected ImageObserver imageObserver;
protected URL imageLocation;
protected MediaTracker tracker;
protected int width;
protected int height;
public Icono()
{
width = -1;
height = -1;
tracker = new MediaTracker(this);
}
public Icono(URL url)
{
width = -1;
height = -1;
tracker = new MediaTracker(this);
imageLocation = url;
image = Toolkit.getDefaultToolkit().getImage(url);
loadImage(image);
}
public Icono(Image image1)
{
width = -1;
height = -1;
tracker = new MediaTracker(this);
image = image1;
loadImage(image);
}
public Icono(InputStream inputstream)
throws IOException
{
width = -1;
height = -1;
tracker = new MediaTracker(this);
byte abyte0[] = new byte[1024];
ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream();
int i;
while((i = inputstream.read(abyte0)) > 0)
bytearrayoutputstream.write(abyte0, 0, i);
inputstream.close();
bytearrayoutputstream.flush();
image = Toolkit.getDefaultToolkit().createImage(bytearrayoutputstream.toByteArray());
loadImage(image);
bytearrayoutputstream.close();
}
public URL getImageLocation()
{
return imageLocation;
}
public void setImageLocation(URL url)
{
imageLocation = url;
image = Toolkit.getDefaultToolkit().getImage(url);
loadImage(image);
}
public void setImageObserver(ImageObserver imageobserver)
{
imageObserver = imageobserver;
}
public ImageObserver getImageObserver()
{
return imageObserver;
}
public int getIconWidth()
{
return width;
}
public int getIconHeight()
{
return height;
}
protected void loadImage(Image image1)
{
synchronized(tracker)
{
tracker.addImage(image1, 0);
try
{
tracker.waitForID(0, 5000L);
}
catch(InterruptedException _ex)
{
Trackbug.error(_ex, _ex.getMessage() + "Interumpido mientras se cargaba la imagen");
}
loadStatus = tracker.statusID(0, false);
tracker.removeImage(image1, 0);
width = image1.getWidth(imageObserver);
height = image1.getHeight(imageObserver);
}
}
public int getImageLoadStatus()
{
return loadStatus;
}
public Image getImage()
{
return image;
}
public void paintIcon(java.awt.Component component, java.awt.Graphics graphics, int param, int param3) {
if(image != null)
{
if(imageObserver == null)
{
graphics.drawImage(image, param, param3, null);
return;
}
graphics.drawImage(image, param, param3, imageObserver);
}
}
}