2005-04-19 Roman Kennke <roman@kennke.org>

* javax/swing/ImageIcon.java
	Added API documentation.

2005-04-19  Roman Kennke  <roman@kennke.org>

	* javax/swing/text/ImageIcon.java
	(ImageIcon): Use setImage instead of direct assignment.
	(setImage): Call loadImage to make sure that the image is loaded.
	(loadImage): Waits for the image to complete loading.
	(getImageLoadStatus): Added. Returns the load status of the
	image.

From-SVN: r98384
This commit is contained in:
Roman Kennke 2005-04-19 05:59:46 +00:00 committed by Michael Koch
parent 3419f465cf
commit b9d896d600
2 changed files with 70 additions and 4 deletions

View File

@ -1,3 +1,17 @@
2005-04-19 Roman Kennke <roman@kennke.org>
* javax/swing/ImageIcon.java
Added API documentation.
2005-04-19 Roman Kennke <roman@kennke.org>
* javax/swing/text/ImageIcon.java
(ImageIcon): Use setImage instead of direct assignment.
(setImage): Call loadImage to make sure that the image is loaded.
(loadImage): Waits for the image to complete loading.
(getImageLoadStatus): Added. Returns the load status of the
image.
2005-04-19 Audrius Meskauskas <audriusa@bluewin.ch>
* javax/swing/JTextArea.java (replaceRange):

View File

@ -1,5 +1,5 @@
/* ImageIcon.java --
Copyright (C) 2002, 2004 Free Software Foundation, Inc.
Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@ -40,6 +40,7 @@ package javax.swing;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import java.awt.image.ImageObserver;
import java.io.Serializable;
@ -50,10 +51,23 @@ public class ImageIcon
implements Icon, Serializable
{
private static final long serialVersionUID = 532615968316031794L;
/** A dummy Component that is used in the MediaTracker. */
protected static Component component = new Component(){};
/** The MediaTracker used to monitor the loading of images. */
protected static MediaTracker tracker = new MediaTracker(component);
/** The ID that is used in the tracker. */
private static int id;
Image image;
String description;
ImageObserver observer;
/** The image loading status. */
private int loadStatus;
public ImageIcon()
{
}
@ -95,8 +109,8 @@ public class ImageIcon
public ImageIcon(Image image, String description)
{
this.image = Toolkit.getDefaultToolkit().createImage(image.getSource());
this.description = description;
setImage(image);
setDescription(description);
}
public ImageObserver getImageObserver()
@ -116,7 +130,8 @@ public class ImageIcon
public void setImage(Image image)
{
this.image = Toolkit.getDefaultToolkit().createImage(image.getSource());
loadImage(image);
this.image = image;
}
public String getDescription()
@ -143,4 +158,41 @@ public class ImageIcon
{
g.drawImage(image, x, y, observer != null ? observer : c);
}
/**
* Loads the image and blocks until the loading operation is finished.
*
* @param image the image to be loaded
*/
protected void loadImage(Image image)
{
try
{
tracker.addImage(image, id);
id++;
tracker.waitForID(id - 1);
}
catch (InterruptedException ex)
{
; // ignore this for now
}
finally
{
loadStatus = tracker.statusID(id - 1, false);
}
}
/**
* Returns the load status of the icon image.
*
* @return the load status of the icon image
*
* @see {@link MediaTracker.COMPLETE}
* @see {@link MediaTracker.ABORTED}
* @see {@link MediaTracker.ERRORED}
*/
public int getImageLoadStatus()
{
return loadStatus;
}
}