Search in sources :

Example 1 with Listener

use of mage.client.util.Listener 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();
}
Also used : MageComponents(mage.client.components.MageComponents) SkillLevel(mage.constants.SkillLevel) MageFrame(mage.client.MageFrame) TableView(mage.view.TableView) TablePlayerPanel(mage.client.table.TablePlayerPanel) RangeOfInfluence(mage.constants.RangeOfInfluence) DeckImporter(mage.cards.decks.importer.DeckImporter) MultiplayerAttackOption(mage.constants.MultiplayerAttackOption) IOException(java.io.IOException) UUID(java.util.UUID) PlayerType(mage.players.PlayerType) FileNotFoundException(java.io.FileNotFoundException) ArrayList(java.util.ArrayList) Logger(org.apache.log4j.Logger) List(java.util.List) Event(mage.client.util.Event) IgnoreList(mage.client.util.IgnoreList) Listener(mage.client.util.Listener) MatchOptions(mage.game.match.MatchOptions) MulliganType(mage.game.mulligan.MulliganType) GameTypeView(mage.view.GameTypeView) SessionHandler(mage.client.SessionHandler) MatchTimeLimit(mage.constants.MatchTimeLimit) javax.swing(javax.swing) TablePlayerPanel(mage.client.table.TablePlayerPanel) PlayerType(mage.players.PlayerType) Event(mage.client.util.Event)

Example 2 with Listener

use of mage.client.util.Listener 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();
}
Also used : DropTarget(java.awt.dnd.DropTarget) java.util(java.util) MageFrame(mage.client.MageFrame) DeckEditorMode(mage.client.constants.Constants.DeckEditorMode) DeckGenerator(mage.client.deck.generator.DeckGenerator) AudioManager(mage.client.util.audio.AudioManager) mage.cards.decks(mage.cards.decks) SimpleCardView(mage.view.SimpleCardView) Border(javax.swing.border.Border) Logger(org.apache.log4j.Logger) CardInfoPane(mage.components.CardInfoPane) Card(mage.cards.Card) SessionHandler(mage.client.SessionHandler) ICardGrid(mage.client.cards.ICardGrid) Session(mage.remote.Session) java.util.concurrent(java.util.concurrent) DeckImporter(mage.cards.decks.importer.DeckImporter) AddLandDialog(mage.client.dialog.AddLandDialog) IOException(java.io.IOException) CardRepository(mage.cards.repository.CardRepository) FileFilter(javax.swing.filechooser.FileFilter) File(java.io.File) java.awt(java.awt) PreferencesDialog(mage.client.dialog.PreferencesDialog) Plugins(mage.client.plugins.impl.Plugins) List(java.util.List) BigCard(mage.client.cards.BigCard) DeckGeneratorException(mage.client.deck.generator.DeckGenerator.DeckGeneratorException) Event(mage.client.util.Event) Listener(mage.client.util.Listener) CardInfo(mage.cards.repository.CardInfo) DeckUtil(mage.util.DeckUtil) java.awt.event(java.awt.event) LegalityLabel(mage.client.components.LegalityLabel) CardView(mage.view.CardView) XMAGE_INFO(mage.cards.decks.DeckFormats.XMAGE_INFO) GameException(mage.game.GameException) XMAGE(mage.cards.decks.DeckFormats.XMAGE) javax.swing(javax.swing) ICardGrid(mage.client.cards.ICardGrid) SimpleCardView(mage.view.SimpleCardView) SimpleCardView(mage.view.SimpleCardView) CardView(mage.view.CardView) Event(mage.client.util.Event) List(java.util.List) DropTarget(java.awt.dnd.DropTarget) Card(mage.cards.Card) BigCard(mage.client.cards.BigCard)

Aggregations

IOException (java.io.IOException)2 List (java.util.List)2 javax.swing (javax.swing)2 DeckImporter (mage.cards.decks.importer.DeckImporter)2 MageFrame (mage.client.MageFrame)2 SessionHandler (mage.client.SessionHandler)2 Event (mage.client.util.Event)2 Listener (mage.client.util.Listener)2 Logger (org.apache.log4j.Logger)2 java.awt (java.awt)1 DropTarget (java.awt.dnd.DropTarget)1 java.awt.event (java.awt.event)1 File (java.io.File)1 FileNotFoundException (java.io.FileNotFoundException)1 java.util (java.util)1 ArrayList (java.util.ArrayList)1 UUID (java.util.UUID)1 java.util.concurrent (java.util.concurrent)1 Border (javax.swing.border.Border)1 FileFilter (javax.swing.filechooser.FileFilter)1