1486 /**
1487 * Listener for cursor keys.
1488 */
1489 protected class ArrowButtonListener extends MouseAdapter
1490 {
1491 // Because we are handling both mousePressed and Actions
1492 // we need to make sure we don't fire under both conditions.
1493 // (keyfocus on scrollbars causes action without mousePress
1494 boolean handledEvent;
1495
1496 public void mousePressed(MouseEvent e) {
1497 if(!scrollbar.isEnabled()) { return; }
1498 // not an unmodified left mouse button
1499 //if(e.getModifiers() != InputEvent.BUTTON1_MASK) {return; }
1500 if( ! SwingUtilities.isLeftMouseButton(e)) { return; }
1501
1502 int direction = (e.getSource() == incrButton) ? 1 : -1;
1503
1504 scrollByUnit(direction);
1505 scrollTimer.stop();
1506 scrollListener.setDirection(direction);
1507 scrollListener.setScrollByBlock(false);
1508 scrollTimer.start();
1509
1510 handledEvent = true;
1511 if (!scrollbar.hasFocus() && scrollbar.isRequestFocusEnabled()) {
1512 scrollbar.requestFocus();
1513 }
1514 }
1515
1516 public void mouseReleased(MouseEvent e) {
1517 scrollTimer.stop();
1518 handledEvent = false;
1519 scrollbar.setValueIsAdjusting(false);
1520 }
1521 }
1522
1523
1524 /**
1525 * Listener for scrolling events initiated in the
1526 * <code>ScrollPane</code>.
1527 */
1528 protected class ScrollListener implements ActionListener
1529 {
1530 int direction = +1;
1531 boolean useBlockIncrement;
1532
|
1486 /**
1487 * Listener for cursor keys.
1488 */
1489 protected class ArrowButtonListener extends MouseAdapter
1490 {
1491 // Because we are handling both mousePressed and Actions
1492 // we need to make sure we don't fire under both conditions.
1493 // (keyfocus on scrollbars causes action without mousePress
1494 boolean handledEvent;
1495
1496 public void mousePressed(MouseEvent e) {
1497 if(!scrollbar.isEnabled()) { return; }
1498 // not an unmodified left mouse button
1499 //if(e.getModifiers() != InputEvent.BUTTON1_MASK) {return; }
1500 if( ! SwingUtilities.isLeftMouseButton(e)) { return; }
1501
1502 int direction = (e.getSource() == incrButton) ? 1 : -1;
1503
1504 scrollByUnit(direction);
1505 scrollTimer.stop();
1506 if (SwingUtilities.windowForComponent((Component)e.getSource())
1507 .isFocused()) {
1508 scrollListener.setDirection(direction);
1509 scrollListener.setScrollByBlock(false);
1510 scrollTimer.start();
1511
1512 handledEvent = true;
1513 if (!scrollbar.hasFocus() && scrollbar.isRequestFocusEnabled()) {
1514 scrollbar.requestFocus();
1515 }
1516 } else {
1517 scrollbar.setValueIsAdjusting(false);
1518 ButtonModel model = ((AbstractButton)e.getSource()).getModel();
1519 if (model != null) {
1520 model.setPressed(false);
1521 model.setRollover(false);
1522 }
1523 }
1524 }
1525
1526 public void mouseReleased(MouseEvent e) {
1527 scrollTimer.stop();
1528 handledEvent = false;
1529 scrollbar.setValueIsAdjusting(false);
1530 }
1531 }
1532
1533
1534 /**
1535 * Listener for scrolling events initiated in the
1536 * <code>ScrollPane</code>.
1537 */
1538 protected class ScrollListener implements ActionListener
1539 {
1540 int direction = +1;
1541 boolean useBlockIncrement;
1542
|