Fix right-click support for cards

This commit is contained in:
drdev
2013-07-31 01:21:39 +00:00
parent 7686ef0d73
commit 49beec26c5
4 changed files with 17 additions and 43 deletions

View File

@@ -36,15 +36,6 @@ import forge.gui.match.controllers.CMessage;
public class CCommand implements ICDoc {
private final Player player;
private final VCommand view;
private boolean initializedAlready = false;
private MouseMotionListener mmlCardOver = new MouseMotionAdapter() { @Override
public void mouseMoved(final MouseEvent e) {
cardoverAction(e); } };
private final MouseListener madCardClick = new MouseAdapter() { @Override
public void mousePressed(final MouseEvent e) {
cardclickAction(e); } };
/**
* Controls Swing components of a player's command instance.
@@ -59,15 +50,6 @@ public class CCommand implements ICDoc {
@Override
public void initialize() {
if (initializedAlready) { return; }
initializedAlready = true;
// Listeners
// Battlefield card clicks
this.view.getTabletop().addMouseListener(madCardClick);
// Battlefield card mouseover
this.view.getTabletop().addMouseMotionListener(mmlCardOver);
}
@Override
@@ -84,28 +66,6 @@ public class CCommand implements ICDoc {
return this.view;
}
/** */
private void cardoverAction(MouseEvent e) {
boolean isShiftDown = (e.getModifiers() & Event.SHIFT_MASK) != 0;
final Card c = CCommand.this.view.getTabletop().getHoveredCard(e);
if (c != null) {
CMatchUI.SINGLETON_INSTANCE.setCard(c, isShiftDown);
}
}
/** */
private void cardclickAction(final MouseEvent e) {
// original version:
// final Card c = t.getDetailController().getCurrentCard();
// Roujin's bug fix version dated 2-12-2012
final Card c = CCommand.this.view.getTabletop().getHoveredCard(e);
if (c != null && c.isInZone(ZoneType.Command)) {
//TODO: Cast commander/activate avatar/roll planar dice here.
CMessage.SINGLETON_INSTANCE.getInputControl().selectCard(c, e.isMetaDown());
}
}
/* (non-Javadoc)
* @see forge.gui.framework.ICDoc#getCommandOnSelect()
*/

View File

@@ -488,7 +488,7 @@ public abstract class CardPanelContainer extends JPanel {
* @param evt
* a {@link java.awt.event.MouseEvent} object.
*/
public final void mouseRightClicked(final CardPanel panel, final MouseEvent evt) {
public void mouseRightClicked(final CardPanel panel, final MouseEvent evt) {
for (final CardPanelMouseListener listener : this.listeners) {
listener.mouseRightClicked(panel, evt);
}

View File

@@ -63,7 +63,14 @@ public class HandArea extends CardArea {
/** {@inheritDoc} */
@Override
public final void mouseLeftClicked(final CardPanel panel, final MouseEvent evt) {
CMessage.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), evt.isMetaDown());
CMessage.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), false);
super.mouseLeftClicked(panel, evt);
}
/** {@inheritDoc} */
@Override
public final void mouseRightClicked(final CardPanel panel, final MouseEvent evt) {
CMessage.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), true);
super.mouseRightClicked(panel, evt);
}
}

View File

@@ -501,12 +501,19 @@ public class PlayArea extends CardPanelContainer implements CardPanelMouseListen
/** {@inheritDoc} */
@Override
public final void mouseLeftClicked(final CardPanel panel, final MouseEvent evt) {
CMessage.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), evt.isMetaDown());
CMessage.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), false);
if ((panel.getTappedAngle() != 0) && (panel.getTappedAngle() != CardPanel.TAPPED_ANGLE)) {
return;
}
super.mouseLeftClicked(panel, evt);
}
/** {@inheritDoc} */
@Override
public final void mouseRightClicked(final CardPanel panel, final MouseEvent evt) {
CMessage.SINGLETON_INSTANCE.getInputControl().selectCard(panel.getCard(), true);
super.mouseRightClicked(panel, evt);
}
/**
* <p>