package magic.ui.screen.deck.editor; import java.util.LinkedHashMap; import java.util.Map; import javax.swing.AbstractAction; import javax.swing.ButtonGroup; import javax.swing.JToggleButton; import magic.ui.widget.TexturedPanel; import net.miginfocom.swing.MigLayout; @SuppressWarnings("serial") class ToggleButtonsPanel extends TexturedPanel { private final ButtonGroup toggleGroup = new ButtonGroup(); private final Map<String, JToggleButton> toggleButtons = new LinkedHashMap<>(); ToggleButtonsPanel() { setBackground(DeckActionPanel.BACKGROUND_COLOR); } void refreshLayout() { removeAll(); setLayout(new MigLayout("insets 2 0 0 6, aligny top")); for (JToggleButton btn : toggleButtons.values()) { add(btn, "hidemode 3"); } revalidate(); } final JToggleButton addToggleButton(String text, AbstractAction action) { if (toggleButtons.containsKey(text) == false) { toggleButtons.put(text, getToggleButton(text, action)); } return toggleButtons.get(text); } private JToggleButton getToggleButton(String text, AbstractAction action) { final JToggleButton btn = new ViewToggleButton(text); if (action != null) { btn.addActionListener(action); } toggleGroup.add(btn); return btn; } void setSelectedToggleButton(String aViewName) { toggleButtons.get(aViewName).setSelected(true); } }