package forge.quest.gui; import forge.AllZone; import forge.Gui_NewGame; import forge.gui.GuiUtils; import forge.quest.gui.bazaar.QuestBazaarPanel; import forge.quest.gui.main.QuestMainPanel; import javax.swing.*; import javax.swing.border.EmptyBorder; import java.awt.*; import java.util.HashMap; import java.util.Map; /** * <p>QuestFrame class.</p> * * @author Forge * @version $Id: $ */ public class QuestFrame extends JFrame { /** Constant <code>serialVersionUID=-2832625381531838412L</code> */ private static final long serialVersionUID = -2832625381531838412L; JPanel visiblePanel; CardLayout questLayout; /** Constant <code>MAIN_PANEL="Main"</code> */ public static final String MAIN_PANEL = "Main"; /** Constant <code>BAZAAR_PANEL="Bazaar"</code> */ public static final String BAZAAR_PANEL = "Bazaar"; Map<String, QuestAbstractPanel> subPanelMap = new HashMap<String, QuestAbstractPanel>(); /** * <p>Constructor for QuestFrame.</p> * * @throws java.awt.HeadlessException if any. */ public QuestFrame() throws HeadlessException { this.setTitle("Quest Mode"); visiblePanel = new JPanel(new BorderLayout()); visiblePanel.setBorder(new EmptyBorder(2, 2, 2, 2)); questLayout = new CardLayout(); visiblePanel.setLayout(questLayout); QuestAbstractPanel newPanel = new QuestMainPanel(this); visiblePanel.add(newPanel, MAIN_PANEL); subPanelMap.put(MAIN_PANEL, newPanel); newPanel = new QuestBazaarPanel(this); visiblePanel.add(newPanel, BAZAAR_PANEL); subPanelMap.put(BAZAAR_PANEL, newPanel); this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add(visiblePanel, BorderLayout.CENTER); this.setPreferredSize(new Dimension(1024, 768)); this.setMinimumSize(new Dimension(800, 600)); questLayout.show(visiblePanel, MAIN_PANEL); this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); this.pack(); this.setVisible(true); GuiUtils.centerFrame(this); } /** * <p>showPane.</p> * * @param paneName a {@link java.lang.String} object. */ private void showPane(String paneName) { subPanelMap.get(paneName).refreshState(); questLayout.show(visiblePanel, paneName); } /** * <p>showMainPane.</p> */ public void showMainPane() { showPane(MAIN_PANEL); } /** * <p>showBazaarPane.</p> */ public void showBazaarPane() { showPane(BAZAAR_PANEL); } /** * <p>returnToMainMenu.</p> */ public void returnToMainMenu() { AllZone.getQuestData().saveData(); (new Gui_NewGame()).setVisible(true); this.dispose(); } }