use of mage.client.util.Event in project mage by magefree.
the class NewTableDialog method createPlayers.
private void createPlayers(int numPlayers) {
// add missing player panels
if (numPlayers > players.size()) {
while (players.size() != numPlayers) {
TablePlayerPanel playerPanel = new TablePlayerPanel();
PlayerType playerType = PlayerType.HUMAN;
if (prefPlayerTypes.size() >= players.size() && !players.isEmpty()) {
playerType = prefPlayerTypes.get(players.size() - 1);
}
playerPanel.init(players.size() + 2, playerType);
players.add(playerPanel);
playerPanel.addPlayerTypeEventListener((Listener<Event>) event -> drawPlayers());
}
} else // remove player panels no longer needed
if (numPlayers < players.size()) {
while (players.size() != numPlayers) {
players.remove(players.size() - 1);
}
}
drawPlayers();
}
use of mage.client.util.Event in project mage by magefree.
the class CardEventSource method fireEvent.
public void fireEvent(SimpleCardView card, ClientEventType eventType, MouseEvent e, boolean forceFakeAltDown) {
Event event;
if (e != null) {
// normal mouse event
event = new Event(card, eventType, 0, e.getX(), e.getY(), e.getComponent(), e, forceFakeAltDown);
} else {
// fake mouse event
event = new Event(card, eventType, 0, 0, 0, null, null, forceFakeAltDown);
}
fireEvent(event);
}
use of mage.client.util.Event in project mage by magefree.
the class UpdateDeckTask method init.
private void init() {
// this.cardSelector.setVisible(true);
this.panelLeft.setVisible(true);
// TOP AREA: ENABLE ADDING/REMOVING BY DOUBLE CLICKS
for (ICardGrid component : this.cardSelector.getCardGridComponents()) {
// component.clearCardEventListeners();
component.addCardEventListener((Listener<Event>) event -> {
switch(event.getEventType()) {
case CARD_DOUBLE_CLICK:
{
boolean gameMode = mode != DeckEditorMode.FREE_BUILDING;
if (gameMode) {
moveSelectorCardToDeck(event);
} else {
if (event.isMouseAltDown()) {
moveSelectorCardToSideboard(event);
} else {
moveSelectorCardToDeck(event);
}
}
break;
}
case DECK_REMOVE_SELECTION_MAIN:
{
DeckEditorPanel.this.deckArea.getDeckList().removeSelection();
break;
}
case DECK_REMOVE_SELECTION_SIDEBOARD:
{
DeckEditorPanel.this.deckArea.getSideboardList().removeSelection();
break;
}
}
refreshDeck();
});
}
// BOTTOM AREA: ENABLE ADDING/REMOVING CARDS in MAINBOARD
// do not clear event listener - DragCardGrid already have own listeners for cards
// this.deckArea.clearDeckEventListeners();
this.deckArea.addDeckEventListener((Listener<Event>) event -> {
if (mode == DeckEditorMode.FREE_BUILDING) {
switch(event.getEventType()) {
case CARD_DOUBLE_CLICK:
{
SimpleCardView cardView = (SimpleCardView) event.getSource();
Card card = deck.findCard(cardView.getId());
if (card == null) {
return;
}
if (event.isMouseAltDown()) {
deck.getCards().remove(card);
deck.getSideboard().add(card);
} else {
deck.getCards().remove(card);
}
hidePopup();
refreshDeck();
break;
}
case SET_NUMBER:
{
setCardNumberToCardsList(event, deck.getCards());
break;
}
case DECK_REMOVE_SPECIFIC_CARD:
{
SimpleCardView cardView = (SimpleCardView) event.getSource();
Card card = deck.findCard(cardView.getId());
if (card == null) {
return;
}
deck.getCards().remove(card);
storeTemporaryCard(card);
break;
}
case DECK_ADD_SPECIFIC_CARD:
{
SimpleCardView cardView = (CardView) event.getSource();
deck.getCards().add(retrieveTemporaryCard(cardView));
break;
}
}
} else {
switch(event.getEventType()) {
case CARD_DOUBLE_CLICK:
{
SimpleCardView cardView = (SimpleCardView) event.getSource();
Card card = deck.findCard(cardView.getId());
if (card == null) {
return;
}
deck.getCards().remove(card);
deck.getSideboard().add(card);
cardSelector.loadSideboard(new ArrayList<>(deck.getSideboard()), this.bigCard);
hidePopup();
refreshDeck();
break;
}
case DECK_REMOVE_SPECIFIC_CARD:
{
SimpleCardView cardView = (SimpleCardView) event.getSource();
Card card = deck.findCard(cardView.getId());
if (card == null) {
return;
}
deck.getCards().remove(card);
storeTemporaryCard(card);
break;
}
case DECK_ADD_SPECIFIC_CARD:
{
SimpleCardView cardView = (CardView) event.getSource();
deck.getCards().add(retrieveTemporaryCard(cardView));
break;
}
}
}
});
// BOTTOM AREA: ENABLE ADDING/REMOVING CARDS in SIDEBOARD
// do not clear event listener - DragCardGrid already have own listeners for cards
// this.deckArea.clearSideboardEventListeners();
this.deckArea.addSideboardEventListener(// card manipulation events
(Listener<Event>) event -> {
if (mode == DeckEditorMode.FREE_BUILDING) {
switch(event.getEventType()) {
case CARD_DOUBLE_CLICK:
{
SimpleCardView cardView = (SimpleCardView) event.getSource();
Card card = deck.findSideboardCard(cardView.getId());
if (card == null) {
return;
}
if (event.isMouseAltDown()) {
deck.getSideboard().remove(card);
deck.getCards().add(card);
} else {
deck.getSideboard().remove(card);
}
hidePopup();
refreshDeck();
break;
}
case SET_NUMBER:
{
setCardNumberToCardsList(event, deck.getSideboard());
break;
}
case DECK_REMOVE_SPECIFIC_CARD:
{
SimpleCardView cardView = (SimpleCardView) event.getSource();
Card card = deck.findSideboardCard(cardView.getId());
if (card == null) {
return;
}
deck.getSideboard().remove(card);
storeTemporaryCard(card);
break;
}
case DECK_ADD_SPECIFIC_CARD:
{
SimpleCardView cardView = (CardView) event.getSource();
deck.getSideboard().add(retrieveTemporaryCard(cardView));
break;
}
}
} else {
switch(event.getEventType()) {
case DECK_REMOVE_SPECIFIC_CARD:
{
SimpleCardView cardView = (SimpleCardView) event.getSource();
Card card = deck.findSideboardCard(cardView.getId());
if (card == null) {
return;
}
deck.getSideboard().remove(card);
storeTemporaryCard(card);
break;
}
case DECK_ADD_SPECIFIC_CARD:
{
SimpleCardView cardView = (CardView) event.getSource();
deck.getSideboard().add(retrieveTemporaryCard(cardView));
break;
}
case CARD_DOUBLE_CLICK:
{
SimpleCardView cardView = (SimpleCardView) event.getSource();
Card card = deck.findSideboardCard(cardView.getId());
if (card == null) {
return;
}
deck.getSideboard().remove(card);
deck.getCards().add(card);
hidePopup();
refreshDeck();
break;
}
}
}
});
refreshDeck(true);
// auto-import dropped files from OS
if (mode == DeckEditorMode.FREE_BUILDING) {
setDropTarget(new DropTarget(this, new DnDDeckTargetListener() {
@Override
protected boolean handleFilesDrop(boolean move, List<File> files) {
loadDeck(files.get(0).getAbsolutePath(), true);
return true;
}
@Override
protected boolean handlePlainTextDrop(boolean move, String text) {
String tmpFile = DeckUtil.writeTextToTempFile(text);
loadDeck(tmpFile, false);
return true;
}
}));
}
this.setVisible(true);
this.repaint();
}
Aggregations