home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / WIN95 / IAVAZIP.EXE / DATA.Z / Portal.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-18  |  1.5 KB  |  58 lines

  1. package com.sfs.vrml;
  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.util.Observable;
  9. import java.util.Observer;
  10.  
  11. public abstract class Portal extends Canvas implements Observer {
  12.    private Scene _scn;
  13.    private Image _im;
  14.    private Graphics _gr;
  15.    private Dimension _dim;
  16.  
  17.    public Portal(Scene var1) {
  18.       if (var1 == null) {
  19.          throw new NullPointerException("null scene");
  20.       } else {
  21.          this._scn = var1;
  22.          this._scn.addObserver(this);
  23.       }
  24.    }
  25.  
  26.    public void paint(Graphics var1) {
  27.       this.update(var1);
  28.    }
  29.  
  30.    public void update(Observable var1, Object var2) {
  31.       if (var1 == this._scn) {
  32.          ((Component)this).repaint();
  33.       }
  34.  
  35.    }
  36.  
  37.    protected Scene getScene() {
  38.       return this._scn;
  39.    }
  40.  
  41.    public void update(Graphics var1) {
  42.       Dimension var2 = ((Component)this).size();
  43.       if (this._im == null || this._gr == null || this._dim == null || this._dim.height != var2.height || this._dim.width != var2.width) {
  44.          this._dim = var2;
  45.          this._im = ((Component)this).createImage(this._dim.width, this._dim.height);
  46.          this._gr = this._im.getGraphics();
  47.       }
  48.  
  49.       this._gr.setColor(((Component)this).getBackground());
  50.       this._gr.fillRect(0, 0, this._dim.width, this._dim.height);
  51.       this._gr.setColor(((Component)this).getForeground());
  52.       this.paintScene(this._gr);
  53.       var1.drawImage(this._im, 0, 0, this);
  54.    }
  55.  
  56.    protected abstract void paintScene(Graphics var1);
  57. }
  58.