add button to generate a new key pair for a project 0.4.9
authorDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Sat, 29 Sep 2007 21:30:29 +0000 (21:30 +0000)
committerDavid ‘Bombe’ Roden <bombe@freenetproject.org>
Sat, 29 Sep 2007 21:30:29 +0000 (21:30 +0000)
src/de/todesbaum/jsite/gui/ProjectPage.java
src/de/todesbaum/jsite/i18n/jSite.properties
src/de/todesbaum/jsite/i18n/jSite_de.properties
src/de/todesbaum/jsite/i18n/jSite_fr.properties
src/de/todesbaum/jsite/main/Version.java

index 8afd696..086493c 100644 (file)
@@ -76,6 +76,7 @@ public class ProjectPage extends TWizardPage implements ListSelectionListener, D
        private Action projectDeleteAction;
        private Action projectCloneAction;
        private Action projectCopyURIAction;
+       private Action projectGenerateKeyAction;
 
        private JFileChooser pathChooser;
        private SortedListModel projectListModel;
@@ -179,6 +180,15 @@ public class ProjectPage extends TWizardPage implements ListSelectionListener, D
                projectCopyURIAction.putValue(Action.SHORT_DESCRIPTION, I18n.getMessage("jsite.project.action.copy-uri.tooltip"));
                projectCopyURIAction.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_U);
                projectCopyURIAction.setEnabled(false);
+               
+               projectGenerateKeyAction = new AbstractAction(I18n.getMessage("jsite.project.action.generate-new-key")) {
+                       public void actionPerformed(ActionEvent actionEvent) {
+                               actionGenerateNewKey();
+                       }
+               };
+               projectGenerateKeyAction.putValue(Action.SHORT_DESCRIPTION, I18n.getMessage("jsite.project.action.generate-new-key.tooltip"));
+               projectGenerateKeyAction.putValue(Action.MNEMONIC_KEY, KeyEvent.VK_G);
+               projectGenerateKeyAction.setEnabled(false);
        }
 
        private JComponent createInformationPanel() {
@@ -231,7 +241,8 @@ public class ProjectPage extends TWizardPage implements ListSelectionListener, D
                projectPublicKeyTextField.setEnabled(false);
 
                informationTable.add(new TLabel(I18n.getMessage("jsite.project.project.public-key") + ":", KeyEvent.VK_U, projectPublicKeyTextField), new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.NONE, new Insets(6, 18, 0, 0), 0, 0));
-               informationTable.add(projectPublicKeyTextField, new GridBagConstraints(1, 5, 2, 1, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(6, 6, 0, 0), 0, 0));
+               informationTable.add(projectPublicKeyTextField, new GridBagConstraints(1, 5, 1, 1, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(6, 6, 0, 0), 0, 0));
+               informationTable.add(new JButton(projectGenerateKeyAction), new GridBagConstraints(2, 5, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(6, 6, 0, 0), 0, 0));
 
                projectPrivateKeyTextField = new JTextField(27);
                projectPrivateKeyTextField.getDocument().putProperty("name", "project.privatekey");
@@ -369,6 +380,27 @@ public class ProjectPage extends TWizardPage implements ListSelectionListener, D
                        clipboard.setContents(new StringSelection(selectedProject.getFinalRequestURI(0)), this);
                }
        }
+       
+       protected void actionGenerateNewKey() {
+               if (JOptionPane.showConfirmDialog(this, I18n.getMessage("jsite.project.warning.generate-new-key"), null, JOptionPane.OK_CANCEL_OPTION) == JOptionPane.CANCEL_OPTION) {
+                       return;
+               }
+               int selectedIndex = projectList.getSelectedIndex();
+               if (selectedIndex > -1) {
+                       Project selectedProject = (Project) projectList.getSelectedValue();
+                       String[] keyPair = null;
+                       try {
+                               keyPair = freenetInterface.generateKeyPair();
+                       } catch (IOException ioe1) {
+                               JOptionPane.showMessageDialog(this, MessageFormat.format(I18n.getMessage("jsite.project.keygen.io-error"), ioe1.getMessage()), null, JOptionPane.ERROR_MESSAGE);
+                               return;
+                       }
+                       selectedProject.setInsertURI(keyPair[0]);
+                       selectedProject.setRequestURI(keyPair[1]);
+                       projectPublicKeyTextField.setText(selectedProject.getRequestURI());
+                       projectPrivateKeyTextField.setText(selectedProject.getInsertURI());
+               }
+       }
 
        //
        // INTERFACE ListSelectionListener
@@ -390,6 +422,7 @@ public class ProjectPage extends TWizardPage implements ListSelectionListener, D
                projectDeleteAction.setEnabled(selectedRow > -1);
                projectCloneAction.setEnabled(selectedRow > -1);
                projectCopyURIAction.setEnabled(selectedRow > -1);
+               projectGenerateKeyAction.setEnabled(selectedRow > -1);
                if (selectedRow > -1) {
                        projectNameTextField.setText(selectedProject.getName());
                        projectDescriptionTextField.setText(selectedProject.getDescription());
index 8bf151c..08ecf4e 100644 (file)
@@ -79,6 +79,8 @@ jsite.project.action.clone-project.copy=Copy of {0}
 jsite.project.action.clone-project.tooltip=Clone the selected project
 jsite.project.action.copy-uri=Copy URI to Clipboard
 jsite.project.action.copy-uri.tooltip=Copies the URI of the project to the clipboard
+jsite.project.action.generate-new-key=Generate New Key
+jsite.project.action.generate-new-key.tooltip=Generates a new key for the project
 jsite.project.project.information=Project Information
 jsite.project.project.name=Name
 jsite.project.project.description=Description
@@ -91,6 +93,7 @@ jsite.project.project.edition=Edition
 jsite.project.keygen.io-error=<html><b>Node communication failure</b><br><br>Communication with the node failed<br>with the following error message:<br><br><code>{0}</code><br><br>Please make sure that you have entered<br>the correct host name and port number<br>on the "Node Settings" page.</html>
 jsite.project.warning.no-local-path=<html><b>No local path</b><br><br>You did not specify a local path for the files to insert.<br>It is not possible to continue without one.</html>
 jsite.project.warning.no-path=<html><b>No freesite path</b><br><br>You did not specify a freesite path.<br>It is not possible to continue without one.</html>
+jsite.project.warning.generate-new-key=<html><b>Generate new key?</b><br><br>If you generate a new key, your site will be published<br>under that new key. Any trust that other users put<br>in the old key of your site will be gone!</html>
 
 jsite.project-files.heading=Project Files
 jsite.project-files.description=<html>On this page you can specify parameters for the files within the project, such as<br>externally generated keys or MIME types, if the automatic detection failed.</html> 
index 12607f8..b13dd28 100644 (file)
@@ -79,6 +79,8 @@ jsite.project.action.clone-project.copy=Kopie von {0}
 jsite.project.action.clone-project.tooltip=Das ausgewählte Projekt duplizieren
 jsite.project.action.copy-uri=URI kopieren
 jsite.project.action.copy-uri.tooltip=Kopiert die URI des ausgewählten Projektes in die Zwischenablage
+jsite.project.action.generate-new-key=Schlüssel generieren
+jsite.project.action.generate-new-key.tooltip=Generiert ein neues Schlüsselpaar für das Projekt
 jsite.project.project.information=Projektinformation
 jsite.project.project.name=Name
 jsite.project.project.description=Beschreibung
@@ -91,6 +93,7 @@ jsite.project.project.edition=Edition
 jsite.project.keygen.io-error=<html><b>Kommunikation fehlgeschlagen</b><br><br>Die Kommunikation mit dem Freenet Node<br>ergab folgende Fehlermeldung:<br><br><code>{0}</code><br><br>Bitte vergewissern Sie sich, dass der Node läuft und dass Sie<br> den korrekten Hostnamen und die korrekte Portnummer auf der<br>\u201eNode Einstellungen\u201c Seite eingegeben haben.</html>
 jsite.project.warning.no-local-path=<html><b>Kein lokaler Pfad</b><br><br>Sie haben keinen lokalen Pfad für die einzufügenden Dateien angegeben.<br>Es ist nicht möglich, ohne lokalen Pfad weiter zu machen.</html>
 jsite.project.warning.no-path=<html><b>Kein Freesite-Pfad</b><br><br>Sie haben keinen Pfad für die Freesite angegeben.<br>Es ist nicht möglich, ohne einen Freesite-Pfad weiter zu machen.</html>
+jsite.project.warning.generate-new-key=<html><b>Neues Schlüsselpaar generieren?</b><br><br>Wenn Sie das Schlüsselpaar für das Projekt ändern,<br>wird sich die URI für Ihr Projekt ebenfalls<br>ändern, und jegliches Vertrauen, dass andere<br>Benutzer in das alte Schlüsselpaar hatten, wird<br>verloren gehen!</html>
 
 jsite.project-files.heading=Projektdateien
 jsite.project-files.description=<html>Auf dieser Seite können Parameter für die einzelnen Dateien dieses Projekts angegeben werden, z.B.<br>extern erstellte Schlüssel oder der korrekte MIME-Typ, wenn er nicht automatisch richtig erkannt wurde.</html> 
index 51357b6..a37423d 100644 (file)
@@ -77,6 +77,8 @@ jsite.project.action.delete-project.confirm=<html><b>Confirmez la suppression</b
 jsite.project.action.clone-project=Cloner le projet
 jsite.project.action.clone-project.copy=Copie de {0}
 jsite.project.action.clone-project.tooltip=Cloner le projet sélectionné
+jsite.project.action.generate-new-key=
+jsite.project.action.generate-new-key.tooltip=
 jsite.project.project.information=Informations concernant le projet
 jsite.project.project.name=Nom
 jsite.project.project.description=Description
@@ -89,6 +91,7 @@ jsite.project.project.edition=Edition
 jsite.project.keygen.io-error=<html><b>Erreur de communication avec le noeud</b><br><br>La communication avec le noeud à échouée<br>Erreur:<br><br><code>{0}</code><br><br>Assurez vous que les informations saisies dans la page de configuration sont correctes.</html>
 jsite.project.warning.no-local-path=<html><b>Pas de chemin local spécifié</b><br><br>Vous avez omis de spécifier le chemin local à insérer.</html>
 jsite.project.warning.no-path=<html><b>Vous n'avez pas spécifié de chemin dans le freesite</b><br><br>Vous n'avez pas spécifié de chemin dans le freesite.<br>Ce champ est nécessaire.</html>
+jsite.project.warning.generate-new-key=
 
 jsite.project-files.heading=Fichiers du projet
 jsite.project-files.description=<html>Dans cette page vous pouvez spécifier les informations concernant la configuration des noeuds telles que:<br>Le type de contenu mime si l'auto détection à échouée.</html> 
index 44c724a..f303c96 100644 (file)
@@ -25,7 +25,7 @@ package de.todesbaum.jsite.main;
  */
 public class Version {
 
-       private static final String VERSION = "0.4.8.2-pre-1";
+       private static final String VERSION = "0.4.9";
 
        public static final String getVersion() {
                return VERSION;