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