home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Insets;
- import java.awt.LayoutManager;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.event.ComponentListener;
- import javax.accessibility.Accessible;
- import javax.accessibility.AccessibleContext;
- import javax.swing.border.Border;
- import javax.swing.event.ChangeEvent;
- import javax.swing.event.ChangeListener;
-
- public class JViewport extends JComponent implements Accessible {
- protected boolean isViewSizeSet = false;
- protected Point lastPaintPosition = null;
- protected boolean backingStore = false;
- protected transient Image backingStoreImage = null;
- protected boolean scrollUnderway = false;
- private ComponentListener viewListener = null;
- private transient ChangeEvent changeEvent = null;
- // $FF: synthetic field
- static Class class$javax$swing$event$ChangeListener;
-
- public JViewport() {
- ((Container)this).setLayout(this.createLayoutManager());
- }
-
- public void addChangeListener(ChangeListener var1) {
- super.listenerList.add(class$javax$swing$event$ChangeListener != null ? class$javax$swing$event$ChangeListener : (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")), var1);
- }
-
- protected void addImpl(Component var1, Object var2, int var3) {
- this.setView(var1);
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- protected boolean computeBlit(int var1, int var2, Point var3, Point var4, Dimension var5, Rectangle var6) {
- int var7 = Math.abs(var1);
- int var8 = Math.abs(var2);
- Dimension var9 = this.getExtentSize();
- if (var1 == 0 && var2 != 0 && var8 < var9.height) {
- if (var2 < 0) {
- var3.y = -var2;
- var4.y = 0;
- var6.y = var9.height + var2;
- } else {
- var3.y = 0;
- var4.y = var2;
- var6.y = 0;
- }
-
- var6.x = var3.x = var4.x = 0;
- var5.width = var9.width;
- var5.height = var9.height - var8;
- var6.width = var9.width;
- var6.height = var8;
- return true;
- } else if (var2 == 0 && var1 != 0 && var7 < var9.width) {
- if (var1 < 0) {
- var3.x = -var1;
- var4.x = 0;
- var6.x = var9.width + var1;
- } else {
- var3.x = 0;
- var4.x = var1;
- var6.x = 0;
- }
-
- var6.y = var3.y = var4.y = 0;
- var5.width = var9.width - var7;
- var5.height = var9.height;
- var6.y = 0;
- var6.width = var7;
- var6.height = var9.height;
- return true;
- } else {
- return false;
- }
- }
-
- protected LayoutManager createLayoutManager() {
- return new ViewportLayout();
- }
-
- protected ViewListener createViewListener() {
- return new ViewListener(this);
- }
-
- protected void fireStateChanged() {
- Object[] var1 = super.listenerList.getListenerList();
-
- for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
- if (var1[var2] == (class$javax$swing$event$ChangeListener != null ? class$javax$swing$event$ChangeListener : (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")))) {
- if (this.changeEvent == null) {
- this.changeEvent = new ChangeEvent(this);
- }
-
- ((ChangeListener)var1[var2 + 1]).stateChanged(this.changeEvent);
- }
- }
-
- }
-
- public AccessibleContext getAccessibleContext() {
- if (super.accessibleContext == null) {
- super.accessibleContext = new AccessibleJViewport(this);
- }
-
- return super.accessibleContext;
- }
-
- private Graphics getBackingStoreGraphics(Graphics var1) {
- Graphics var2 = this.backingStoreImage.getGraphics();
- var2.setColor(var1.getColor());
- var2.setFont(var1.getFont());
- var2.setClip(var1.getClipBounds());
- return var2;
- }
-
- public Dimension getExtentSize() {
- return ((Component)this).getSize();
- }
-
- public final Insets getInsets() {
- return new Insets(0, 0, 0, 0);
- }
-
- public final Insets getInsets(Insets var1) {
- var1.left = var1.top = var1.right = var1.bottom = 0;
- return var1;
- }
-
- public Component getView() {
- return ((Container)this).getComponentCount() > 0 ? ((Container)this).getComponent(0) : null;
- }
-
- private Point getViewLocation() {
- Component var1 = this.getView();
- return var1 != null ? var1.getLocation() : new Point(0, 0);
- }
-
- public Point getViewPosition() {
- Component var1 = this.getView();
- if (var1 != null) {
- Point var2 = var1.getLocation();
- var2.x = -var2.x;
- var2.y = -var2.y;
- return var2;
- } else {
- return new Point(0, 0);
- }
- }
-
- public Rectangle getViewRect() {
- return new Rectangle(this.getViewPosition(), this.getExtentSize());
- }
-
- public Dimension getViewSize() {
- Component var1 = this.getView();
- if (var1 == null) {
- return new Dimension(0, 0);
- } else {
- return this.isViewSizeSet ? var1.getSize() : var1.getPreferredSize();
- }
- }
-
- public boolean isBackingStoreEnabled() {
- return this.backingStore;
- }
-
- public boolean isOptimizedDrawingEnabled() {
- return false;
- }
-
- public void paint(Graphics var1) {
- int var2 = ((JComponent)this).getWidth();
- int var3 = ((JComponent)this).getHeight();
- if (var2 > 0 && var3 > 0) {
- if (!this.backingStore) {
- super.paint(var1);
- this.lastPaintPosition = this.getViewLocation();
- } else {
- Rectangle var4 = this.getView().getBounds();
- var1.clipRect(0, 0, var4.width, var4.height);
- if (this.backingStoreImage == null) {
- this.backingStoreImage = ((Component)this).createImage(var2, var3);
- this.paintViaBackingStore(var1);
- } else if (this.scrollUnderway && !this.lastPaintPosition.equals(this.getViewLocation())) {
- Point var5 = new Point();
- Point var6 = new Point();
- Dimension var7 = new Dimension();
- Rectangle var8 = new Rectangle();
- Point var9 = this.getViewLocation();
- int var10 = var9.x - this.lastPaintPosition.x;
- int var11 = var9.y - this.lastPaintPosition.y;
- boolean var12 = this.computeBlit(var10, var11, var5, var6, var7, var8);
- if (!var12) {
- this.paintViaBackingStore(var1);
- } else {
- int var13 = var6.x - var5.x;
- int var14 = var6.y - var5.y;
- Graphics var15 = this.getBackingStoreGraphics(var1);
- var15.copyArea(var5.x, var5.y, var7.width, var7.height, var13, var14);
- Rectangle var16 = var4.intersection(var8);
- var15.setClip(var16);
- super.paint(var15);
- var1.drawImage(this.backingStoreImage, 0, 0, this);
- }
- } else {
- this.paintViaBackingStore(var1);
- }
-
- this.lastPaintPosition = this.getViewLocation();
- this.scrollUnderway = false;
- }
- }
- }
-
- private void paintViaBackingStore(Graphics var1) {
- Graphics var2 = this.getBackingStoreGraphics(var1);
- super.paint(var2);
- var1.drawImage(this.backingStoreImage, 0, 0, this);
- }
-
- protected String paramString() {
- String var1 = this.isViewSizeSet ? "true" : "false";
- String var2 = this.lastPaintPosition != null ? this.lastPaintPosition.toString() : "";
- String var3 = this.backingStore ? "true" : "false";
- String var4 = this.backingStoreImage != null ? this.backingStoreImage.toString() : "";
- String var5 = this.scrollUnderway ? "true" : "false";
- return super.paramString() + ",backingStore=" + var3 + ",backingStoreImage=" + var4 + ",isViewSizeSet=" + var1 + ",lastPaintPosition=" + var2 + ",scrollUnderway=" + var5;
- }
-
- private int positionAdjustment(int var1, int var2, int var3) {
- if (var3 >= 0 && var2 + var3 <= var1) {
- return 0;
- } else if (var3 <= 0 && var2 + var3 >= var1) {
- return 0;
- } else if (var3 > 0 && var2 <= var1) {
- return -var3 + var1 - var2;
- } else if (var3 >= 0 && var2 >= var1) {
- return -var3;
- } else if (var3 <= 0 && var2 <= var1) {
- return -var3;
- } else {
- return var3 < 0 && var2 >= var1 ? -var3 + var1 - var2 : 0;
- }
- }
-
- public void remove(Component var1) {
- var1.removeComponentListener(this.viewListener);
- super.remove(var1);
- }
-
- public void removeChangeListener(ChangeListener var1) {
- super.listenerList.remove(class$javax$swing$event$ChangeListener != null ? class$javax$swing$event$ChangeListener : (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")), var1);
- }
-
- public void repaint(long var1, int var3, int var4, int var5, int var6) {
- Container var7 = ((Component)this).getParent();
- if (var7 != null) {
- ((Component)var7).repaint(var1, var3 + ((JComponent)this).getX(), var4 + ((JComponent)this).getY(), var5, var6);
- } else {
- super.repaint(var1, var3, var4, var5, var6);
- }
-
- }
-
- public void reshape(int var1, int var2, int var3, int var4) {
- boolean var5 = ((JComponent)this).getWidth() != var3 || ((JComponent)this).getHeight() != var4;
- if (var5) {
- this.backingStoreImage = null;
- }
-
- super.reshape(var1, var2, var3, var4);
- if (var5) {
- this.fireStateChanged();
- }
-
- }
-
- public void scrollRectToVisible(Rectangle var1) {
- Component var2 = this.getView();
- if (var2 != null) {
- int var3 = 0;
- int var4 = 0;
- Rectangle var5 = ((Component)this).getBounds();
- var3 = this.positionAdjustment(var5.width, var1.width, var1.x);
- var4 = this.positionAdjustment(var5.height, var1.height, var1.y);
- if (var3 != 0 || var4 != 0) {
- Point var6 = this.getViewPosition();
- this.setViewPosition(new Point(var6.x - var3, var6.y - var4));
- this.scrollUnderway = false;
- }
-
- }
- }
-
- public void setBackingStoreEnabled(boolean var1) {
- this.backingStore = var1;
- }
-
- public final void setBorder(Border var1) {
- if (var1 != null) {
- throw new IllegalArgumentException("JViewport.setBorder() not supported");
- }
- }
-
- public void setExtentSize(Dimension var1) {
- Dimension var2 = this.getExtentSize();
- if (!var1.equals(var2)) {
- ((Component)this).setSize(var1);
- this.fireStateChanged();
- }
-
- }
-
- public void setView(Component var1) {
- int var2 = ((Container)this).getComponentCount();
-
- for(int var3 = var2 - 1; var3 >= 0; --var3) {
- ((Container)this).remove(var3);
- }
-
- this.isViewSizeSet = false;
- if (var1 != null) {
- super.addImpl(var1, (Object)null, -1);
- this.viewListener = this.createViewListener();
- var1.addComponentListener(this.viewListener);
- }
-
- }
-
- public void setViewPosition(Point var1) {
- Component var2 = this.getView();
- if (var2 != null) {
- int var5 = var1.x;
- int var6 = var1.y;
- int var3;
- int var4;
- if (var2 instanceof JComponent) {
- JComponent var7 = (JComponent)var2;
- var3 = var7.getX();
- var4 = var7.getY();
- Math.min(var5, var7.getWidth() - 1);
- Math.min(var6, var7.getHeight() - 1);
- } else {
- Rectangle var11 = var2.getBounds();
- var3 = var11.x;
- var4 = var11.y;
- Math.min(var5, var11.width - 1);
- Math.min(var6, var11.height - 1);
- }
-
- var5 = Math.max(0, var1.x);
- var6 = Math.max(0, var1.y);
- int var12 = -var5;
- int var8 = -var6;
- if (var3 != var12 || var4 != var8) {
- this.scrollUnderway = true;
- var2.setLocation(var12, var8);
- this.fireStateChanged();
- }
-
- }
- }
-
- public void setViewSize(Dimension var1) {
- Component var2 = this.getView();
- if (var2 != null) {
- Dimension var3 = var2.getSize();
- if (!var1.equals(var3)) {
- this.scrollUnderway = false;
- var2.setSize(var1);
- this.isViewSizeSet = true;
- this.fireStateChanged();
- }
- }
-
- }
-
- public Dimension toViewCoordinates(Dimension var1) {
- return new Dimension(var1);
- }
-
- public Point toViewCoordinates(Point var1) {
- return new Point(var1);
- }
- }
-