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);
}
}
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);
}
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);
}
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));
}
}
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();
}
}
Aggregations