From f10bfda1153e65245d0dd6af1086f2fa1dd6613f Mon Sep 17 00:00:00 2001 From: mathiasdm Date: Wed, 20 May 2009 19:58:55 +0000 Subject: [PATCH] * General configuration enabled by default * General configuration speed tab works completely --- .../desktopgui/gui/GeneralConfiguration.form | 44 ++-- .../desktopgui/gui/GeneralConfiguration.java | 193 +++++++++++++----- .../src/net/i2p/desktopgui/gui/Tray.java | 2 +- .../resources/GeneralConfiguration.properties | 10 +- .../router/configuration/SpeedHelper.java | 4 + history.txt | 4 + 6 files changed, 183 insertions(+), 74 deletions(-) diff --git a/apps/desktopgui/src/net/i2p/desktopgui/gui/GeneralConfiguration.form b/apps/desktopgui/src/net/i2p/desktopgui/gui/GeneralConfiguration.form index 7c0fc8edcd..8e0acbb14a 100644 --- a/apps/desktopgui/src/net/i2p/desktopgui/gui/GeneralConfiguration.form +++ b/apps/desktopgui/src/net/i2p/desktopgui/gui/GeneralConfiguration.form @@ -81,12 +81,18 @@ + + + + + + @@ -141,7 +147,7 @@ - + @@ -155,7 +161,7 @@ - + @@ -201,10 +207,10 @@ - + - - + + @@ -212,10 +218,10 @@ - + - - + + @@ -229,7 +235,7 @@ - + @@ -243,7 +249,7 @@ - + @@ -251,10 +257,10 @@ - + - - + + @@ -262,10 +268,10 @@ - + - - + + @@ -273,10 +279,10 @@ - + - - + + diff --git a/apps/desktopgui/src/net/i2p/desktopgui/gui/GeneralConfiguration.java b/apps/desktopgui/src/net/i2p/desktopgui/gui/GeneralConfiguration.java index 910ca21fb5..b0dbccabca 100644 --- a/apps/desktopgui/src/net/i2p/desktopgui/gui/GeneralConfiguration.java +++ b/apps/desktopgui/src/net/i2p/desktopgui/gui/GeneralConfiguration.java @@ -7,6 +7,9 @@ package net.i2p.desktopgui.gui; import net.i2p.desktopgui.router.configuration.SpeedHelper; +import javax.swing.JComboBox; +import javax.swing.JTextField; +import net.i2p.desktopgui.router.configuration.SpeedHandler; /** * @@ -23,7 +26,23 @@ public class GeneralConfiguration extends javax.swing.JFrame { } private void extraInitComponents() { - downloadspeed.setText(SpeedHelper.getInboundBandwidth()); + initSpeedTab(); + } + + private void initSpeedTab() { + try { + String inbound = SpeedHelper.getInboundBandwidth(); + String outbound = SpeedHelper.getOutboundBandwidth(); + + initSpeeds(inbound, outbound); + initUsage("" + Integer.parseInt(inbound)/8, "" + Integer.parseInt(outbound)/8); + } + catch(Exception e) { + e.printStackTrace(); + System.out.println("Exception noticed, probably running desktopgui in a debugger instead of along with I2P!?"); + initSpeeds("100", "100"); + initUsage("12", "12"); + } } /** This method is called from within the constructor to @@ -47,13 +66,13 @@ public class GeneralConfiguration extends javax.swing.JFrame { downloadspeed = new javax.swing.JTextField(); uploadkbps = new javax.swing.JComboBox(); downloadkbps = new javax.swing.JComboBox(); - jLabel3 = new javax.swing.JLabel(); - jLabel4 = new javax.swing.JLabel(); + uploadUsageLabel = new javax.swing.JLabel(); + downloadUsageLabel = new javax.swing.JLabel(); uploadgb = new javax.swing.JTextField(); downloadgb = new javax.swing.JTextField(); - jLabel5 = new javax.swing.JLabel(); - jLabel6 = new javax.swing.JLabel(); - jLabel7 = new javax.swing.JLabel(); + gbUploadLabel = new javax.swing.JLabel(); + gbDownloadLabel = new javax.swing.JLabel(); + uploadDownloadExplanation = new javax.swing.JLabel(); updatesPanel = new javax.swing.JPanel(); updateMethod = new javax.swing.JLabel(); updateInform = new javax.swing.JRadioButton(); @@ -80,9 +99,19 @@ public class GeneralConfiguration extends javax.swing.JFrame { cancel.setText(resourceMap.getString("cancel.text")); // NOI18N cancel.setName("cancel"); // NOI18N + cancel.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + cancelMouseClicked(evt); + } + }); ok.setText(resourceMap.getString("ok.text")); // NOI18N ok.setName("ok"); // NOI18N + ok.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + okMouseClicked(evt); + } + }); javax.swing.GroupLayout applyPanelLayout = new javax.swing.GroupLayout(applyPanel); applyPanel.setLayout(applyPanelLayout); @@ -122,8 +151,8 @@ public class GeneralConfiguration extends javax.swing.JFrame { uploadspeed.setText(resourceMap.getString("uploadspeed.text")); // NOI18N uploadspeed.setName("uploadspeed"); // NOI18N uploadspeed.addKeyListener(new java.awt.event.KeyAdapter() { - public void keyTyped(java.awt.event.KeyEvent evt) { - speedKeyTyped(evt); + public void keyReleased(java.awt.event.KeyEvent evt) { + speedKeyReleased(evt); } }); speedPanel.add(uploadspeed); @@ -132,8 +161,8 @@ public class GeneralConfiguration extends javax.swing.JFrame { downloadspeed.setText(resourceMap.getString("downloadspeed.text")); // NOI18N downloadspeed.setName("downloadspeed"); // NOI18N downloadspeed.addKeyListener(new java.awt.event.KeyAdapter() { - public void keyTyped(java.awt.event.KeyEvent evt) { - speedKeyTyped(evt); + public void keyReleased(java.awt.event.KeyEvent evt) { + speedKeyReleased(evt); } }); speedPanel.add(downloadspeed); @@ -159,21 +188,21 @@ public class GeneralConfiguration extends javax.swing.JFrame { speedPanel.add(downloadkbps); downloadkbps.setBounds(240, 60, 68, 27); - jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N - jLabel3.setName("jLabel3"); // NOI18N - speedPanel.add(jLabel3); - jLabel3.setBounds(330, 20, 97, 30); + uploadUsageLabel.setText(resourceMap.getString("uploadUsageLabel.text")); // NOI18N + uploadUsageLabel.setName("uploadUsageLabel"); // NOI18N + speedPanel.add(uploadUsageLabel); + uploadUsageLabel.setBounds(330, 20, 97, 30); - jLabel4.setText(resourceMap.getString("jLabel4.text")); // NOI18N - jLabel4.setName("jLabel4"); // NOI18N - speedPanel.add(jLabel4); - jLabel4.setBounds(330, 60, 97, 30); + downloadUsageLabel.setText(resourceMap.getString("downloadUsageLabel.text")); // NOI18N + downloadUsageLabel.setName("downloadUsageLabel"); // NOI18N + speedPanel.add(downloadUsageLabel); + downloadUsageLabel.setBounds(330, 60, 97, 30); uploadgb.setText(resourceMap.getString("uploadgb.text")); // NOI18N uploadgb.setName("uploadgb"); // NOI18N uploadgb.addKeyListener(new java.awt.event.KeyAdapter() { - public void keyTyped(java.awt.event.KeyEvent evt) { - uploadgbKeyTyped(evt); + public void keyReleased(java.awt.event.KeyEvent evt) { + monthKeyReleased(evt); } }); speedPanel.add(uploadgb); @@ -182,27 +211,27 @@ public class GeneralConfiguration extends javax.swing.JFrame { downloadgb.setText(resourceMap.getString("downloadgb.text")); // NOI18N downloadgb.setName("downloadgb"); // NOI18N downloadgb.addKeyListener(new java.awt.event.KeyAdapter() { - public void keyTyped(java.awt.event.KeyEvent evt) { - downloadgbKeyTyped(evt); + public void keyReleased(java.awt.event.KeyEvent evt) { + monthKeyReleased(evt); } }); speedPanel.add(downloadgb); downloadgb.setBounds(440, 60, 60, 27); - jLabel5.setText(resourceMap.getString("jLabel5.text")); // NOI18N - jLabel5.setName("jLabel5"); // NOI18N - speedPanel.add(jLabel5); - jLabel5.setBounds(510, 20, 19, 30); + gbUploadLabel.setText(resourceMap.getString("gbUploadLabel.text")); // NOI18N + gbUploadLabel.setName("gbUploadLabel"); // NOI18N + speedPanel.add(gbUploadLabel); + gbUploadLabel.setBounds(510, 20, 19, 30); - jLabel6.setText(resourceMap.getString("jLabel6.text")); // NOI18N - jLabel6.setName("jLabel6"); // NOI18N - speedPanel.add(jLabel6); - jLabel6.setBounds(510, 60, 19, 30); + gbDownloadLabel.setText(resourceMap.getString("gbDownloadLabel.text")); // NOI18N + gbDownloadLabel.setName("gbDownloadLabel"); // NOI18N + speedPanel.add(gbDownloadLabel); + gbDownloadLabel.setBounds(510, 60, 19, 30); - jLabel7.setText(resourceMap.getString("jLabel7.text")); // NOI18N - jLabel7.setName("jLabel7"); // NOI18N - speedPanel.add(jLabel7); - jLabel7.setBounds(20, 100, 520, 70); + uploadDownloadExplanation.setText(resourceMap.getString("uploadDownloadExplanation.text")); // NOI18N + uploadDownloadExplanation.setName("uploadDownloadExplanation"); // NOI18N + speedPanel.add(uploadDownloadExplanation); + uploadDownloadExplanation.setBounds(20, 100, 520, 70); settingsPanel.addTab(resourceMap.getString("speedPanel.TabConstraints.tabTitle"), speedPanel); // NOI18N @@ -377,7 +406,7 @@ public class GeneralConfiguration extends javax.swing.JFrame { pack(); }// //GEN-END:initComponents -private void speedKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_speedKeyTyped + private void speedKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_speedKeyReleased try { String upload = ""; if(uploadkbps.getSelectedIndex() == KILOBIT) @@ -395,29 +424,95 @@ private void speedKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_speed e.printStackTrace(); return; } -}//GEN-LAST:event_speedKeyTyped +}//GEN-LAST:event_speedKeyReleased private void uploadkbpsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_uploadkbpsActionPerformed - // TODO add your handling code here: + kbpsSwitchPerformed(uploadkbps, uploadspeed); }//GEN-LAST:event_uploadkbpsActionPerformed private void downloadkbpsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_downloadkbpsActionPerformed - // TODO add your handling code here: + kbpsSwitchPerformed(downloadkbps, downloadspeed); }//GEN-LAST:event_downloadkbpsActionPerformed -private void uploadgbKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_uploadgbKeyTyped - // TODO add your handling code here: -}//GEN-LAST:event_uploadgbKeyTyped +private void monthKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_monthKeyReleased + try { + int uploadMonthValue = Integer.parseInt(uploadgb.getText()); + int downloadMonthValue = Integer.parseInt(downloadgb.getText()); -private void downloadgbKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_downloadgbKeyTyped - // TODO add your handling code here: -}//GEN-LAST:event_downloadgbKeyTyped + String upload = ""; + String burstUpload = ""; + String download = ""; + String burstDownload = ""; + + if(uploadkbps.getSelectedIndex() == KILOBIT) + upload = "" + SpeedHelper.calculateSpeed(uploadMonthValue)*8; //kbit + else + upload = "" + SpeedHelper.calculateSpeed(uploadMonthValue); //kbyte + + if(downloadkbps.getSelectedIndex() == KILOBIT) + download = "" + SpeedHelper.calculateSpeed(downloadMonthValue)*8; //kbit + else + download = "" + SpeedHelper.calculateSpeed(downloadMonthValue); //kbyte + + initSpeeds(upload, download); + } + catch(NumberFormatException e) { + e.printStackTrace(); + return; + } +}//GEN-LAST:event_monthKeyReleased + +private void cancelMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_cancelMouseClicked + this.dispose(); +}//GEN-LAST:event_cancelMouseClicked + +private void okMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_okMouseClicked + saveSpeeds(); + this.dispose(); +}//GEN-LAST:event_okMouseClicked protected void initUsage(String upload, String download) { uploadgb.setText("" + SpeedHelper.calculateMonthlyUsage(Integer.parseInt(upload))); downloadgb.setText("" + SpeedHelper.calculateMonthlyUsage(Integer.parseInt(download))); } + protected void initSpeeds(String upload, String download) { + uploadspeed.setText(upload); + downloadspeed.setText(download); + } + + private void kbpsSwitchPerformed(JComboBox kbps, JTextField speed) { + int index = kbps.getSelectedIndex(); + int previous = Integer.parseInt(speed.getText()); + if(index == KILOBIT) { + speed.setText("" + previous*8); + } + else { + speed.setText("" + previous/8); + } + } + + protected void saveSpeeds() { + int maxDownload = Integer.parseInt(downloadspeed.getText()); + int maxUpload = Integer.parseInt(uploadspeed.getText()); + if(uploadkbps.getSelectedIndex() == KILOBIT) { + SpeedHandler.setOutboundBandwidth(maxUpload/8); + SpeedHandler.setOutboundBurstBandwidth(maxUpload/8); + } + else { + SpeedHandler.setOutboundBandwidth(maxUpload); + SpeedHandler.setOutboundBurstBandwidth(maxUpload); + } + if(downloadkbps.getSelectedIndex() == KILOBIT) { + SpeedHandler.setInboundBandwidth(maxDownload/8); + SpeedHandler.setInboundBurstBandwidth(maxDownload/8); + } + else { + SpeedHandler.setInboundBandwidth(maxDownload); + SpeedHandler.setInboundBurstBandwidth(maxDownload); + } + } + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JPanel advancedPanel; private javax.swing.JToggleButton advancedUpdateConfig; @@ -428,14 +523,12 @@ private void downloadgbKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_ private javax.swing.JScrollPane clientFrame; private javax.swing.JLabel clientTunnelLabel; private javax.swing.JLabel downloadSpeedLabel; + private javax.swing.JLabel downloadUsageLabel; private javax.swing.JTextField downloadgb; private javax.swing.JComboBox downloadkbps; private javax.swing.JTextField downloadspeed; - 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 gbDownloadLabel; + private javax.swing.JLabel gbUploadLabel; private javax.swing.JPanel networkPanel; private javax.swing.JToggleButton ok; private javax.swing.JScrollPane serverFrame; @@ -450,7 +543,9 @@ private void downloadgbKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_ private javax.swing.JLabel updateMethod; private javax.swing.JToggleButton updateNow; private javax.swing.JPanel updatesPanel; + private javax.swing.JLabel uploadDownloadExplanation; private javax.swing.JLabel uploadSpeedLabel; + private javax.swing.JLabel uploadUsageLabel; private javax.swing.JTextField uploadgb; private javax.swing.JComboBox uploadkbps; private javax.swing.JTextField uploadspeed; diff --git a/apps/desktopgui/src/net/i2p/desktopgui/gui/Tray.java b/apps/desktopgui/src/net/i2p/desktopgui/gui/Tray.java index b20a850f6d..42f720c27c 100644 --- a/apps/desktopgui/src/net/i2p/desktopgui/gui/Tray.java +++ b/apps/desktopgui/src/net/i2p/desktopgui/gui/Tray.java @@ -170,7 +170,7 @@ public class Tray { popup.addSeparator(); config.add(speedConfig); - //config.add(generalConfig); + config.add(generalConfig); config.add(advancedConfig); popup.add(config); diff --git a/apps/desktopgui/src/net/i2p/desktopgui/gui/resources/GeneralConfiguration.properties b/apps/desktopgui/src/net/i2p/desktopgui/gui/resources/GeneralConfiguration.properties index e1c16a08cb..c6af27a514 100644 --- a/apps/desktopgui/src/net/i2p/desktopgui/gui/resources/GeneralConfiguration.properties +++ b/apps/desktopgui/src/net/i2p/desktopgui/gui/resources/GeneralConfiguration.properties @@ -1,10 +1,5 @@ cancel.text=Cancel ok.text=OK -jLabel3.text=Monthly usage: -jLabel4.text=Monthly usage: -jLabel5.text=GB -jLabel6.text=GB -jLabel7.text=Explanation ... Form.title=General Configuration speedPanel.TabConstraints.tabTitle=Speed updatesPanel.TabConstraints.tabTitle=Updates @@ -27,3 +22,8 @@ advancedUpdateConfig.text=Advanced update configuration clientTunnelLabel.text=Client tunnels: serverTunnelLabel.text=Server tunnels: tunnelsExplanation.text=Tunnel explanation +uploadUsageLabel.text=Monthly usage: +downloadUsageLabel.text=Monthly usage: +gbUploadLabel.text=GB +gbDownloadLabel.text=GB +uploadDownloadExplanation.text=Explanation ... diff --git a/apps/desktopgui/src/net/i2p/desktopgui/router/configuration/SpeedHelper.java b/apps/desktopgui/src/net/i2p/desktopgui/router/configuration/SpeedHelper.java index 5d2074de2c..51b8b5a6f6 100644 --- a/apps/desktopgui/src/net/i2p/desktopgui/router/configuration/SpeedHelper.java +++ b/apps/desktopgui/src/net/i2p/desktopgui/router/configuration/SpeedHelper.java @@ -36,4 +36,8 @@ public class SpeedHelper { public static String getInboundBandwidth() { return RouterHelper.getContext().router().getConfigSetting(FIFOBandwidthRefiller.PROP_INBOUND_BANDWIDTH); } + + public static String getOutboundBandwidth() { + return RouterHelper.getContext().router().getConfigSetting(FIFOBandwidthRefiller.PROP_OUTBOUND_BANDWIDTH); + } } diff --git a/history.txt b/history.txt index 895f2bfc30..350d25b36c 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,7 @@ +2009-05-20 Mathiasdm + * General configuration enabled by default + * General configuration speed tab works completely + 2009-05-17 zzz * Merge i2p.i2p.zzz.upnp branch * Major changes: