home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VCafe / main.bin / ImageViewer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-04  |  3.2 KB  |  121 lines

  1. package symantec.itools.multimedia;
  2.  
  3. import java.awt.Canvas;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Graphics;
  7. import java.awt.Image;
  8. import java.awt.MediaTracker;
  9. import java.net.MalformedURLException;
  10. import java.net.URL;
  11.  
  12. public strictfp class ImageViewer extends Canvas {
  13.    protected Image image;
  14.    protected String fileName;
  15.    protected URL url;
  16.    protected boolean centerMode;
  17.  
  18.    public ImageViewer() {
  19.       this.image = null;
  20.       this.fileName = null;
  21.       this.url = null;
  22.       this.centerMode = true;
  23.    }
  24.  
  25.    public ImageViewer(String str) throws MalformedURLException {
  26.       this.setFileName(str);
  27.    }
  28.  
  29.    public ImageViewer(URL url) {
  30.       this.setURL(url);
  31.    }
  32.  
  33.    public ImageViewer(Image img) {
  34.       this.setImage(img);
  35.    }
  36.  
  37.    public void setFileName(String str) {
  38.       try {
  39.          this.fileName = str;
  40.          this.setURL(new URL(this.fileName));
  41.       } catch (MalformedURLException var2) {
  42.       }
  43.  
  44.       ((Component)this).repaint();
  45.    }
  46.  
  47.    public String getFileName() {
  48.       return this.fileName;
  49.    }
  50.  
  51.    public void setURL(URL aUrl) {
  52.       this.url = aUrl;
  53.       this.fileName = null;
  54.       Image loadedImage = ((Component)this).getToolkit().getImage(this.url);
  55.       if (loadedImage != null) {
  56.          this.setImage(loadedImage);
  57.          ((Component)this).repaint();
  58.       }
  59.  
  60.    }
  61.  
  62.    public URL getURL() {
  63.       return this.url;
  64.    }
  65.  
  66.    public void setCenterMode(boolean flag) {
  67.       if (this.centerMode != flag) {
  68.          this.centerMode = flag;
  69.          ((Component)this).repaint();
  70.       }
  71.  
  72.    }
  73.  
  74.    public boolean getCenterMode() {
  75.       return this.centerMode;
  76.    }
  77.  
  78.    public void setImage(Image img) {
  79.       this.fileName = null;
  80.       this.image = img;
  81.       if (img != null) {
  82.          try {
  83.             MediaTracker tracker = new MediaTracker(this);
  84.             tracker.addImage(this.image, 0);
  85.             tracker.waitForID(0);
  86.          } catch (InterruptedException var3) {
  87.          }
  88.       } else {
  89.          ((Component)this).repaint();
  90.       }
  91.    }
  92.  
  93.    public Image getImage() {
  94.       return this.image;
  95.    }
  96.  
  97.    public void paint(Graphics g) {
  98.       if (this.image != null) {
  99.          Dimension dim = ((Component)this).size();
  100.          g.clipRect(0, 0, dim.width, dim.height);
  101.          int x = 0;
  102.          int y = 0;
  103.          if (this.centerMode) {
  104.             x += (dim.width - this.image.getWidth(this)) / 2;
  105.             y += (dim.height - this.image.getHeight(this)) / 2;
  106.          }
  107.  
  108.          g.drawImage(this.image, x, y, this);
  109.       }
  110.  
  111.    }
  112.  
  113.    public Dimension preferredSize() {
  114.       return this.image != null ? new Dimension(this.image.getWidth(this), this.image.getHeight(this)) : new Dimension(10, 10);
  115.    }
  116.  
  117.    public Dimension minimumSize() {
  118.       return this.preferredSize();
  119.    }
  120. }
  121.