package magic.ui.screen.deck.tiled; import java.util.List; import javax.swing.JPanel; import magic.model.MagicCardDefinition; import magic.model.MagicDeck; import magic.ui.screen.deck.editor.DeckSideBar; import magic.ui.widget.cards.canvas.CardsCanvas; import magic.ui.widget.cards.canvas.ICardsCanvasListener; import net.miginfocom.swing.MigLayout; @SuppressWarnings("serial") class ContentPanel extends JPanel implements ICardsCanvasListener { private final DeckSideBar sidebar; private final CardsCanvas canvas; ContentPanel(final MagicDeck aDeck) { sidebar = new DeckSideBar(); sidebar.setDeck(aDeck); canvas = new CardsCanvas(); canvas.setListener(this); canvas.setAnimationEnabled(false); canvas.setStackDuplicateCards(true); canvas.setLayoutMode(CardsCanvas.LayoutMode.SCALE_TO_FIT); setOpaque(false); setLayout(new MigLayout("insets 0, gap 0")); refreshLayout(); sidebar.setCard(aDeck.isEmpty() ? MagicCardDefinition.UNKNOWN : aDeck.get(0) ); } void refreshLayout() { removeAll(); add(sidebar, "h 100%"); add(canvas, "w 100%, h 100%"); revalidate(); } void refresh(List<MagicCardDefinition> cards) { sidebar.setCard(cards.isEmpty() ? MagicCardDefinition.UNKNOWN : cards.get(0) ); canvas.refresh(cards); } @Override public void cardSelected(MagicCardDefinition aCard) { sidebar.setCard(aCard); } }