From 8eedcb039afb16487b2992f54c8cc139b3a71601 Mon Sep 17 00:00:00 2001 From: mathiasdm Date: Mon, 13 Apr 2009 15:02:46 +0000 Subject: [PATCH] * Added I2P version and GUI version to desktopgui * Tweaks to the tray icon menu * Some starting work on a GUI general configuration menu * Bugfix allowing spaces in directory structure --- .../desktopgui/src/desktopgui/GUIVersion.java | 14 + .../src/gui/GeneralConfiguration.form | 424 ++++++++++++++++-- .../src/gui/GeneralConfiguration.java | 294 ++++++++++-- apps/desktopgui/src/gui/SpeedSelector3.form | 4 +- apps/desktopgui/src/gui/SpeedSelector3.java | 4 +- apps/desktopgui/src/gui/Tray.java | 30 +- apps/desktopgui/src/gui/Version.form | 100 +++++ apps/desktopgui/src/gui/Version.java | 123 +++++ .../resources/GeneralConfiguration.properties | 26 ++ .../gui/resources/SpeedSelector3.properties | 4 +- .../src/gui/resources/Version.properties | 5 + apps/desktopgui/src/router/RouterHelper.java | 5 + history.txt | 6 + 13 files changed, 963 insertions(+), 76 deletions(-) create mode 100644 apps/desktopgui/src/desktopgui/GUIVersion.java create mode 100644 apps/desktopgui/src/gui/Version.form create mode 100644 apps/desktopgui/src/gui/Version.java create mode 100644 apps/desktopgui/src/gui/resources/GeneralConfiguration.properties create mode 100644 apps/desktopgui/src/gui/resources/Version.properties diff --git a/apps/desktopgui/src/desktopgui/GUIVersion.java b/apps/desktopgui/src/desktopgui/GUIVersion.java new file mode 100644 index 0000000000..e882a2b739 --- /dev/null +++ b/apps/desktopgui/src/desktopgui/GUIVersion.java @@ -0,0 +1,14 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package desktopgui; + +/** + * + * @author mathias + */ +public class GUIVersion { + public static final String VERSION = "0.0.1"; +} diff --git a/apps/desktopgui/src/gui/GeneralConfiguration.form b/apps/desktopgui/src/gui/GeneralConfiguration.form index 070e201382..5d48a84a3a 100644 --- a/apps/desktopgui/src/gui/GeneralConfiguration.form +++ b/apps/desktopgui/src/gui/GeneralConfiguration.form @@ -22,24 +22,65 @@ - - - - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -47,52 +88,365 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/desktopgui/src/gui/GeneralConfiguration.java b/apps/desktopgui/src/gui/GeneralConfiguration.java index b9c7403813..ea621213af 100644 --- a/apps/desktopgui/src/gui/GeneralConfiguration.java +++ b/apps/desktopgui/src/gui/GeneralConfiguration.java @@ -15,6 +15,8 @@ public class GeneralConfiguration extends javax.swing.JFrame { /** Creates new form GeneralConfiguration */ public GeneralConfiguration() { initComponents(); + this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); + this.setVisible(true); } /** This method is called from within the constructor to @@ -26,81 +28,305 @@ public class GeneralConfiguration extends javax.swing.JFrame { // //GEN-BEGIN:initComponents private void initComponents() { - jTabbedPane1 = new javax.swing.JTabbedPane(); jPanel1 = new javax.swing.JPanel(); + cancel = new javax.swing.JToggleButton(); + ok = new javax.swing.JToggleButton(); + jTabbedPane1 = new javax.swing.JTabbedPane(); jPanel2 = new javax.swing.JPanel(); + jLabel1 = new javax.swing.JLabel(); + jLabel2 = new javax.swing.JLabel(); + jTextField1 = new javax.swing.JTextField(); + jTextField2 = new javax.swing.JTextField(); + jComboBox1 = new javax.swing.JComboBox(); + jComboBox2 = new javax.swing.JComboBox(); + jLabel3 = new javax.swing.JLabel(); + jLabel4 = new javax.swing.JLabel(); + jTextField3 = new javax.swing.JTextField(); + jTextField4 = new javax.swing.JTextField(); + jLabel5 = new javax.swing.JLabel(); + jLabel6 = new javax.swing.JLabel(); + jLabel7 = new javax.swing.JLabel(); + jPanel3 = new javax.swing.JPanel(); + jLabel8 = new javax.swing.JLabel(); + jRadioButton1 = new javax.swing.JRadioButton(); + jRadioButton2 = new javax.swing.JRadioButton(); + jRadioButton3 = new javax.swing.JRadioButton(); + jToggleButton1 = new javax.swing.JToggleButton(); + jToggleButton2 = new javax.swing.JToggleButton(); + jToggleButton3 = new javax.swing.JToggleButton(); + jPanel4 = new javax.swing.JPanel(); + jPanel5 = new javax.swing.JPanel(); + jPanel6 = new javax.swing.JPanel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setName("Form"); // NOI18N - jTabbedPane1.setName("jTabbedPane1"); // NOI18N - jPanel1.setName("jPanel1"); // NOI18N + org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(desktopgui.Main.class).getContext().getResourceMap(GeneralConfiguration.class); + cancel.setText(resourceMap.getString("cancel.text")); // NOI18N + cancel.setName("cancel"); // NOI18N + + ok.setText(resourceMap.getString("ok.text")); // NOI18N + ok.setName("ok"); // NOI18N + javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 474, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() + .addContainerGap(461, Short.MAX_VALUE) + .addComponent(ok) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(cancel) + .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 338, Short.MAX_VALUE) + .addGroup(jPanel1Layout.createSequentialGroup() + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cancel) + .addComponent(ok)) + .addContainerGap(14, Short.MAX_VALUE)) ); - org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(desktopgui.Main.class).getContext().getResourceMap(GeneralConfiguration.class); - jTabbedPane1.addTab(resourceMap.getString("jPanel1.TabConstraints.tabTitle"), jPanel1); // NOI18N + jTabbedPane1.setName("jTabbedPane1"); // NOI18N jPanel2.setName("jPanel2"); // NOI18N + jPanel2.setLayout(null); - javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); - jPanel2.setLayout(jPanel2Layout); - jPanel2Layout.setHorizontalGroup( - jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 474, Short.MAX_VALUE) - ); - jPanel2Layout.setVerticalGroup( - jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 338, Short.MAX_VALUE) - ); + jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N + jLabel1.setName("jLabel1"); // NOI18N + jPanel2.add(jLabel1); + jLabel1.setBounds(20, 20, 140, 30); + + jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N + jLabel2.setName("jLabel2"); // NOI18N + jPanel2.add(jLabel2); + jLabel2.setBounds(20, 60, 140, 30); + + jTextField1.setText(resourceMap.getString("jTextField1.text")); // NOI18N + jTextField1.setName("jTextField1"); // NOI18N + jPanel2.add(jTextField1); + jTextField1.setBounds(160, 20, 77, 27); + + jTextField2.setText(resourceMap.getString("jTextField2.text")); // NOI18N + jTextField2.setName("jTextField2"); // NOI18N + jPanel2.add(jTextField2); + jTextField2.setBounds(160, 60, 77, 27); + + jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); + jComboBox1.setName("jComboBox1"); // NOI18N + jPanel2.add(jComboBox1); + jComboBox1.setBounds(240, 20, 78, 27); + + jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); + jComboBox2.setName("jComboBox2"); // NOI18N + jPanel2.add(jComboBox2); + jComboBox2.setBounds(240, 60, 78, 27); + + jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N + jLabel3.setName("jLabel3"); // NOI18N + jPanel2.add(jLabel3); + jLabel3.setBounds(330, 20, 97, 30); + + jLabel4.setText(resourceMap.getString("jLabel4.text")); // NOI18N + jLabel4.setName("jLabel4"); // NOI18N + jPanel2.add(jLabel4); + jLabel4.setBounds(330, 60, 97, 30); + + jTextField3.setText(resourceMap.getString("jTextField3.text")); // NOI18N + jTextField3.setName("jTextField3"); // NOI18N + jPanel2.add(jTextField3); + jTextField3.setBounds(440, 20, 60, 27); + + jTextField4.setText(resourceMap.getString("jTextField4.text")); // NOI18N + jTextField4.setName("jTextField4"); // NOI18N + jPanel2.add(jTextField4); + jTextField4.setBounds(440, 60, 60, 27); + + jLabel5.setText(resourceMap.getString("jLabel5.text")); // NOI18N + jLabel5.setName("jLabel5"); // NOI18N + jPanel2.add(jLabel5); + jLabel5.setBounds(510, 20, 19, 30); + + jLabel6.setText(resourceMap.getString("jLabel6.text")); // NOI18N + jLabel6.setName("jLabel6"); // NOI18N + jPanel2.add(jLabel6); + jLabel6.setBounds(510, 60, 19, 30); + + jLabel7.setText(resourceMap.getString("jLabel7.text")); // NOI18N + jLabel7.setName("jLabel7"); // NOI18N + jPanel2.add(jLabel7); + jLabel7.setBounds(20, 100, 520, 70); jTabbedPane1.addTab(resourceMap.getString("jPanel2.TabConstraints.tabTitle"), jPanel2); // NOI18N + jPanel3.setName("jPanel3"); // NOI18N + + jLabel8.setText(resourceMap.getString("jLabel8.text")); // NOI18N + jLabel8.setName("jLabel8"); // NOI18N + + jRadioButton1.setText(resourceMap.getString("jRadioButton1.text")); // NOI18N + jRadioButton1.setName("jRadioButton1"); // NOI18N + + jRadioButton2.setText(resourceMap.getString("jRadioButton2.text")); // NOI18N + jRadioButton2.setName("jRadioButton2"); // NOI18N + + jRadioButton3.setText(resourceMap.getString("jRadioButton3.text")); // NOI18N + jRadioButton3.setName("jRadioButton3"); // NOI18N + + jToggleButton1.setText(resourceMap.getString("jToggleButton1.text")); // NOI18N + jToggleButton1.setName("jToggleButton1"); // NOI18N + + jToggleButton2.setText(resourceMap.getString("jToggleButton2.text")); // NOI18N + jToggleButton2.setName("jToggleButton2"); // NOI18N + + jToggleButton3.setText(resourceMap.getString("jToggleButton3.text")); // NOI18N + jToggleButton3.setName("jToggleButton3"); // NOI18N + + javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); + jPanel3.setLayout(jPanel3Layout); + jPanel3Layout.setHorizontalGroup( + jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createSequentialGroup() + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createSequentialGroup() + .addGap(20, 20, 20) + .addComponent(jLabel8)) + .addGroup(jPanel3Layout.createSequentialGroup() + .addGap(20, 20, 20) + .addComponent(jToggleButton1) + .addGap(18, 18, 18) + .addComponent(jToggleButton2)) + .addGroup(jPanel3Layout.createSequentialGroup() + .addGap(40, 40, 40) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jRadioButton2) + .addComponent(jRadioButton1) + .addComponent(jRadioButton3)))) + .addGap(9, 9, 9)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup() + .addContainerGap(337, Short.MAX_VALUE) + .addComponent(jToggleButton3) + .addContainerGap()) + ); + jPanel3Layout.setVerticalGroup( + jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel3Layout.createSequentialGroup() + .addGap(20, 20, 20) + .addComponent(jLabel8) + .addGap(5, 5, 5) + .addComponent(jRadioButton1) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jRadioButton2) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jRadioButton3) + .addGap(40, 40, 40) + .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jToggleButton1) + .addComponent(jToggleButton2)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 48, Short.MAX_VALUE) + .addComponent(jToggleButton3) + .addContainerGap()) + ); + + jTabbedPane1.addTab(resourceMap.getString("jPanel3.TabConstraints.tabTitle"), jPanel3); // NOI18N + + jPanel4.setName("jPanel4"); // NOI18N + + javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); + jPanel4.setLayout(jPanel4Layout); + jPanel4Layout.setHorizontalGroup( + jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 560, Short.MAX_VALUE) + ); + jPanel4Layout.setVerticalGroup( + jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 278, Short.MAX_VALUE) + ); + + jTabbedPane1.addTab(resourceMap.getString("jPanel4.TabConstraints.tabTitle"), jPanel4); // NOI18N + + jPanel5.setName("jPanel5"); // NOI18N + + javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); + jPanel5.setLayout(jPanel5Layout); + jPanel5Layout.setHorizontalGroup( + jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 560, Short.MAX_VALUE) + ); + jPanel5Layout.setVerticalGroup( + jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 278, Short.MAX_VALUE) + ); + + jTabbedPane1.addTab(resourceMap.getString("jPanel5.TabConstraints.tabTitle"), jPanel5); // NOI18N + + jPanel6.setName("jPanel6"); // NOI18N + + javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6); + jPanel6.setLayout(jPanel6Layout); + jPanel6Layout.setHorizontalGroup( + jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 560, Short.MAX_VALUE) + ); + jPanel6Layout.setVerticalGroup( + jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(0, 278, Short.MAX_VALUE) + ); + + jTabbedPane1.addTab(resourceMap.getString("jPanel6.TabConstraints.tabTitle"), jPanel6); // NOI18N + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 478, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap()) + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 564, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 369, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap()) + .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 309, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ); pack(); }// //GEN-END:initComponents - /** - * @param args the command line arguments - */ - public static void main(String args[]) { - java.awt.EventQueue.invokeLater(new Runnable() { - public void run() { - new GeneralConfiguration().setVisible(true); - } - }); - } // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JToggleButton cancel; + private javax.swing.JComboBox jComboBox1; + private javax.swing.JComboBox jComboBox2; + private javax.swing.JLabel jLabel1; + private javax.swing.JLabel jLabel2; + private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; + private javax.swing.JLabel jLabel5; + private javax.swing.JLabel jLabel6; + private javax.swing.JLabel jLabel7; + private javax.swing.JLabel jLabel8; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; + private javax.swing.JPanel jPanel3; + private javax.swing.JPanel jPanel4; + private javax.swing.JPanel jPanel5; + private javax.swing.JPanel jPanel6; + private javax.swing.JRadioButton jRadioButton1; + private javax.swing.JRadioButton jRadioButton2; + private javax.swing.JRadioButton jRadioButton3; private javax.swing.JTabbedPane jTabbedPane1; + private javax.swing.JTextField jTextField1; + private javax.swing.JTextField jTextField2; + private javax.swing.JTextField jTextField3; + private javax.swing.JTextField jTextField4; + private javax.swing.JToggleButton jToggleButton1; + private javax.swing.JToggleButton jToggleButton2; + private javax.swing.JToggleButton jToggleButton3; + private javax.swing.JToggleButton ok; // End of variables declaration//GEN-END:variables } diff --git a/apps/desktopgui/src/gui/SpeedSelector3.form b/apps/desktopgui/src/gui/SpeedSelector3.form index 9c6ef533aa..b295c45938 100644 --- a/apps/desktopgui/src/gui/SpeedSelector3.form +++ b/apps/desktopgui/src/gui/SpeedSelector3.form @@ -119,7 +119,7 @@ - + @@ -130,7 +130,7 @@ - + diff --git a/apps/desktopgui/src/gui/SpeedSelector3.java b/apps/desktopgui/src/gui/SpeedSelector3.java index 1f523befda..8c6407f629 100644 --- a/apps/desktopgui/src/gui/SpeedSelector3.java +++ b/apps/desktopgui/src/gui/SpeedSelector3.java @@ -122,12 +122,12 @@ public class SpeedSelector3 extends javax.swing.JFrame { uploadUsageLabel.setText(resourceMap.getString("uploadUsageLabel.text")); // NOI18N uploadUsageLabel.setName("uploadUsageLabel"); // NOI18N getContentPane().add(uploadUsageLabel); - uploadUsageLabel.setBounds(20, 150, 19, 30); + uploadUsageLabel.setBounds(20, 150, 140, 30); downloadUsageLabel.setText(resourceMap.getString("downloadUsageLabel.text")); // NOI18N downloadUsageLabel.setName("downloadUsageLabel"); // NOI18N getContentPane().add(downloadUsageLabel); - downloadUsageLabel.setBounds(340, 150, 19, 30); + downloadUsageLabel.setBounds(340, 150, 160, 30); uploadField.setText(resourceMap.getString("uploadField.text")); // NOI18N uploadField.setMinimumSize(new java.awt.Dimension(77, 27)); diff --git a/apps/desktopgui/src/gui/Tray.java b/apps/desktopgui/src/gui/Tray.java index 5a8da78db9..09cf47c2a4 100644 --- a/apps/desktopgui/src/gui/Tray.java +++ b/apps/desktopgui/src/gui/Tray.java @@ -77,7 +77,9 @@ public class Tray { Desktop desktop = Desktop.getDesktop(); try { File f = new File("desktopgui/resources/howto/howto.html"); - desktop.browse(new URI("file://" + f.getAbsolutePath())); + System.out.println(new URI(null, null, null, 0, "file://" + f.getAbsolutePath(), null, null)); + desktop.browse(new URI(null, null, null, 0, "file://" + f.getAbsolutePath(), null, null)); + //desktop.browse(new URI("file://" + f.getAbsolutePath())); } catch (URISyntaxException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } catch(IOException ex) { @@ -96,6 +98,15 @@ public class Tray { (new SpeedSelector()).setVisible(true); } + }); + JMenuItem generalConfig = new JMenuItem("General Configuration"); + generalConfig.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent arg0) { + new GeneralConfiguration(); + } + }); JMenuItem advancedConfig = new JMenuItem("Advanced Configuration"); advancedConfig.addActionListener(new ActionListener() { @@ -123,6 +134,15 @@ public class Tray { new LogViewer(); } + }); + JMenuItem version = new JMenuItem("Version"); + version.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent arg0) { + new Version(); + } + }); JMenuItem shutdown = new JMenuItem("Shutdown I2P"); shutdown.addActionListener(new ActionListener() { @@ -147,11 +167,19 @@ public class Tray { popup.add(browserLauncher); popup.add(howto); + popup.addSeparator(); + config.add(speedConfig); + //config.add(generalConfig); config.add(advancedConfig); popup.add(config); + popup.addSeparator(); + popup.add(viewLog); + popup.add(version); + + popup.addSeparator(); popup.add(shutdown); diff --git a/apps/desktopgui/src/gui/Version.form b/apps/desktopgui/src/gui/Version.form new file mode 100644 index 0000000000..20df8621a0 --- /dev/null +++ b/apps/desktopgui/src/gui/Version.form @@ -0,0 +1,100 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/apps/desktopgui/src/gui/Version.java b/apps/desktopgui/src/gui/Version.java new file mode 100644 index 0000000000..3e5a478c59 --- /dev/null +++ b/apps/desktopgui/src/gui/Version.java @@ -0,0 +1,123 @@ +/* + * Version.java + * + * Created on 13 april 2009, 13:48 + */ + +package gui; + +import javax.swing.JFrame; +import router.RouterHelper; + +/** + * + * @author mathias + */ +public class Version extends javax.swing.JDialog { + + public Version() { + this(new JFrame(), true); + } + + + private Version(java.awt.Frame parent, boolean modal) { + super(parent, modal); + initComponents(); + String i2pVersion = RouterHelper.getVersion(); + String guiVersion = desktopgui.GUIVersion.VERSION; + this.I2PVersion.setText("

" + i2pVersion + "

"); + this.GUIVersion.setText("

" + guiVersion + "

"); + this.setVisible(true); + } + + /** This method is called from within the constructor to + * initialize the form. + * WARNING: Do NOT modify this code. The content of this method is + * always regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + okButton = new javax.swing.JButton(); + I2Plabel = new javax.swing.JLabel(); + GUILabel = new javax.swing.JLabel(); + I2PVersion = new javax.swing.JLabel(); + GUIVersion = new javax.swing.JLabel(); + + setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); + setName("Form"); // NOI18N + + org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(desktopgui.Main.class).getContext().getResourceMap(Version.class); + okButton.setText(resourceMap.getString("okButton.text")); // NOI18N + okButton.setName("okButton"); // NOI18N + okButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + okButtonActionPerformed(evt); + } + }); + + I2Plabel.setText(resourceMap.getString("I2Plabel.text")); // NOI18N + I2Plabel.setName("I2Plabel"); // NOI18N + + GUILabel.setText(resourceMap.getString("GUILabel.text")); // NOI18N + GUILabel.setName("GUILabel"); // NOI18N + + I2PVersion.setText(resourceMap.getString("I2PVersion.text")); // NOI18N + I2PVersion.setName("I2PVersion"); // NOI18N + + GUIVersion.setText(resourceMap.getString("GUIVersion.text")); // NOI18N + GUIVersion.setName("GUIVersion"); // NOI18N + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + getContentPane().setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addComponent(I2Plabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(GUILabel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(I2PVersion, javax.swing.GroupLayout.DEFAULT_SIZE, 126, Short.MAX_VALUE) + .addComponent(GUIVersion, javax.swing.GroupLayout.DEFAULT_SIZE, 126, Short.MAX_VALUE)) + .addContainerGap()) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap(294, Short.MAX_VALUE) + .addComponent(okButton) + .addContainerGap()) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(I2Plabel) + .addComponent(I2PVersion)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(GUILabel) + .addComponent(GUIVersion)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(okButton) + .addContainerGap()) + ); + + pack(); + }// //GEN-END:initComponents + +private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed + this.dispose(); +}//GEN-LAST:event_okButtonActionPerformed + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JLabel GUILabel; + private javax.swing.JLabel GUIVersion; + private javax.swing.JLabel I2PVersion; + private javax.swing.JLabel I2Plabel; + private javax.swing.JButton okButton; + // End of variables declaration//GEN-END:variables + +} diff --git a/apps/desktopgui/src/gui/resources/GeneralConfiguration.properties b/apps/desktopgui/src/gui/resources/GeneralConfiguration.properties new file mode 100644 index 0000000000..32a74183c3 --- /dev/null +++ b/apps/desktopgui/src/gui/resources/GeneralConfiguration.properties @@ -0,0 +1,26 @@ + +jPanel2.TabConstraints.tabTitle=Speed +jPanel3.TabConstraints.tabTitle=Updates +jPanel4.TabConstraints.tabTitle=Tunnels/Services +jPanel5.TabConstraints.tabTitle=Network +jPanel6.TabConstraints.tabTitle=Advanced +cancel.text=Cancel +ok.text=OK +jLabel1.text=Upload speed: +jLabel2.text=Download speed: +jTextField1.text=jTextField1 +jTextField2.text=jTextField2 +jLabel3.text=Monthly usage: +jLabel4.text=Monthly usage: +jTextField3.text=jTextField3 +jTextField4.text=jTextField4 +jLabel5.text=GB +jLabel6.text=GB +jLabel7.text=Explanation ... +jLabel8.text=What is your preferred automatic update setting? +jRadioButton1.text=Only inform about updates +jRadioButton2.text=Download and verify update file, do not restart +jRadioButton3.text=Download, verify and restart +jToggleButton1.text=Check for updates now +jToggleButton2.text=Update available: update now +jToggleButton3.text=Advanced update configuration diff --git a/apps/desktopgui/src/gui/resources/SpeedSelector3.properties b/apps/desktopgui/src/gui/resources/SpeedSelector3.properties index 6dca3ca516..5b338348cf 100644 --- a/apps/desktopgui/src/gui/resources/SpeedSelector3.properties +++ b/apps/desktopgui/src/gui/resources/SpeedSelector3.properties @@ -5,8 +5,8 @@ uploadLabel.text=Upload Speed: uploadBurstLabel.text=Burst Upload Speed: downloadLabel.text=Download Speed: downloadBurstLabel.text=Burst Download Speed: -uploadUsageLabel.text=GB -downloadUsageLabel.text=GB +uploadUsageLabel.text=Monthly usage: +downloadUsageLabel.text=Monthly usage: uploadField.text=jTextField1 uploadBurstField.text=jTextField2 downloadField.text=jTextField4 diff --git a/apps/desktopgui/src/gui/resources/Version.properties b/apps/desktopgui/src/gui/resources/Version.properties new file mode 100644 index 0000000000..91ee786ad1 --- /dev/null +++ b/apps/desktopgui/src/gui/resources/Version.properties @@ -0,0 +1,5 @@ +okButton.text=OK +I2Plabel.text=

I2P Version:

+GUILabel.text=

GUI Version:

+I2PVersion.text=jLabel3 +GUIVersion.text=jLabel4 diff --git a/apps/desktopgui/src/router/RouterHelper.java b/apps/desktopgui/src/router/RouterHelper.java index 6d3cddd03d..49a7c8b29a 100644 --- a/apps/desktopgui/src/router/RouterHelper.java +++ b/apps/desktopgui/src/router/RouterHelper.java @@ -1,6 +1,7 @@ package router; import net.i2p.router.RouterContext; +import net.i2p.router.RouterVersion; /** * @@ -14,4 +15,8 @@ public class RouterHelper { public static long getGracefulShutdownTimeRemaining() { return RouterHelper.getContext().router().getShutdownTimeRemaining(); } + + public static String getVersion() { + return (RouterVersion.VERSION + "-" + RouterVersion.BUILD); + } } diff --git a/history.txt b/history.txt index e65c99fa0f..a6bac8ef14 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,9 @@ +2009-04-13 Mathiasdm + * Added I2P version and GUI version to desktopgui + * Tweaks to the tray icon menu + * Some starting work on a GUI general configuration menu + * Bugfix allowing spaces in directory structure + 2009-04-13 welterde * small fix in the eepproxy