package magic.ui.widget.deck;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import magic.model.DuelPlayerConfig;
import magic.model.MagicDeck;
import magic.translate.MText;
import magic.ui.FontsAndBorders;
import magic.ui.widget.TitleBar;
import net.miginfocom.swing.MigLayout;
@SuppressWarnings("serial")
public class DeckDescriptionViewer extends JPanel {
// translatable strings
private static final String _S1 = "Deck Description";
private final JTextArea textArea;
private final JScrollPane scrollPane;
public DeckDescriptionViewer() {
setOpaque(false);
final TitleBar titleBar = new TitleBar(MText.get(_S1));
textArea = new JTextArea();
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.setBackground(FontsAndBorders.TEXTAREA_TRANSPARENT_COLOR_HACK);
scrollPane = new JScrollPane(textArea);
scrollPane.getVerticalScrollBar().setUnitIncrement(8);
scrollPane.setBorder(null);
scrollPane.getViewport().setOpaque(false);
scrollPane.setMinimumSize(new Dimension(0, 0));
scrollPane.setPreferredSize(new Dimension(getWidth(), 0));
setMinimumSize(new Dimension(0, titleBar.getMinimumSize().height));
final MigLayout mig = new MigLayout();
mig.setLayoutConstraints("flowy, insets 0, gap 0");
mig.setColumnConstraints("[fill, grow]");
mig.setRowConstraints("[][fill, grow]");
setLayout(mig);
add(titleBar);
add(scrollPane);
}
public void setPlayer(final DuelPlayerConfig playerDef) {
setDeckDescription(playerDef.getDeck().getDescription());
}
public void setDeckDescription(final String text) {
textArea.setText(text == null || text.isEmpty() ? "" : text.replaceAll("\\\\n", "\n").trim());
textArea.setCaretPosition(0);
}
public void setDeckDescription(final MagicDeck deck) {
if (deck != null) {
setDeckDescription(deck.getDescription());
textArea.setForeground(deck.isValid() ? Color.BLACK : Color.RED.darker());
} else {
setDeckDescription("");
}
}
}