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