home *** CD-ROM | disk | FTP | other *** search
- import java.awt.BorderLayout;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.Image;
- import java.awt.LayoutManager;
- import java.awt.Panel;
-
- public class ScrollPanel extends Panel {
- RepaintScrollbar horiz;
- RepaintScrollbar vert;
- Component client;
- int prevx;
- int prevy;
- boolean first;
- // $FF: renamed from: g java.awt.GridBagLayout
- GridBagLayout field_0;
- // $FF: renamed from: c java.awt.GridBagConstraints
- GridBagConstraints field_1;
- NoPaintPanel clientPanel;
- Image osimg;
- Image biggest;
- Dimension bigSize;
- Graphics off;
- Dimension imSize;
-
- public ScrollPanel() {
- this((Component)null);
- }
-
- public ScrollPanel(Component var1) {
- this.first = true;
- this.client = var1;
- this.horiz = new RepaintScrollbar(this, 0);
- this.vert = new RepaintScrollbar(this, 1);
- this.clientPanel = new NoPaintPanel();
- this.clientPanel.setLayout((LayoutManager)null);
- ((Container)this).setLayout(new BorderLayout());
- ((Container)this).add("West", this.vert);
- ((Container)this).add("South", this.horiz);
- ((Container)this).add("Center", this.clientPanel);
- this.setClient(var1);
- }
-
- public void setClient(Component var1) {
- this.client = var1;
- if (var1 != null) {
- this.clientPanel.add("Center", var1);
- }
-
- }
-
- public Component getClient() {
- return this.client;
- }
-
- public void paint(Graphics var1) {
- Dimension var2 = ((Component)this).size();
- int var4 = this.horiz.getValue();
- int var5 = this.vert.getValue();
- int var6 = var4 - this.prevx;
- int var7 = var5 - this.prevy;
- if (this.client != null) {
- this.client.move(-var4, -var5);
- Dimension var3 = this.client.size();
- if (this.osimg == null || this.imSize.width < var3.width || this.imSize.height < var3.height) {
- if (this.biggest != null && this.bigSize.width >= var3.width && this.bigSize.height >= var3.height) {
- this.osimg = this.biggest;
- this.imSize = var3;
- } else {
- try {
- this.osimg = ((Component)this).createImage(var3.width, var3.height);
- this.off = this.osimg.getGraphics();
- this.imSize = var3;
- this.biggest = this.osimg;
- this.bigSize = var3;
- } catch (Exception var10) {
- this.dbg(((Throwable)var10).toString());
- return;
- }
- }
- }
-
- if (this.osimg != null) {
- int var8 = this.vert.size().width;
- int var9 = this.horiz.size().height;
- this.off.clipRect(var8, 0, ((Component)this).size().width - var8, ((Component)this).size().height - var9);
- this.clientPanel.paint(this.off);
- var1.copyArea(this.prevx, this.prevy, var2.width - var6, var2.height - var7, var6, var7);
- var1.clipRect(-var4, -var5, var6, var7);
- var1.drawImage(this.osimg, -var4, -var5, this);
- }
- }
-
- this.prevx = var4;
- this.prevy = var5;
- }
-
- public void update(Graphics var1) {
- this.paint(var1);
- }
-
- private void dbg(String var1) {
- System.out.println(var1);
- }
-
- public void reshape(int var1, int var2, int var3, int var4) {
- super.reshape(var1, var2, var3, var4);
- Dimension var5 = ((Component)this).size();
- if (this.client != null) {
- Dimension var6 = this.client.size();
- int var7 = var5.height;
- int var8 = var5.width;
- this.vert.setValues(this.vert.getValue(), var7, 0, var6.height - var5.height);
- this.horiz.setValues(this.horiz.getValue(), var8, 0, var6.width - var5.width);
- }
-
- }
- }
-