package net.pterodactylus.jkeytool.gui.swing;
+import java.awt.BorderLayout;
+import java.awt.event.ActionEvent;
import java.io.File;
import java.security.KeyStore;
+import java.util.HashMap;
+import java.util.Map;
+import javax.swing.Action;
+import javax.swing.BorderFactory;
+import javax.swing.JComponent;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.JTabbedPane;
+
+import net.pterodactylus.jkeytool.core.Core;
import net.pterodactylus.jkeytool.gui.Interface;
+import net.pterodactylus.jkeytool.main.Main;
+import net.pterodactylus.util.i18n.gui.I18nAction;
+import net.pterodactylus.util.swing.StatusBar;
/**
* TODO
*/
public class SwingInterface implements Interface {
+ /** The core to control. */
+ private Core core;
+
+ /** 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>();
+
+ public SwingInterface() {
+ createActions();
+ createFrame();
+ }
+
+ //
+ // ACTIONS
+ //
+
+ private void createKeyStore() {
+ }
+
+ private void quit() {
+ System.exit(0);
+ }
+
+ //
+ // PRIVATE METHODS
+ //
+
+ private void createActions() {
+ createKeyStoreAction = new I18nAction("jkeytool.action.createKeyStore") {
+
+ @SuppressWarnings("synthetic-access")
+ public void actionPerformed(ActionEvent actionEvent) {
+ createKeyStore();
+ }
+ };
+ quitAction = new I18nAction("jkeytool.action.quit") {
+
+ /**
+ * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+ */
+ @SuppressWarnings("synthetic-access")
+ public void actionPerformed(ActionEvent actionEvent) {
+ quit();
+ }
+ };
+ }
+
+ private void createFrame() {
+ mainFrame.getContentPane().add(createCenterPanel(), BorderLayout.CENTER);
+ mainFrame.getContentPane().add(statusBar, BorderLayout.PAGE_END);
+ mainFrame.pack();
+ }
+
+ private JComponent createCenterPanel() {
+ JPanel centerPanel = new JPanel(new BorderLayout());
+ centerPanel.setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6));
+
+ centerPanel.add(tabPane, BorderLayout.CENTER);
+
+ return centerPanel;
+ }
+
//
// INTERFACE Interface
//
/**
+ * Sets the core to control.
+ *
+ * @param core
+ * The core to control
+ */
+ public void setCore(Core core) {
+ this.core = core;
+ }
+
+ /**
* {@inheritDoc}
*/
public void start() {
+ mainFrame.setVisible(true);
+ statusBar.setText("jkeytool startup complete.");
+ core.loadKeyStore(new File("client.p12"));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void stop() {
/* TODO */
}
* {@inheritDoc}
*/
public void keyStoreLoaded(File keyStoreFile, KeyStore keyStore) {
- /* TODO */
+ KeyStorePanel keyStorePanel = new KeyStorePanel(keyStore);
+ keyStores.put(keyStore, keyStorePanel);
+ tabPane.addTab(keyStoreFile.getName(), keyStorePanel);
}
/**