package magic.ui.screen.decks; import java.awt.Color; import java.awt.Dimension; import javax.swing.BorderFactory; import magic.model.MagicDeck; import magic.ui.FontsAndBorders; import magic.ui.screen.interfaces.IDeckConsumer; import magic.ui.widget.TexturedPanel; import magic.ui.widget.deck.DeckInfoPanel; import magic.ui.widget.deck.DeckPicker; import magic.ui.widget.deck.stats.IPwlWorkerListener; import magic.ui.widget.duel.viewer.CardViewer; import net.miginfocom.swing.MigLayout; @SuppressWarnings("serial") class SidebarPanel extends TexturedPanel implements IPwlWorkerListener { private final DeckPicker deckPicker; private final DeckInfoPanel deckInfo; SidebarPanel(IDeckConsumer aConsumer) { deckPicker = new DeckPicker(); deckPicker.addListener(aConsumer); deckInfo = new DeckInfoPanel(); deckInfo.addPropertyChangeListener( DeckInfoPanel.CP_LAYOUT_CHANGED, (e) -> refreshLayout() ); final int BORDER_WIDTH = 1; setBorder(BorderFactory.createMatteBorder(0, 0, 0, BORDER_WIDTH, Color.BLACK)); setBackground(FontsAndBorders.TRANSLUCENT_WHITE_STRONG); setMinimumSize(new Dimension(CardViewer.getSidebarImageSize().width + BORDER_WIDTH, 0)); MigLayout mig = new MigLayout("flowy, insets 0, gap 0"); mig.setColumnConstraints("[fill, grow]"); mig.setRowConstraints("[][fill, grow]"); setLayout(mig); refreshLayout(); } private void refreshLayout() { removeAll(); add(deckPicker); add(deckInfo); revalidate(); } void setDeck(MagicDeck deck) { deckInfo.setDeck(deck); } @Override public void setPlayedWonLost(String pwl) { deckInfo.setPlayedWonLost(pwl); } }