+ /** The I18n container. */
+ private I18n i18n = new I18n("jkeytool", SwingInterface.class);
+
+ /** The main frame. */
+ private JFrame mainFrame = new JFrame("jkeytool " + Main.getVersion());
+
+ /** The tab pane. */
+ private JTabbedPane tabPane = new JTabbedPane();
+
+ /** The status bar. */
+ private StatusBar statusBar = new StatusBar();
+
+ /** The “create key store” action. */
+ private Action createKeyStoreAction;
+
+ /** The “quit” action. */
+ private Action quitAction;
+
+ /** Loaded key stores and their panels. */
+ private final Map<KeyStore, KeyStorePanel> keyStores = new HashMap<KeyStore, KeyStorePanel>();
+
+ /**
+ * Creates a new Swing interface.
+ */
+ public SwingInterface() {
+ createActions();
+ createFrame();
+ }
+
+ //
+ // ACTIONS
+ //
+
+ /**
+ * Creates a new key store.
+ */
+ private void createKeyStore() {
+ /* TODO */
+ }
+
+ /**
+ * Exits the application.
+ */
+ private void quit() {
+ System.exit(0);
+ }
+
+ //
+ // PRIVATE METHODS
+ //
+
+ /**
+ * Creates all used actions.
+ */
+ private void createActions() {
+ createKeyStoreAction = new I18nAction(i18n, "jkeytool.action.createKeyStore") {
+
+ @SuppressWarnings("synthetic-access")
+ public void actionPerformed(ActionEvent actionEvent) {
+ createKeyStore();
+ }
+ };
+ quitAction = new I18nAction(i18n, "jkeytool.action.quit") {
+
+ /**
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+ */
+ @SuppressWarnings("synthetic-access")
+ public void actionPerformed(ActionEvent actionEvent) {
+ quit();
+ }
+ };
+ }
+
+ /**
+ * 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));
+
+ centerPanel.add(tabPane, BorderLayout.CENTER);
+
+ 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(i18n, "jkeytool.menu.file");
+ menubar.add(fileMenu);
+ fileMenu.add(createKeyStoreAction);
+ fileMenu.addSeparator();
+ fileMenu.add(quitAction);
+
+ 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;
+ }
+