package me.escapeNT.pail.GUIComponents; import java.awt.Dimension; import java.util.Map; import javax.swing.JFrame; import javax.swing.JMenuBar; import javax.swing.JPanel; import javax.swing.JTabbedPane; import me.escapeNT.pail.Util.Localizable; import me.escapeNT.pail.config.PanelConfig; import me.escapeNT.pail.Util.Util; /** * Class containing the main JFrame of the plugin. * @author escapeNT */ public class MainWindow extends JFrame implements Localizable { private JTabbedPane tabPane; private JMenuBar menuBar; private ServerControlPanel serverControls; /** * Called by the constructor to initialize the GUI components. */ private void initComponents() { tabPane = new JTabbedPane(); menuBar = new JMenuBar(); setIconImage(Util.getPlugin().PAIL_ICON); setTitle(Util.translate("Pail Server Manager")); setMinimumSize(new Dimension(990, 615)); addWindowListener(Util.getPlugin().getWindowListener()); setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); //setLocationRelativeTo(null); //setFocusableWindowState(true); setFocusable(true); // Register server control panel serverControls = new ServerControlPanel(); Util.getPlugin().loadInterfaceComponent("Server Control", getServerControls()); // Load all registered GUI components loadPanels(); loadMenus(); add(getTabPane()); setJMenuBar(menuBar); pack(); } /** * Loads all queued panels into the interface. */ public void loadPanels() { PanelConfig.load(); getTabPane().removeAll(); getTabPane().add(Util.getInterfaceComponents().get("Server Control"), Util.translate("Server Control")); getTabPane().add(Util.getInterfaceComponents().get("Settings"), Util.translate("Settings")); for(Map.Entry<String, JPanel> entry : Util.getInterfaceComponents().entrySet()) { if(!PanelConfig.getPanelsActivated().containsKey(entry.getKey())) { PanelConfig.getPanelsActivated().put(entry.getKey(), true); } if(!entry.getKey().equals("Server Control") && !entry.getKey().equals("Settings") && PanelConfig.getPanelsActivated().get(entry.getKey())) { getTabPane().add(entry.getValue(), Util.translate(entry.getKey())); } } validate(); } private void loadMenus() { menuBar.add(new FileMenu()); menuBar.add(new EditMenu()); menuBar.add(new ServerMenu()); menuBar.add(new HelpMenu()); } /** * Constructs a new main window for the GUI. */ public MainWindow() { initComponents(); } /** * Returns the server control panel. * @return the serverControls */ public ServerControlPanel getServerControls() { return serverControls; } /** * @return the tabPane */ public JTabbedPane getTabPane() { return tabPane; } public void translateComponent() {} }