summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2015-10-21 18:24:33 +0200
committerSimon Rettberg2015-10-21 18:24:33 +0200
commit9dcb793ea9225c34b5794eee2e372985c5ceda91 (patch)
treefd770fe7d724d71875f086c7a4deaf90e8e89863
parent[client] Make deselection in tables possible when clicking on empty space. (diff)
downloadtutor-module-9dcb793ea9225c34b5794eee2e372985c5ceda91.tar.gz
tutor-module-9dcb793ea9225c34b5794eee2e372985c5ceda91.tar.xz
tutor-module-9dcb793ea9225c34b5794eee2e372985c5ceda91.zip
[client] Add experimental setting for number of connections per transfer
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/Config.java18
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java42
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ConfigWindowLayout.java27
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java1
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UploadInitiator.java2
5 files changed, 70 insertions, 20 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/Config.java b/dozentenmodul/src/main/java/org/openslx/dozmod/Config.java
index 1066ff9b..9cb002fa 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/Config.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/Config.java
@@ -389,6 +389,24 @@ public class Config {
}
/**
+ * Set number of connections to establish per transfer
+ */
+ public static void setTransferConnectionCount(int count) {
+ setInteger("transfer.connections-per-transfer", count);
+ }
+
+ /**
+ * Get number of connections to establish per transfer
+ */
+ public static int getTransferConnectionCount() {
+ int count = getInteger("transfer.connections-per-transfer", 1);
+ if (count < 1 || count > 4) {
+ count = 4;
+ }
+ return count;
+ }
+
+ /**
* Set the mode in which the proxy server is configured.
*
* @param mode
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java
index ce18cf64..e7e406f7 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ConfigWindow.java
@@ -59,16 +59,22 @@ public class ConfigWindow extends ConfigWindowLayout implements UiFeedback, Acti
}
btnSendMeMail.addActionListener(this);
// -- END USER CONFIG --
-
- // -- FONT CONFIG --
- // set font scaling as saved in config
- btnFontSize.setValue(Config.getFontScaling());
- btnFontSize.addChangeListener(new ChangeListener() {
+
+ ChangeListener changeListener = new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
reactToInput();
}
- });
+ };
+
+ // -- FONT CONFIG --
+ // set font scaling as saved in config
+ btnFontSize.setValue(Config.getFontScaling());
+ btnFontSize.addChangeListener(changeListener);
+
+ // Transfer connection count
+ sldConnections.setValue(Config.getTransferConnectionCount());
+ sldConnections.addChangeListener(changeListener);
// -- BOTTOM BUTTONS --
btnSave.addActionListener(this);
@@ -80,31 +86,38 @@ public class ConfigWindow extends ConfigWindowLayout implements UiFeedback, Acti
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source == btnProxyAuto || source == btnProxyHttp || source == btnProxyNone
- || source == btnProxySocks)
+ || source == btnProxySocks) {
reactToInput();
- if (source == btnSave)
+ }
+ if (source == btnSave) {
saveOptions();
- if (source == btnClose)
+ }
+ if (source == btnClose) {
dispose();
+ }
}
private void reactToInput() {
// our flag to en/disable the save button
boolean changed = false;
// first check our initial state
+ // TODO: Don't query this every time something changes
ProxyMode initMode = Config.getProxyMode();
SatelliteUserConfig userConfig = getSatUserConfig();
int fontScaling = Config.getFontScaling();
// now check if the buttons represent another state
- if (btnProxyNone.isSelected() && initMode != ProxyMode.NONE)
+ if (btnProxyNone.isSelected() && initMode != ProxyMode.NONE) {
+ changed = true;
+ } else if (btnProxyAuto.isSelected() && initMode != ProxyMode.AUTO) {
changed = true;
- else if (btnProxyAuto.isSelected() && initMode != ProxyMode.AUTO)
+ } else if (btnSendMeMail.isSelected() != userConfig.emailNotifications) {
changed = true;
- else if (btnSendMeMail.isSelected() != userConfig.emailNotifications)
+ } else if ((int) btnFontSize.getValue() != fontScaling) {
changed = true;
- else if ((Integer) btnFontSize.getValue() != fontScaling)
+ } else if ((int) sldConnections.getValue() != Config.getTransferConnectionCount()) {
changed = true;
+ }
// en/disable the save button
btnSave.setEnabled(changed);
@@ -149,7 +162,8 @@ public class ConfigWindow extends ConfigWindowLayout implements UiFeedback, Acti
}
// save font scaling to config
- Config.setFontScaling((Integer) btnFontSize.getValue());
+ Config.setFontScaling((int) btnFontSize.getValue());
+ Config.setTransferConnectionCount((int) sldConnections.getValue());
// NOTE this can fail!
// save mail notification stuff to sat
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ConfigWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ConfigWindowLayout.java
index b1a0c761..fdcc69d1 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ConfigWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ConfigWindowLayout.java
@@ -13,13 +13,13 @@ import javax.swing.DefaultBoundedRangeModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
-import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JSlider;
import org.openslx.dozmod.Config;
import org.openslx.dozmod.gui.Gui;
+import org.openslx.dozmod.gui.control.QLabel;
import org.openslx.dozmod.gui.helper.GridManager;
import org.openslx.dozmod.thrift.Session;
@@ -34,6 +34,7 @@ public class ConfigWindowLayout extends JDialog {
protected JRadioButton btnProxyHttp;
protected JCheckBox btnSendMeMail;
protected JSlider btnFontSize;
+ protected final JSlider sldConnections;
protected JButton btnSave;
protected JButton btnClose;
@@ -60,10 +61,10 @@ public class ConfigWindowLayout extends JDialog {
btnSendMeMail = new JCheckBox("Über Image- und Veranstaltungsänderungen per eMail informiert werden");
mailPanel.add(btnSendMeMail);
// TODO center the label horizontally
- JLabel mailNotice = new JLabel(
+ QLabel mailNotice = new QLabel(
"Für diese Option muss der Server für den Mailversand konfiguriert sein.");
mailPanel.add(mailNotice);
- JLabel mailNote = new JLabel("Ihre eMail-Adresse ist " + Session.getEMail());
+ QLabel mailNote = new QLabel("Ihre eMail-Adresse ist " + Session.getEMail());
mailNote.setFont(mailNote.getFont().deriveFont(Font.ITALIC));
mailPanel.add(mailNote);
@@ -92,7 +93,7 @@ public class ConfigWindowLayout extends JDialog {
JPanel fontPanel = new JPanel();
fontPanel.setBorder(BorderFactory.createTitledBorder("Schriftgröße (%)"));
GridManager fontGrid = new GridManager(fontPanel, 1);
- JLabel fontNote = new JLabel("Diese Funktion ist experimentell. Es kann zu Anzeigefehlern kommen.");
+ QLabel fontNote = new QLabel("Diese Funktion ist experimentell. Es kann zu Anzeigefehlern kommen.");
fontNote.setFont(fontNote.getFont().deriveFont(Font.ITALIC));
fontGrid.add(fontNote);
fontGrid.nextRow();
@@ -108,6 +109,16 @@ public class ConfigWindowLayout extends JDialog {
fontGrid.nextRow();
fontGrid.finish(false);
+ // Concurrent Connections
+ sldConnections = new JSlider(JSlider.HORIZONTAL);
+ sldConnections.setModel(new DefaultBoundedRangeModel(1, 1, 1, 4));
+ sldConnections.setSnapToTicks(true);
+ JPanel pnlConnections = new JPanel();
+ pnlConnections.setLayout(new BoxLayout(pnlConnections, BoxLayout.PAGE_AXIS));
+ pnlConnections.setBorder(BorderFactory.createTitledBorder("Verbindungen pro Transfer (DEBUG/TESTING)"));
+ pnlConnections.add(new QLabel("Anzahl Verbindungen pro Up/Download. Empfohlene Einstellung: 1"));
+ pnlConnections.add(sldConnections);
+
// bottom button panel
JPanel buttonPanel = new JPanel();
btnClose = new JButton("Schließen");
@@ -117,7 +128,7 @@ public class ConfigWindowLayout extends JDialog {
buttonPanel.add(Box.createGlue());
buttonPanel.add(btnClose);
buttonPanel.add(btnSave);
-
+
// Start the grid stuff
GridManager grid = new GridManager(contentPanel, 1);
grid.add(mailPanel).fill(true, false).expand(false, false);
@@ -130,9 +141,13 @@ public class ConfigWindowLayout extends JDialog {
grid.nextRow();
grid.add(fontPanel).fill(true, false).expand(false, false);
grid.nextRow();
+ grid.add(Box.createRigidArea(new Dimension(0, 10)));
+ grid.nextRow();
+ grid.add(pnlConnections).fill(true, false).expand(false, false);
+ grid.nextRow();
grid.finish(false);
- add(buttonPanel, BorderLayout.PAGE_END);
+ getContentPane().add(buttonPanel, BorderLayout.PAGE_END);
pack();
}
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
index 7f725857..6a7be596 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
@@ -415,6 +415,7 @@ public class ThriftActions {
return;
}
+ dlTask.setMinConnections(Config.getTransferConnectionCount());
dlTask.addListener(new TransferEventListener() {
@Override
public void update(TransferEvent event) {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UploadInitiator.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UploadInitiator.java
index b176a5cb..5d052f2e 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UploadInitiator.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UploadInitiator.java
@@ -13,6 +13,7 @@ import org.openslx.bwlp.thrift.iface.SatelliteStatus;
import org.openslx.bwlp.thrift.iface.TAuthorizationException;
import org.openslx.bwlp.thrift.iface.TTransferRejectedException;
import org.openslx.bwlp.thrift.iface.TransferInformation;
+import org.openslx.dozmod.Config;
import org.openslx.dozmod.filetransfer.AsyncHashGenerator;
import org.openslx.dozmod.filetransfer.UploadTask;
import org.openslx.thrifthelper.ThriftManager;
@@ -174,6 +175,7 @@ public class UploadInitiator {
this.cancel();
return;
}
+ uploadTask.setMinConnections(Config.getTransferConnectionCount());
Thread uploadThread = new Thread(uploadTask);
uploadThread.setDaemon(true);
uploadThread.start();