diff options
Diffstat (limited to 'src/jrummikub/view/impl/StonePanel.java')
-rw-r--r-- | src/jrummikub/view/impl/StonePanel.java | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/jrummikub/view/impl/StonePanel.java b/src/jrummikub/view/impl/StonePanel.java index b47c354..d5d56a9 100644 --- a/src/jrummikub/view/impl/StonePanel.java +++ b/src/jrummikub/view/impl/StonePanel.java @@ -13,37 +13,38 @@ import jrummikub.view.IClickable; @SuppressWarnings("serial") abstract class StonePanel extends JPanel implements IClickable { private StonePainter stonePainter; - + private Event2<Position, Boolean> clickEvent = new Event2<Position, Boolean>(); private Event2<Position, Boolean> rangeClickEvent = new Event2<Position, Boolean>(); private Event2<Position, Boolean> setClickEvent = new Event2<Position, Boolean>(); - + protected StonePainter getStonePainter() { return stonePainter; } - + public StonePanel() { this(1); } - + public StonePanel(float scale) { super(true); // Set double buffered - + stonePainter = new StonePainter(scale); - + addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { Insets insets = getInsets(); Event2<Position, Boolean> event = clickEvent; - + if (e.isShiftDown()) event = rangeClickEvent; else if (e.getClickCount() >= 2) event = setClickEvent; - - event.fire(stonePainter.calculatePosition(e.getX() - insets.left, - e.getY() - insets.top), e.isControlDown()); + + event.fire( + stonePainter.calculatePosition(e.getX() - insets.left, e.getY() + - insets.top), e.isControlDown()); } }); } |