Implemented direct placing of stones via alt-key

git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@209 72836036-5685-4462-b002-a69064685172
This commit is contained in:
Bennet Gerlach 2011-05-10 02:10:30 +02:00
parent 201c40a399
commit 9c056cfef7
2 changed files with 21 additions and 8 deletions

View file

@ -63,7 +63,7 @@ abstract class AbstractStonePanel extends JPanel implements IStonePanel,
@Override
public void mouseClicked(MouseEvent e) {
clickAt(e.getPoint(), e.getClickCount(), e.isShiftDown(),
e.isControlDown());
e.isControlDown(), e.isAltDown());
}
@Override
@ -86,19 +86,31 @@ abstract class AbstractStonePanel extends JPanel implements IStonePanel,
}
/**
* clickAt is called when a click has occured
* clickAt is called when a click has occurred
*
* @param p the point in component coordinates
* @param clickCount the click count
* @param shift is shift down?
* @param control is control down?
* @param p
* the point in component coordinates
* @param clickCount
* the click count
* @param shift
* is shift down?
* @param control
* is control down?
* @param alt
* is alt down?
*/
protected void clickAt(Point p, int clickCount, boolean shift, boolean control) {
protected void clickAt(Point p, int clickCount, boolean shift,
boolean control, boolean alt) {
Insets insets = getInsets();
Pair<Integer, Integer> trans = getTranslation();
Position pos = stonePainter.calculatePosition(
p.x - insets.left - trans.getFirst(),
p.y - insets.top - trans.getSecond());
if (alt) {
clickEvent.emit(pos);
return;
}
Stone stone = getStoneAt(pos);
if (stone == null) {

View file

@ -156,7 +156,8 @@ class TablePanel extends AbstractStonePanel implements ITablePanel {
public void handle(Point p) {
Point p2 = SwingUtilities.convertPoint(stoneCollection, p,
TablePanel.this);
clickAt(p2, 1, false, false);
// theres nothing below here
clickAt(p2, 1, false, false, true);
}
});
add(stoneCollection);