From: David ‘Bombe’ Roden Date: Mon, 7 Apr 2008 07:01:20 +0000 (+0000) Subject: add "jsite" and "about" menu X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=0e037c80469e53cc7f6f9d23c8f272bef23ad18e;p=jSite2.git add "jsite" and "about" menu git-svn-id: http://trooper/svn/projects/jSite/trunk@624 c3eda9e8-030b-0410-8277-bc7414b0a119 --- diff --git a/src/net/pterodactylus/jsite/gui/MainWindow.java b/src/net/pterodactylus/jsite/gui/MainWindow.java index 92b7ab0..227d48f 100644 --- a/src/net/pterodactylus/jsite/gui/MainWindow.java +++ b/src/net/pterodactylus/jsite/gui/MainWindow.java @@ -22,11 +22,19 @@ package net.pterodactylus.jsite.gui; import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import javax.swing.Box; +import javax.swing.BoxLayout; +import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenuBar; import javax.swing.JPanel; +import javax.swing.JTabbedPane; import javax.swing.JToolBar; +import javax.swing.SwingConstants; +import javax.swing.border.EmptyBorder; import net.pterodactylus.jsite.i18n.I18n; import net.pterodactylus.jsite.i18n.I18nable; @@ -51,7 +59,10 @@ public class MainWindow extends JFrame implements I18nable { private StatusBar statusBar = new StatusBar(); /** The content pane. */ - private JPanel contentPane = new JPanel(); + private JPanel contentPane = new JPanel(new BorderLayout(12, 12)); + + /** The jSite menu. */ + private I18nMenu jSiteMenu; /** The node menu. */ private I18nMenu nodeMenu; @@ -59,6 +70,9 @@ public class MainWindow extends JFrame implements I18nable { /** The language menu. */ private I18nMenu languageMenu; + /** The about menu. */ + private I18nMenu aboutMenu; + /** * Creates a new main window that redirects all actions to the given swing * interface. @@ -101,6 +115,15 @@ public class MainWindow extends JFrame implements I18nable { private void initWindow() { JMenuBar menuBar = new JMenuBar(); + jSiteMenu = new I18nMenu("mainWindow.menu.jSite"); + menuBar.add(jSiteMenu); + + jSiteMenu.add(new FixedJMenuItem(swingInterface.getConfigureAction())); + jSiteMenu.addSeparator(); + jSiteMenu.add(new FixedJMenuItem(swingInterface.getImportConfigAction())); + jSiteMenu.addSeparator(); + jSiteMenu.add(new FixedJMenuItem(swingInterface.getQuitAction())); + nodeMenu = new I18nMenu("mainWindow.menu.node"); menuBar.add(nodeMenu); @@ -116,6 +139,11 @@ public class MainWindow extends JFrame implements I18nable { languageMenu.add(languageAction); } + aboutMenu = new I18nMenu("mainWindow.menu.about"); + menuBar.add(aboutMenu, BorderLayout.LINE_END); + + aboutMenu.add(new FixedJMenuItem(swingInterface.getHelpAboutAction())); + setJMenuBar(menuBar); JToolBar toolBar = new JToolBar(I18n.get("mainWindow.toolbar.name")); @@ -126,6 +154,19 @@ public class MainWindow extends JFrame implements I18nable { super.getContentPane().add(toolBar, BorderLayout.PAGE_START); super.getContentPane().add(contentPane, BorderLayout.CENTER); + + addWindowListener(new WindowAdapter() { + + /** + * {@inheritDoc} + */ + @SuppressWarnings("synthetic-access") + @Override + public void windowClosing(WindowEvent windowEvent) { + swingInterface.getQuitAction().actionPerformed(null); + } + }); + initComponents(); } @@ -134,6 +175,31 @@ public class MainWindow extends JFrame implements I18nable { */ private void initComponents() { super.getContentPane().add(statusBar, BorderLayout.PAGE_END); + + /* + * the main window consists of two panels which are vertically oriented. + * the upper panel contains of a tabbed pane, the lower panel consists + * of a table that lists the running requests. + */ + + JPanel upperPanel = new JPanel(new BorderLayout(12, 12)); + getContentPane().add(upperPanel, BorderLayout.PAGE_START); + contentPane.setBorder(new EmptyBorder(12, 12, 12, 12)); + + JTabbedPane tabbedPane = new JTabbedPane(SwingConstants.TOP, JTabbedPane.SCROLL_TAB_LAYOUT); + upperPanel.add(tabbedPane, BorderLayout.CENTER); + + Box projectOverviewPanel = new Box(BoxLayout.PAGE_AXIS); + tabbedPane.add(I18n.get("mainWindow.pane.overview.title"), projectOverviewPanel); + projectOverviewPanel.setBorder(new EmptyBorder(12, 12, 12, 12)); + projectOverviewPanel.add(Box.createVerticalGlue()); + JButton addProjectButton = new JButton(swingInterface.getAddProjectAction()); + addProjectButton.setAlignmentX(0.5f); + projectOverviewPanel.add(addProjectButton); + projectOverviewPanel.add(Box.createVerticalGlue()); + +// JPanel lowerPanel = new JPanel(new BorderLayout(12, 12)); +// getContentPane().add(lowerPanel, BorderLayout.CENTER); } /**