Search in sources :

Example 1 with SealedPackTableModel

use of org.magic.gui.models.SealedPackTableModel 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)

Aggregations

BorderLayout (java.awt.BorderLayout)1 Dimension (java.awt.Dimension)1 FlowLayout (java.awt.FlowLayout)1 GridBagConstraints (java.awt.GridBagConstraints)1 GridBagLayout (java.awt.GridBagLayout)1 GridLayout (java.awt.GridLayout)1 Insets (java.awt.Insets)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 ButtonGroup (javax.swing.ButtonGroup)1 DefaultComboBoxModel (javax.swing.DefaultComboBoxModel)1 JButton (javax.swing.JButton)1 JLabel (javax.swing.JLabel)1 JPanel (javax.swing.JPanel)1 JProgressBar (javax.swing.JProgressBar)1 JRadioButton (javax.swing.JRadioButton)1 JScrollPane (javax.swing.JScrollPane)1 JSplitPane (javax.swing.JSplitPane)1 JTable (javax.swing.JTable)1 JTextField (javax.swing.JTextField)1