home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / javax / swing / plaf / basic / BasicScrollPaneUI$ScrollAction.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  1.5 KB  |  70 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.Rectangle;
  6. import java.awt.event.ActionEvent;
  7. import java.util.EventObject;
  8. import javax.swing.AbstractAction;
  9. import javax.swing.JScrollPane;
  10. import javax.swing.JViewport;
  11. import javax.swing.Scrollable;
  12.  
  13. class BasicScrollPaneUI$ScrollAction extends AbstractAction {
  14.    protected int orientation;
  15.    protected int direction;
  16.    private boolean block;
  17.  
  18.    protected BasicScrollPaneUI$ScrollAction(String var1, int var2, int var3, boolean var4) {
  19.       super(var1);
  20.       this.orientation = var2;
  21.       this.direction = var3;
  22.       this.block = var4;
  23.    }
  24.  
  25.    public void actionPerformed(ActionEvent var1) {
  26.       JScrollPane var2 = (JScrollPane)((EventObject)var1).getSource();
  27.       JViewport var3 = var2.getViewport();
  28.       Component var4;
  29.       if (var3 != null && (var4 = var3.getView()) != null) {
  30.          Rectangle var5 = var3.getViewRect();
  31.          Dimension var6 = var4.getSize();
  32.          int var7;
  33.          if (var4 instanceof Scrollable) {
  34.             if (this.block) {
  35.                var7 = ((Scrollable)var4).getScrollableBlockIncrement(var5, this.orientation, this.direction);
  36.             } else {
  37.                var7 = ((Scrollable)var4).getScrollableUnitIncrement(var5, this.orientation, this.direction);
  38.             }
  39.          } else if (this.block) {
  40.             if (this.orientation == 1) {
  41.                var7 = var5.height;
  42.             } else {
  43.                var7 = var5.width;
  44.             }
  45.          } else {
  46.             var7 = 10;
  47.          }
  48.  
  49.          if (this.orientation == 1) {
  50.             var5.y += var7 * this.direction;
  51.             if (var5.y + var5.height > var6.height) {
  52.                var5.y = Math.max(0, var6.height - var5.height);
  53.             } else if (var5.y < 0) {
  54.                var5.y = 0;
  55.             }
  56.          } else {
  57.             var5.x += var7 * this.direction;
  58.             if (var5.x + var5.width > var6.width) {
  59.                var5.x = Math.max(0, var6.width - var5.width);
  60.             } else if (var5.x < 0) {
  61.                var5.x = 0;
  62.             }
  63.          }
  64.  
  65.          var3.setViewPosition(var5.getLocation());
  66.       }
  67.  
  68.    }
  69. }
  70.