home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 May / PCO_5_97.ISO / FilesBBS / OS2 / RDB084R2.ARJ / RDB084R2.ZIP / ScrollPanel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-03-15  |  3.0 KB  |  123 lines

  1. import java.awt.BorderLayout;
  2. import java.awt.Component;
  3. import java.awt.Container;
  4. import java.awt.Dimension;
  5. import java.awt.Graphics;
  6. import java.awt.GridBagConstraints;
  7. import java.awt.GridBagLayout;
  8. import java.awt.Image;
  9. import java.awt.LayoutManager;
  10. import java.awt.Panel;
  11.  
  12. public class ScrollPanel extends Panel {
  13.    RepaintScrollbar horiz;
  14.    RepaintScrollbar vert;
  15.    Component client;
  16.    int prevx;
  17.    int prevy;
  18.    boolean first;
  19.    // $FF: renamed from: g java.awt.GridBagLayout
  20.    GridBagLayout field_0;
  21.    // $FF: renamed from: c java.awt.GridBagConstraints
  22.    GridBagConstraints field_1;
  23.    NoPaintPanel clientPanel;
  24.    Image osimg;
  25.    Image biggest;
  26.    Dimension bigSize;
  27.    Graphics off;
  28.    Dimension imSize;
  29.  
  30.    public ScrollPanel() {
  31.       this((Component)null);
  32.    }
  33.  
  34.    public ScrollPanel(Component var1) {
  35.       this.first = true;
  36.       this.client = var1;
  37.       this.horiz = new RepaintScrollbar(this, 0);
  38.       this.vert = new RepaintScrollbar(this, 1);
  39.       this.clientPanel = new NoPaintPanel();
  40.       this.clientPanel.setLayout((LayoutManager)null);
  41.       ((Container)this).setLayout(new BorderLayout());
  42.       ((Container)this).add("West", this.vert);
  43.       ((Container)this).add("South", this.horiz);
  44.       ((Container)this).add("Center", this.clientPanel);
  45.       this.setClient(var1);
  46.    }
  47.  
  48.    public void setClient(Component var1) {
  49.       this.client = var1;
  50.       if (var1 != null) {
  51.          this.clientPanel.add("Center", var1);
  52.       }
  53.  
  54.    }
  55.  
  56.    public Component getClient() {
  57.       return this.client;
  58.    }
  59.  
  60.    public void paint(Graphics var1) {
  61.       Dimension var2 = ((Component)this).size();
  62.       int var4 = this.horiz.getValue();
  63.       int var5 = this.vert.getValue();
  64.       int var6 = var4 - this.prevx;
  65.       int var7 = var5 - this.prevy;
  66.       if (this.client != null) {
  67.          this.client.move(-var4, -var5);
  68.          Dimension var3 = this.client.size();
  69.          if (this.osimg == null || this.imSize.width < var3.width || this.imSize.height < var3.height) {
  70.             if (this.biggest != null && this.bigSize.width >= var3.width && this.bigSize.height >= var3.height) {
  71.                this.osimg = this.biggest;
  72.                this.imSize = var3;
  73.             } else {
  74.                try {
  75.                   this.osimg = ((Component)this).createImage(var3.width, var3.height);
  76.                   this.off = this.osimg.getGraphics();
  77.                   this.imSize = var3;
  78.                   this.biggest = this.osimg;
  79.                   this.bigSize = var3;
  80.                } catch (Exception var10) {
  81.                   this.dbg(((Throwable)var10).toString());
  82.                   return;
  83.                }
  84.             }
  85.          }
  86.  
  87.          if (this.osimg != null) {
  88.             int var8 = this.vert.size().width;
  89.             int var9 = this.horiz.size().height;
  90.             this.off.clipRect(var8, 0, ((Component)this).size().width - var8, ((Component)this).size().height - var9);
  91.             this.clientPanel.paint(this.off);
  92.             var1.copyArea(this.prevx, this.prevy, var2.width - var6, var2.height - var7, var6, var7);
  93.             var1.clipRect(-var4, -var5, var6, var7);
  94.             var1.drawImage(this.osimg, -var4, -var5, this);
  95.          }
  96.       }
  97.  
  98.       this.prevx = var4;
  99.       this.prevy = var5;
  100.    }
  101.  
  102.    public void update(Graphics var1) {
  103.       this.paint(var1);
  104.    }
  105.  
  106.    private void dbg(String var1) {
  107.       System.out.println(var1);
  108.    }
  109.  
  110.    public void reshape(int var1, int var2, int var3, int var4) {
  111.       super.reshape(var1, var2, var3, var4);
  112.       Dimension var5 = ((Component)this).size();
  113.       if (this.client != null) {
  114.          Dimension var6 = this.client.size();
  115.          int var7 = var5.height;
  116.          int var8 = var5.width;
  117.          this.vert.setValues(this.vert.getValue(), var7, 0, var6.height - var5.height);
  118.          this.horiz.setValues(this.horiz.getValue(), var8, 0, var6.width - var5.width);
  119.       }
  120.  
  121.    }
  122. }
  123.