Search in sources :

Example 16 with DisplayableCard

use of org.magic.game.gui.components.DisplayableCard in project MtgDesktopCompanion by nicho92.

the class DrawActions method actionPerformed.

@Override
public void actionPerformed(ActionEvent e) {
    try {
        GamePanelGUI.getInstance().getPlayer().drawCard(1);
        GamePanelGUI.getInstance().getLblHandCount().setText(String.valueOf(GamePanelGUI.getInstance().getPlayer().getHand().size()));
        GamePanelGUI.getInstance().getLblHandCount().setText(String.valueOf(GamePanelGUI.getInstance().getPlayer().getLibrary().size()));
        DisplayableCard c = new DisplayableCard(GamePanelGUI.getInstance().getPlayer().getHand().get(GamePanelGUI.getInstance().getPlayer().getHand().size() - 1), MTGControler.getInstance().getCardsDimension(), true);
        c.enableDrag(true);
        GamePanelGUI.getInstance().getHandPanel().addComponent(c);
    } catch (IndexOutOfBoundsException ex) {
        JOptionPane.showMessageDialog(null, "Not enougth cards in library", "Error", JOptionPane.ERROR_MESSAGE);
    }
}
Also used : DisplayableCard(org.magic.game.gui.components.DisplayableCard)

Example 17 with DisplayableCard

use of org.magic.game.gui.components.DisplayableCard in project MtgDesktopCompanion by nicho92.

the class UntapPhase method actionPerformed.

@Override
public void actionPerformed(ActionEvent ae) {
    GameManager.getInstance().getActualTurn().setCurrentPhase(Turn.PHASES.UNTAP);
    for (DisplayableCard c : GamePanelGUI.getInstance().getPanelBattleField().getCards()) if (c.isTapped())
        c.tap(false);
    setEnabled(false);
}
Also used : DisplayableCard(org.magic.game.gui.components.DisplayableCard)

Example 18 with DisplayableCard

use of org.magic.game.gui.components.DisplayableCard in project MtgDesktopCompanion by nicho92.

the class SealedPanel method initGUI.

private void initGUI() {
    JPanel panelWest;
    JButton btnSaveDeck;
    JSplitPane panelCenter;
    JButton btnAddBoosters;
    JScrollPane scrollTablePack;
    JTable table;
    JPanel panelControl;
    JPanel panelAnalyse;
    JPanel panelSorters;
    JRadioButton rdioCmcSortButton;
    JRadioButton rdiocolorSort;
    JRadioButton rdiotypeSort;
    JPanel panel;
    JPanel panelEast;
    JPanel panelAnalyseChooser;
    JRadioButton rdioDeckAnalyse;
    JRadioButton rdioBoosterAnalyse;
    JPanel panelLands;
    setLayout(new BorderLayout(0, 0));
    panelOpenedBooster = new BoosterPanel();
    model = new SealedPackTableModel();
    panelDetail = new MagicCardDetailPanel();
    panelDetail.enableThumbnail(true);
    panelDetail.enableCollectionLookup(false);
    List<MagicEdition> li;
    try {
        li = MTGControler.getInstance().getEnabledProviders().loadEditions();
    } catch (IOException e1) {
        li = new ArrayList<>();
        MTGLogger.printStackTrace(e1);
    }
    panelWest = new JPanel();
    panelWest.setPreferredSize(new Dimension(300, 10));
    add(panelWest, BorderLayout.WEST);
    panelWest.setLayout(new BorderLayout(0, 0));
    panelControl = new JPanel();
    panelWest.add(panelControl, BorderLayout.NORTH);
    table = new JTable(model);
    table.getColumnModel().getColumn(1).setCellEditor(new IntegerCellEditor());
    panelControl.setLayout(new BorderLayout(0, 0));
    panel = new JPanel();
    panelControl.add(panel, BorderLayout.NORTH);
    GridBagLayout gblpanel = new GridBagLayout();
    gblpanel.columnWidths = new int[] { 105, 65, 0, 0, 0 };
    gblpanel.rowHeights = new int[] { 41, 0, 0 };
    gblpanel.columnWeights = new double[] { 0.0, 0.0, 1.0, 0.0, Double.MIN_VALUE };
    gblpanel.rowWeights = new double[] { 0.0, 0.0, Double.MIN_VALUE };
    panel.setLayout(gblpanel);
    cboEditions = new JComboBox<>();
    GridBagConstraints gbccboEditions = new GridBagConstraints();
    gbccboEditions.fill = GridBagConstraints.HORIZONTAL;
    gbccboEditions.gridwidth = 4;
    gbccboEditions.insets = new Insets(0, 0, 5, 0);
    gbccboEditions.gridx = 0;
    gbccboEditions.gridy = 0;
    panel.add(cboEditions, gbccboEditions);
    cboEditions.setRenderer(new MagicEditionListRenderer());
    cboEditions.setModel(new DefaultComboBoxModel<MagicEdition>(li.toArray(new MagicEdition[li.size()])));
    btnAddBoosters = new JButton(MTGConstants.ICON_NEW);
    GridBagConstraints gbcbtnAddBoosters = new GridBagConstraints();
    gbcbtnAddBoosters.anchor = GridBagConstraints.NORTH;
    gbcbtnAddBoosters.insets = new Insets(0, 0, 0, 5);
    gbcbtnAddBoosters.gridx = 0;
    gbcbtnAddBoosters.gridy = 1;
    panel.add(btnAddBoosters, gbcbtnAddBoosters);
    btnOpen = new JButton(MTGConstants.ICON_OPEN);
    GridBagConstraints gbcbtnOpen = new GridBagConstraints();
    gbcbtnOpen.insets = new Insets(0, 0, 0, 5);
    gbcbtnOpen.anchor = GridBagConstraints.NORTH;
    gbcbtnOpen.gridx = 1;
    gbcbtnOpen.gridy = 1;
    panel.add(btnOpen, gbcbtnOpen);
    btnOpen.setEnabled(false);
    btnSaveDeck = new JButton(MTGConstants.ICON_SAVE);
    GridBagConstraints gbcbtnSaveDeck = new GridBagConstraints();
    gbcbtnSaveDeck.insets = new Insets(0, 0, 0, 5);
    gbcbtnSaveDeck.gridx = 2;
    gbcbtnSaveDeck.gridy = 1;
    panel.add(btnSaveDeck, gbcbtnSaveDeck);
    lblLoading = new JLabel(MTGConstants.ICON_LOADING);
    lblLoading.setVisible(false);
    GridBagConstraints gbclblLoading = new GridBagConstraints();
    gbclblLoading.gridx = 3;
    gbclblLoading.gridy = 1;
    panel.add(lblLoading, gbclblLoading);
    btnSaveDeck.addActionListener(e -> save());
    btnOpen.addActionListener(ae -> open());
    btnAddBoosters.addActionListener(ae -> addBooster());
    scrollTablePack = new JScrollPane();
    scrollTablePack.setPreferredSize(new Dimension(2, 100));
    panelControl.add(scrollTablePack);
    scrollTablePack.setViewportView(table);
    panelAnalyse = new JPanel();
    panelWest.add(panelAnalyse, BorderLayout.CENTER);
    panelAnalyse.setLayout(new GridLayout(5, 1, 0, 0));
    panelSorters = new JPanel();
    panelAnalyse.add(panelSorters);
    panelSorters.setLayout(new GridLayout(0, 1, 0, 0));
    rdioCmcSortButton = new JRadioButton(MTGControler.getInstance().getLangService().getCapitalize("SORT_BY", "cmc"));
    rdioCmcSortButton.addActionListener(ae -> sort(new CmcSorter()));
    panelSorters.add(rdioCmcSortButton);
    rdiocolorSort = new JRadioButton(MTGControler.getInstance().getLangService().getCapitalize("SORT_BY", "color"));
    rdiocolorSort.addActionListener(ae -> sort(new ColorSorter()));
    panelSorters.add(rdiocolorSort);
    rdiotypeSort = new JRadioButton(MTGControler.getInstance().getLangService().getCapitalize("SORT_BY", "type"));
    rdiotypeSort.addActionListener(ae -> sort(new TypesSorter()));
    panelSorters.add(rdiotypeSort);
    ButtonGroup groupSorter = new ButtonGroup();
    groupSorter.add(rdioCmcSortButton);
    groupSorter.add(rdiocolorSort);
    groupSorter.add(rdiotypeSort);
    panelAnalyseChooser = new JPanel();
    panelSorters.add(panelAnalyseChooser);
    FlowLayout flowLayout = (FlowLayout) panelAnalyseChooser.getLayout();
    flowLayout.setAlignment(FlowLayout.LEFT);
    rdioBoosterAnalyse = new JRadioButton("Booster");
    rdioBoosterAnalyse.setSelected(true);
    rdioBoosterAnalyse.addActionListener(e -> analyseDeck(false));
    panelAnalyseChooser.add(rdioBoosterAnalyse);
    rdioDeckAnalyse = new JRadioButton("Deck");
    rdioDeckAnalyse.addActionListener(e -> analyseDeck(true));
    panelAnalyseChooser.add(rdioDeckAnalyse);
    ButtonGroup groupAnalyser = new ButtonGroup();
    groupAnalyser.add(rdioBoosterAnalyse);
    groupAnalyser.add(rdioDeckAnalyse);
    progressBar = new JProgressBar();
    progressBar.setMaximum(40);
    progressBar.setStringPainted(true);
    panelSorters.add(progressBar);
    cmcChartPanel = new CmcChartPanel();
    panelAnalyse.add(cmcChartPanel);
    manaRepartitionPanel = new ManaRepartitionPanel();
    panelAnalyse.add(manaRepartitionPanel);
    typeRepartitionPanel = new TypeRepartitionPanel();
    panelAnalyse.add(typeRepartitionPanel);
    panelCenter = new JSplitPane();
    panelCenter.setResizeWeight(0.5);
    panelCenter.setOrientation(JSplitPane.VERTICAL_SPLIT);
    JScrollPane paneBooster = new JScrollPane();
    paneBooster.setViewportView(panelOpenedBooster);
    panelCenter.setLeftComponent(paneBooster);
    panelCenter.setRightComponent(panelDetail);
    add(panelCenter, BorderLayout.CENTER);
    panelEast = new JPanel();
    add(panelEast, BorderLayout.EAST);
    panelEast.setLayout(new BorderLayout(0, 0));
    panelDeck = new GraveyardPanel() {

        @Override
        public PositionEnum getOrigine() {
            return PositionEnum.DECK;
        }

        @Override
        public void moveCard(DisplayableCard mc, PositionEnum to) {
            if (to == PositionEnum.BOOSTER) {
                deck.remove(mc.getMagicCard());
                list.add(mc.getMagicCard());
                refreshStats();
            }
        }

        @Override
        public void addComponent(DisplayableCard i) {
            super.addComponent(i);
            deck.add(i.getMagicCard());
            refreshStats();
        }
    };
    JScrollPane scrollDeck = new JScrollPane();
    scrollDeck.setViewportView(panelDeck);
    panelEast.add(scrollDeck);
    panelDeck.setPreferredSize(new Dimension((int) MTGControler.getInstance().getCardsDimension().getWidth() + 5, (int) (MTGControler.getInstance().getCardsDimension().getHeight() * 30)));
    panelEast.add(new JLabel(MTGControler.getInstance().getLangService().getCapitalize("DROP_HERE")), BorderLayout.NORTH);
    panelLands = new JPanel();
    panelEast.add(panelLands, BorderLayout.SOUTH);
    txtNumberLand = new JTextField();
    panelLands.add(txtNumberLand);
    txtNumberLand.setColumns(2);
    cboLands = new JComboBox<>(new DefaultComboBoxModel<>(new String[] { "Plains", "Island", "Swamp", "Mountain", "Forest" }));
    panelLands.add(cboLands);
    JButton btnAddLands = new JButton("+");
    btnAddLands.addActionListener(ae -> addLands());
    panelLands.add(btnAddLands);
}
Also used : ColorSorter(org.magic.sorters.ColorSorter) JPanel(javax.swing.JPanel) GridBagConstraints(java.awt.GridBagConstraints) CmcSorter(org.magic.sorters.CmcSorter) JRadioButton(javax.swing.JRadioButton) Insets(java.awt.Insets) FlowLayout(java.awt.FlowLayout) GridBagLayout(java.awt.GridBagLayout) DisplayableCard(org.magic.game.gui.components.DisplayableCard) JButton(javax.swing.JButton) MagicEdition(org.magic.api.beans.MagicEdition) ArrayList(java.util.ArrayList) JProgressBar(javax.swing.JProgressBar) JTextField(javax.swing.JTextField) GridLayout(java.awt.GridLayout) BorderLayout(java.awt.BorderLayout) IntegerCellEditor(org.magic.gui.renderer.IntegerCellEditor) SealedPackTableModel(org.magic.gui.models.SealedPackTableModel) GraveyardPanel(org.magic.game.gui.components.GraveyardPanel) JScrollPane(javax.swing.JScrollPane) PositionEnum(org.magic.game.model.PositionEnum) JLabel(javax.swing.JLabel) IOException(java.io.IOException) Dimension(java.awt.Dimension) DefaultComboBoxModel(javax.swing.DefaultComboBoxModel) ManaRepartitionPanel(org.magic.gui.components.charts.ManaRepartitionPanel) TypesSorter(org.magic.sorters.TypesSorter) TypeRepartitionPanel(org.magic.gui.components.charts.TypeRepartitionPanel) BoosterPanel(org.magic.game.gui.components.BoosterPanel) ButtonGroup(javax.swing.ButtonGroup) JTable(javax.swing.JTable) CmcChartPanel(org.magic.gui.components.charts.CmcChartPanel) JSplitPane(javax.swing.JSplitPane) MagicEditionListRenderer(org.magic.gui.renderer.MagicEditionListRenderer)

Example 19 with DisplayableCard

use of org.magic.game.gui.components.DisplayableCard in project MtgDesktopCompanion by nicho92.

the class SealedPanel method sort.

public void sort(MTGComparator<MagicCard> sorter) {
    Collections.sort(list, sorter);
    panelOpenedBooster.clear();
    for (MagicCard mc : list) {
        DisplayableCard c = createCard(mc);
        panelOpenedBooster.addComponent(c, sorter.getWeight(mc));
    }
}
Also used : MagicCard(org.magic.api.beans.MagicCard) DisplayableCard(org.magic.game.gui.components.DisplayableCard)

Example 20 with DisplayableCard

use of org.magic.game.gui.components.DisplayableCard in project MtgDesktopCompanion by nicho92.

the class UnselectAllAction method actionPerformed.

@Override
public void actionPerformed(ActionEvent e) {
    for (DisplayableCard card : GamePanelGUI.getInstance().getPanelBattleField().getSelectedCards()) {
        card.setSelected(!card.isSelected());
        card.repaint();
    }
}
Also used : DisplayableCard(org.magic.game.gui.components.DisplayableCard)

Aggregations

DisplayableCard (org.magic.game.gui.components.DisplayableCard)20 MagicCard (org.magic.api.beans.MagicCard)10 Dimension (java.awt.Dimension)4 IOException (java.io.IOException)4 MagicEdition (org.magic.api.beans.MagicEdition)4 JScrollPane (javax.swing.JScrollPane)3 BorderLayout (java.awt.BorderLayout)2 FlowLayout (java.awt.FlowLayout)2 GridLayout (java.awt.GridLayout)2 Point (java.awt.Point)2 ArrayList (java.util.ArrayList)2 DefaultComboBoxModel (javax.swing.DefaultComboBoxModel)2 JButton (javax.swing.JButton)2 JLabel (javax.swing.JLabel)2 JPanel (javax.swing.JPanel)2 JSplitPane (javax.swing.JSplitPane)2 JTextField (javax.swing.JTextField)2 PositionEnum (org.magic.game.model.PositionEnum)2 Component (java.awt.Component)1 GridBagConstraints (java.awt.GridBagConstraints)1