home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / javax / swing / ImageIcon.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  5.0 KB  |  250 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Graphics;
  5. import java.awt.Image;
  6. import java.awt.MediaTracker;
  7. import java.awt.Toolkit;
  8. import java.awt.image.ColorModel;
  9. import java.awt.image.ImageObserver;
  10. import java.awt.image.MemoryImageSource;
  11. import java.awt.image.PixelGrabber;
  12. import java.io.IOException;
  13. import java.io.ObjectInputStream;
  14. import java.io.ObjectOutputStream;
  15. import java.io.Serializable;
  16. import java.net.URL;
  17. import javax.accessibility.Accessible;
  18. import javax.accessibility.AccessibleContext;
  19.  
  20. public class ImageIcon implements Icon, Serializable, Accessible {
  21.    private transient String filename;
  22.    private transient URL location;
  23.    transient Image image;
  24.    transient int loadStatus;
  25.    ImageObserver imageObserver;
  26.    String description;
  27.    protected static final Component component = new 1();
  28.    protected static final MediaTracker tracker;
  29.    private static int mediaTrackerID;
  30.    int width;
  31.    int height;
  32.    private AccessibleImageIcon accessibleContext;
  33.  
  34.    public ImageIcon(String var1, String var2) {
  35.       this.loadStatus = 0;
  36.       this.description = null;
  37.       this.width = -1;
  38.       this.height = -1;
  39.       this.accessibleContext = null;
  40.       this.image = Toolkit.getDefaultToolkit().getImage(var1);
  41.       if (this.image != null) {
  42.          this.filename = var1;
  43.          this.description = var2;
  44.          this.loadImage(this.image);
  45.       }
  46.    }
  47.  
  48.    public ImageIcon(String var1) {
  49.       this(var1, var1);
  50.    }
  51.  
  52.    public ImageIcon(URL var1, String var2) {
  53.       this.loadStatus = 0;
  54.       this.description = null;
  55.       this.width = -1;
  56.       this.height = -1;
  57.       this.accessibleContext = null;
  58.       this.image = Toolkit.getDefaultToolkit().getImage(var1);
  59.       if (this.image != null) {
  60.          this.location = var1;
  61.          this.description = var2;
  62.          this.loadImage(this.image);
  63.       }
  64.    }
  65.  
  66.    public ImageIcon(URL var1) {
  67.       this(var1, var1.toExternalForm());
  68.    }
  69.  
  70.    public ImageIcon(Image var1, String var2) {
  71.       this(var1);
  72.       this.description = var2;
  73.    }
  74.  
  75.    public ImageIcon(Image var1) {
  76.       this.loadStatus = 0;
  77.       this.description = null;
  78.       this.width = -1;
  79.       this.height = -1;
  80.       this.accessibleContext = null;
  81.       this.image = var1;
  82.       Object var2 = var1.getProperty("comment", this.imageObserver);
  83.       if (var2 instanceof String) {
  84.          this.description = (String)var2;
  85.       }
  86.  
  87.       this.loadImage(var1);
  88.    }
  89.  
  90.    public ImageIcon(byte[] var1, String var2) {
  91.       this.loadStatus = 0;
  92.       this.description = null;
  93.       this.width = -1;
  94.       this.height = -1;
  95.       this.accessibleContext = null;
  96.       this.image = Toolkit.getDefaultToolkit().createImage(var1);
  97.       if (this.image != null) {
  98.          this.description = var2;
  99.          this.loadImage(this.image);
  100.       }
  101.    }
  102.  
  103.    public ImageIcon(byte[] var1) {
  104.       this.loadStatus = 0;
  105.       this.description = null;
  106.       this.width = -1;
  107.       this.height = -1;
  108.       this.accessibleContext = null;
  109.       this.image = Toolkit.getDefaultToolkit().createImage(var1);
  110.       if (this.image != null) {
  111.          Object var2 = this.image.getProperty("comment", this.imageObserver);
  112.          if (var2 instanceof String) {
  113.             this.description = (String)var2;
  114.          }
  115.  
  116.          this.loadImage(this.image);
  117.       }
  118.    }
  119.  
  120.    public ImageIcon() {
  121.       this.loadStatus = 0;
  122.       this.description = null;
  123.       this.width = -1;
  124.       this.height = -1;
  125.       this.accessibleContext = null;
  126.    }
  127.  
  128.    protected void loadImage(Image var1) {
  129.       synchronized(tracker) {
  130.          int var3 = this.getNextID();
  131.          tracker.addImage(var1, var3);
  132.  
  133.          try {
  134.             tracker.waitForID(var3, 0L);
  135.          } catch (InterruptedException var6) {
  136.             System.out.println("INTERRUPTED while loading Image");
  137.          }
  138.  
  139.          this.loadStatus = tracker.statusID(var3, false);
  140.          tracker.removeImage(var1, var3);
  141.          this.width = var1.getWidth(this.imageObserver);
  142.          this.height = var1.getHeight(this.imageObserver);
  143.       }
  144.    }
  145.  
  146.    private int getNextID() {
  147.       synchronized(tracker) {
  148.          return ++mediaTrackerID;
  149.       }
  150.    }
  151.  
  152.    public int getImageLoadStatus() {
  153.       return this.loadStatus;
  154.    }
  155.  
  156.    public Image getImage() {
  157.       return this.image;
  158.    }
  159.  
  160.    public void setImage(Image var1) {
  161.       this.image = var1;
  162.       this.loadImage(var1);
  163.    }
  164.  
  165.    public String getDescription() {
  166.       return this.description;
  167.    }
  168.  
  169.    public void setDescription(String var1) {
  170.       this.description = var1;
  171.    }
  172.  
  173.    public synchronized void paintIcon(Component var1, Graphics var2, int var3, int var4) {
  174.       if (this.imageObserver == null) {
  175.          var2.drawImage(this.image, var3, var4, var1);
  176.       } else {
  177.          var2.drawImage(this.image, var3, var4, this.imageObserver);
  178.       }
  179.  
  180.    }
  181.  
  182.    public int getIconWidth() {
  183.       return this.width;
  184.    }
  185.  
  186.    public int getIconHeight() {
  187.       return this.height;
  188.    }
  189.  
  190.    public void setImageObserver(ImageObserver var1) {
  191.       this.imageObserver = var1;
  192.    }
  193.  
  194.    public ImageObserver getImageObserver() {
  195.       return this.imageObserver;
  196.    }
  197.  
  198.    public String toString() {
  199.       return this.description != null ? this.description : super.toString();
  200.    }
  201.  
  202.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  203.       var1.defaultReadObject();
  204.       int var2 = var1.readInt();
  205.       int var3 = var1.readInt();
  206.       int[] var4 = (int[])var1.readObject();
  207.       if (var4 != null) {
  208.          Toolkit var5 = Toolkit.getDefaultToolkit();
  209.          ColorModel var6 = ColorModel.getRGBdefault();
  210.          this.image = var5.createImage(new MemoryImageSource(var2, var3, var6, var4, 0, var2));
  211.          this.loadImage(this.image);
  212.       }
  213.  
  214.    }
  215.  
  216.    private void writeObject(ObjectOutputStream var1) throws IOException {
  217.       var1.defaultWriteObject();
  218.       int var2 = this.getIconWidth();
  219.       int var3 = this.getIconHeight();
  220.       int[] var4 = this.image != null ? new int[var2 * var3] : null;
  221.       if (this.image != null) {
  222.          try {
  223.             PixelGrabber var5 = new PixelGrabber(this.image, 0, 0, var2, var3, var4, 0, var2);
  224.             var5.grabPixels();
  225.             if ((var5.getStatus() & 128) != 0) {
  226.                throw new IOException("failed to load image contents");
  227.             }
  228.          } catch (InterruptedException var6) {
  229.             throw new IOException("image load interrupted");
  230.          }
  231.       }
  232.  
  233.       var1.writeInt(var2);
  234.       var1.writeInt(var3);
  235.       var1.writeObject(var4);
  236.    }
  237.  
  238.    public AccessibleContext getAccessibleContext() {
  239.       if (this.accessibleContext == null) {
  240.          this.accessibleContext = new AccessibleImageIcon(this);
  241.       }
  242.  
  243.       return this.accessibleContext;
  244.    }
  245.  
  246.    static {
  247.       tracker = new MediaTracker(component);
  248.    }
  249. }
  250.