X-Git-Url: https://git.pterodactylus.net/?p=jkeytool.git;a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjkeytool%2Fgui%2Fswing%2FSwingInterface.java;h=7e3e300b65f831dd6a76c7ccb55cdba29ccc2cd2;hp=8a79747175c4ba65c44b80a079f12bd81bf52db7;hb=56eee1c83b115795d71515ee5b65d5ef6b05c22f;hpb=b078eec37fb174bd4c76d82d27b0406124d09447 diff --git a/src/net/pterodactylus/jkeytool/gui/swing/SwingInterface.java b/src/net/pterodactylus/jkeytool/gui/swing/SwingInterface.java index 8a79747..7e3e300 100644 --- a/src/net/pterodactylus/jkeytool/gui/swing/SwingInterface.java +++ b/src/net/pterodactylus/jkeytool/gui/swing/SwingInterface.java @@ -21,6 +21,8 @@ package net.pterodactylus.jkeytool.gui.swing; import java.awt.BorderLayout; import java.awt.event.ActionEvent; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; import java.io.File; import java.security.KeyStore; import java.util.HashMap; @@ -34,10 +36,12 @@ import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JPanel; import javax.swing.JTabbedPane; +import javax.swing.JToolBar; import net.pterodactylus.jkeytool.core.Core; import net.pterodactylus.jkeytool.gui.Interface; import net.pterodactylus.jkeytool.main.Main; +import net.pterodactylus.util.i18n.I18n; import net.pterodactylus.util.i18n.gui.I18nAction; import net.pterodactylus.util.i18n.gui.I18nMenu; import net.pterodactylus.util.swing.StatusBar; @@ -52,6 +56,9 @@ public class SwingInterface implements Interface { /** The core to control. */ private Core core; + /** The I18n container. */ + private I18n i18n = new I18n("jkeytool", SwingInterface.class); + /** The main frame. */ private JFrame mainFrame = new JFrame("jkeytool " + Main.getVersion()); @@ -70,6 +77,9 @@ public class SwingInterface implements Interface { /** Loaded key stores and their panels. */ private final Map keyStores = new HashMap(); + /** + * Creates a new Swing interface. + */ public SwingInterface() { createActions(); createFrame(); @@ -79,9 +89,16 @@ public class SwingInterface implements Interface { // ACTIONS // + /** + * Creates a new key store. + */ private void createKeyStore() { + /* TODO */ } + /** + * Exits the application. + */ private void quit() { System.exit(0); } @@ -90,15 +107,18 @@ public class SwingInterface implements Interface { // PRIVATE METHODS // + /** + * Creates all used actions. + */ private void createActions() { - createKeyStoreAction = new I18nAction("jkeytool.action.createKeyStore") { + createKeyStoreAction = new I18nAction(i18n, "jkeytool.action.createKeyStore") { @SuppressWarnings("synthetic-access") public void actionPerformed(ActionEvent actionEvent) { createKeyStore(); } }; - quitAction = new I18nAction("jkeytool.action.quit") { + quitAction = new I18nAction(i18n, "jkeytool.action.quit") { /** * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) @@ -110,13 +130,33 @@ public class SwingInterface implements Interface { }; } + /** + * Creates the application main frame. + */ private void createFrame() { mainFrame.setJMenuBar(createMenubar()); + mainFrame.getContentPane().add(createToolbar(), BorderLayout.PAGE_START); mainFrame.getContentPane().add(createCenterPanel(), BorderLayout.CENTER); mainFrame.getContentPane().add(statusBar, BorderLayout.PAGE_END); mainFrame.pack(); + mainFrame.addWindowListener(new WindowAdapter() { + + /** + * {@inheritDoc} + */ + @Override + @SuppressWarnings("synthetic-access") + public void windowClosing(WindowEvent windowEvent) { + quit(); + } + }); } + /** + * Creates the central panel of the frame. + * + * @return The central panel of the frame + */ private JComponent createCenterPanel() { JPanel centerPanel = new JPanel(new BorderLayout()); centerPanel.setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6)); @@ -126,10 +166,15 @@ public class SwingInterface implements Interface { return centerPanel; } + /** + * Creates the menu bar of the frame. + * + * @return The menu bar of the frame + */ private JMenuBar createMenubar() { JMenuBar menubar = new JMenuBar(); - JMenu fileMenu = new I18nMenu("jkeytool.menu.file"); + JMenu fileMenu = new I18nMenu(i18n, "jkeytool.menu.file"); menubar.add(fileMenu); fileMenu.add(createKeyStoreAction); fileMenu.addSeparator(); @@ -138,6 +183,20 @@ public class SwingInterface implements Interface { return menubar; } + /** + * Creates the tool bar of the frame. + * + * @return The tool bar of the frame + */ + private JToolBar createToolbar() { + JToolBar toolbar = new JToolBar(); + + toolbar.add(createKeyStoreAction); + toolbar.add(quitAction); + + return toolbar; + } + // // INTERFACE Interface // @@ -183,7 +242,7 @@ public class SwingInterface implements Interface { * {@inheritDoc} */ public void keyStoreLoaded(File keyStoreFile, KeyStore keyStore) { - KeyStorePanel keyStorePanel = new KeyStorePanel(keyStore); + KeyStorePanel keyStorePanel = new KeyStorePanel(i18n, keyStore); keyStores.put(keyStore, keyStorePanel); tabPane.addTab(keyStoreFile.getName(), keyStorePanel); }