summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetshareConfigurator.java
diff options
context:
space:
mode:
authorJonathan Bauer2017-09-07 16:55:27 +0200
committerJonathan Bauer2017-09-07 16:55:27 +0200
commitb47ad995a65ba9cccd7fe2b7f889a4e83bbb11cb (patch)
treece360bfb5ca804395e4f815d19c0d88394f34e94 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetshareConfigurator.java
parentfix stupid bug (diff)
downloadtutor-module-b47ad995a65ba9cccd7fe2b7f889a4e83bbb11cb.tar.gz
tutor-module-b47ad995a65ba9cccd7fe2b7f889a4e83bbb11cb.tar.xz
tutor-module-b47ad995a65ba9cccd7fe2b7f889a4e83bbb11cb.zip
[client/server] remove GUEST_USER from netshares
* added some sanity checks before adding a new network share in the table * added user feedback error message for invalid input * fixed text fields growing/shrinking depending on input
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetshareConfigurator.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetshareConfigurator.java74
1 files changed, 42 insertions, 32 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetshareConfigurator.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetshareConfigurator.java
index ac10e2bb..d36bc691 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetshareConfigurator.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetshareConfigurator.java
@@ -1,9 +1,12 @@
package org.openslx.dozmod.gui.control;
import java.awt.BorderLayout;
+import java.awt.Color;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
@@ -43,7 +46,6 @@ public class NetshareConfigurator extends NetshareConfiguratorLayout {
private static final long serialVersionUID = -3336605759245603655L;
private final static Logger LOGGER = Logger.getLogger(NetshareConfigurator.class);
-
private List<NetShare> tblNetshareData = null;
public NetshareConfigurator() {
@@ -61,16 +63,17 @@ public class NetshareConfigurator extends NetshareConfiguratorLayout {
@Override
public void actionPerformed(ActionEvent e) {
NetShareAuth selectedAuth = cboNetshareAuth.getItemAt(cboNetshareAuth.getSelectedIndex());
- boolean activate = selectedAuth == NetShareAuth.SPECIAL_USER;
+ if (selectedAuth == null)
+ return;
+ boolean activate = selectedAuth == NetShareAuth.OTHER_USER;
// username field is needed to either special or guest user
- tfUsername.setEnabled(activate || selectedAuth == NetShareAuth.GUEST_USER);
- lblUsername.setEnabled(activate || selectedAuth == NetShareAuth.GUEST_USER);
+ tfUsername.setEnabled(activate);
+ lblUsername.setEnabled(activate);
tfPassword.setEnabled(activate);
lblPassword.setEnabled(activate);
chkShowPass.setEnabled(activate);
}
});
-
tfUsername.setEnabled(false);
lblUsername.setEnabled(false);
tfPassword.setEnabled(false);
@@ -84,42 +87,48 @@ public class NetshareConfigurator extends NetshareConfiguratorLayout {
NetShare input = new NetShare();
NetShareAuth inputNetShareAuth = cboNetshareAuth.getItemAt(cboNetshareAuth.getSelectedIndex());
if (inputNetShareAuth == null) {
- LOGGER.error("Could not get the network share auth type from the combobox!");
+ lblError.setText("Kein Authentifizierungstyp angegeben!");
return;
}
input.auth = inputNetShareAuth;
input.path = tfSharePath.getText();
if (input.path == null || input.path.isEmpty()) {
- LOGGER.error("Missing/empty network share URI!");
+ lblError.setText("Kein Pfad angegeben!");
return;
}
switch (inputNetShareAuth) {
- case GUEST_USER:
- // guest mode requires guest account but not password
- input.username = tfUsername.getText();
- break;
case LOGIN_USER:
+ // this uses the bwLehrpool client's logged in user
+ // we don't need to have anything
break;
- case SPECIAL_USER:
+ case OTHER_USER:
// save given username/password
input.username = tfUsername.getText();
char[] inputPassword = tfPassword.getPassword();
input.password = new String(inputPassword);
- Arrays.fill(inputPassword, '0');
+ Arrays.fill(inputPassword, '0'); // prolly not relevant/sufficiant...
+ // if password is set but no username, error
+ if (!input.password.isEmpty() && input.username.isEmpty()) {
+ lblError.setText("Kein Nutzername angegeben!");
+ return;
+ }
break;
default:
input = null;
break;
}
if (input == null) {
- LOGGER.debug("Input bad, aborting.");
+ lblError.setText("Interner Fehler");
+ LOGGER.debug("Bad input, aborting.");
return;
}
// now decide whether to create a new entry or update existing one
- if (tblNetshare.getSelectedItem() != null) {
+ NetShare oldEntry = tblNetshare.getSelectedItem();
+ if (oldEntry != null) {
// editing existing one, delete it from the internal data
- if (!tblNetshareData.remove(tblNetshare.getSelectedItem())) {
+ if (!tblNetshareData.remove(oldEntry)) {
+ lblError.setText("Änderung fehlgeschlagen!");
LOGGER.debug("Failed to remove selected share for replacement!");
return;
}
@@ -128,9 +137,11 @@ public class NetshareConfigurator extends NetshareConfiguratorLayout {
// creating a new one, either way add it to the list and update
// the table, if its not present already
if (tblNetshareData.contains(input)) {
+ lblError.setText("Existiert bereits!");
LOGGER.error("Network share already in the list, aborting.");
return;
}
+ lblError.setText(null);
tblNetshareData.add(input);
tblNetshare.getModel().setData(tblNetshareData);
}
@@ -254,7 +265,7 @@ class NetshareConfiguratorLayout extends JPanel {
private final static String txtNetshareDesc = "Hier können Sie Netzlaufwerke angeben,"
+ " die automatisch beim Start der Veranstaltung eingebunden werden sollen.";
- protected QLabel lblShareAuth, lblSharePath, lblUsername, lblPassword;
+ protected QLabel lblShareAuth, lblSharePath, lblUsername, lblPassword, lblError;
protected NetshareTable tblNetshare = new NetshareTable();
protected JTextField tfSharePath, tfUsername;
@@ -280,34 +291,28 @@ class NetshareConfiguratorLayout extends JPanel {
// middle netshare list
grid.add(new QScrollPane(tblNetshare), 5).fill(true, true).expand(true, true);
grid.nextRow();
- JPanel pnlButtonDelete = new JPanel();
- pnlButtonDelete.setLayout(new BoxLayout(pnlButtonDelete, BoxLayout.LINE_AXIS));
- btnDel = new JButton("Entfernen");
- pnlButtonDelete.add(Box.createGlue());
- pnlButtonDelete.add(btnDel, BorderLayout.LINE_END);
- grid.add(pnlButtonDelete, 5).fill(true, false).expand(true, false);
- grid.nextRow();
+
JPanel pnlNewShare = new JPanel();
GridManager gridNewShare = new GridManager(pnlNewShare, 5, true);
- pnlNewShare.setBorder(BorderFactory.createTitledBorder("Neues Netzlaufwerk"));
+ pnlNewShare.setBorder(BorderFactory.createTitledBorder("Details"));
// bottom form to add a new share
lblShareAuth = new QLabel("Authentifizierung");
gridNewShare.add(lblShareAuth);
- gridNewShare.add(cboNetshareAuth, 4).fill(true, false).expand(true, false); // User (optional)
+ gridNewShare.add(cboNetshareAuth, 4).fill(true, false).expand(true, false);
gridNewShare.nextRow();
lblSharePath = new QLabel("URI");
gridNewShare.add(lblSharePath);
tfSharePath = new JTextField();
- gridNewShare.add(tfSharePath, 4).fill(true, false).expand(true, false); // User (optional)
+ gridNewShare.add(tfSharePath, 4).fill(true, false).expand(true, false);
gridNewShare.nextRow();
lblUsername = new QLabel("Username");
gridNewShare.add(lblUsername);
- tfUsername = new JTextField();
- gridNewShare.add(tfUsername, 1).fill(true, false).expand(true, false); // Password (optional)
+ tfUsername = new JTextField(20);
+ gridNewShare.add(tfUsername, 1).fill(true, false).expand(true, false);
lblPassword = new QLabel("Passwort:");
gridNewShare.add(lblPassword);
- tfPassword = new JPasswordField();
- gridNewShare.add(tfPassword, 2).fill(true, false).expand(true, false); // Password (optional)
+ tfPassword = new JPasswordField(20);
+ gridNewShare.add(tfPassword, 2).fill(true, false).expand(true, false);
gridNewShare.nextRow();
chkShowPass = new JCheckBox("Passwort anzeigen");
JPanel pnlHidePass = new JPanel();
@@ -318,12 +323,17 @@ class NetshareConfiguratorLayout extends JPanel {
gridNewShare.nextRow();
grid.add(pnlNewShare, 5).fill(true, false).expand(true, false);
grid.nextRow();
- // bottom panels for right-aligned button...
+ // bottom panel for right-aligned button...
JPanel pnlButtonAdd = new JPanel();
pnlButtonAdd.setLayout(new BoxLayout(pnlButtonAdd, BoxLayout.LINE_AXIS));
btnAdd = new JButton("Hinzufügen");
+ btnDel = new JButton("Entfernen");
+ lblError = new QLabel("");
+ lblError.setForeground(Color.RED);
+ pnlButtonAdd.add(lblError);
pnlButtonAdd.add(Box.createGlue());
pnlButtonAdd.add(btnAdd, BorderLayout.LINE_END);
+ pnlButtonAdd.add(btnDel, BorderLayout.LINE_END);
grid.add(pnlButtonAdd, 5).fill(true, false).expand(true, false);
grid.finish(false);
}