package statalign.ui;
import java.awt.Window;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JScrollBar;
public class ScrollAdapter extends KeyAdapter {
private JScrollBar scroll;
private Window window;
private int scrollMultiplier = 1;
ScrollAdapter(JScrollBar scroll) {
this.scroll = scroll;
}
ScrollAdapter(JScrollBar scroll, int scrollMultiplier) {
this.scroll = scroll;
this.scrollMultiplier = scrollMultiplier;
}
ScrollAdapter(JScrollBar scroll, int scrollMultiplier, Window windowDispose) {
this.scroll = scroll;
this.scrollMultiplier = scrollMultiplier;
this.window = windowDispose;
}
public int getScrollMultiplier() {
return scrollMultiplier;
}
public void setScrollMultiplier(int scrollMultiplier) {
this.scrollMultiplier = scrollMultiplier;
}
public void setWindowDispose(Window window) {
this.window = window;
}
@Override
public void keyPressed(KeyEvent e) {
// System.out.println("before: "+scroll.getValue());
if(e.getKeyCode() == KeyEvent.VK_DOWN) {
int value = Math.min(scroll.getMaximum(),
scroll.getValue()+scroll.getBlockIncrement()*scrollMultiplier);
// System.out.println(value);
scroll.setValue(value);
// System.out.println(scroll.getValue());
} else if(e.getKeyCode() == KeyEvent.VK_UP) {
int value = Math.max(scroll.getMinimum(),
scroll.getValue()-scroll.getBlockIncrement()*scrollMultiplier);
// System.out.println(value);
scroll.setValue(value);
// System.out.println(scroll.getValue());
} else if(e.getKeyCode() == KeyEvent.VK_HOME) {
int value = scroll.getMinimum();
// System.out.println(value);
scroll.setValue(value);
// System.out.println(scroll.getValue());
} else if(e.getKeyCode() == KeyEvent.VK_END) {
int value = scroll.getMaximum();
// System.out.println(value);
scroll.setValue(value);
// System.out.println(scroll.getValue());
} else if(e.getKeyCode() == KeyEvent.VK_ESCAPE && window != null) {
window.dispose();
}
}
}