home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.basic;
-
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Rectangle;
- import java.awt.event.ActionEvent;
- import java.util.EventObject;
- import javax.swing.AbstractAction;
- import javax.swing.JScrollPane;
- import javax.swing.JViewport;
- import javax.swing.Scrollable;
-
- class BasicScrollPaneUI$ScrollAction extends AbstractAction {
- protected int orientation;
- protected int direction;
- private boolean block;
-
- protected BasicScrollPaneUI$ScrollAction(String var1, int var2, int var3, boolean var4) {
- super(var1);
- this.orientation = var2;
- this.direction = var3;
- this.block = var4;
- }
-
- public void actionPerformed(ActionEvent var1) {
- JScrollPane var2 = (JScrollPane)((EventObject)var1).getSource();
- JViewport var3 = var2.getViewport();
- Component var4;
- if (var3 != null && (var4 = var3.getView()) != null) {
- Rectangle var5 = var3.getViewRect();
- Dimension var6 = var4.getSize();
- int var7;
- if (var4 instanceof Scrollable) {
- if (this.block) {
- var7 = ((Scrollable)var4).getScrollableBlockIncrement(var5, this.orientation, this.direction);
- } else {
- var7 = ((Scrollable)var4).getScrollableUnitIncrement(var5, this.orientation, this.direction);
- }
- } else if (this.block) {
- if (this.orientation == 1) {
- var7 = var5.height;
- } else {
- var7 = var5.width;
- }
- } else {
- var7 = 10;
- }
-
- if (this.orientation == 1) {
- var5.y += var7 * this.direction;
- if (var5.y + var5.height > var6.height) {
- var5.y = Math.max(0, var6.height - var5.height);
- } else if (var5.y < 0) {
- var5.y = 0;
- }
- } else {
- var5.x += var7 * this.direction;
- if (var5.x + var5.width > var6.width) {
- var5.x = Math.max(0, var6.width - var5.width);
- } else if (var5.x < 0) {
- var5.x = 0;
- }
- }
-
- var3.setViewPosition(var5.getLocation());
- }
-
- }
- }
-