summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetrulesConfigurator.java40
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/RunscriptConfigurator.java42
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java29
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureNetrulesWindow.java26
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureOptionsPage.java19
5 files changed, 65 insertions, 91 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetrulesConfigurator.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetrulesConfigurator.java
index c518739f..e715d075 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetrulesConfigurator.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/NetrulesConfigurator.java
@@ -37,6 +37,7 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout {
private static final long serialVersionUID = -3497629601818983994L;
private final static Logger LOGGER = Logger
.getLogger(NetrulesConfigurator.class);
+ private List<NetRule> originalNetRules = null;
private String originalRawRuleText = null;
/**
* Character defining how the rules are parsed, e.g. for whitespace \\s
@@ -73,14 +74,11 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout {
* rules as List<NetRule> and the raw runscript text as String
* @see org.openslx.dozmod.gui.control.NetrulesConfigurator.AdvancedConfiguration
*/
- public NetrulesConfiguration getState() {
+ public List<NetRule> getState() {
// cleanup the TextPane for network rules if needed
String input = tpNetworkRules.getText().trim();
- List<NetRule> rules = parseNetRules(input);
- if (rules != null) {
- return new NetrulesConfiguration(rules);
- }
- return null;
+ final List<NetRule> rules = parseNetRules(input);
+ return rules != null ? rules : new ArrayList<NetRule>();
}
/**
@@ -91,9 +89,9 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout {
* @param config
* AdvancedConfiguration to set the state to
*/
- public void setState(final NetrulesConfiguration config) {
+ public void setState(final List<NetRule> netrules) {
// setText() blanks the text area if null is given, so no null checks
- originalRawRuleText = decodeNetRulesToText(config.netRulesList);
+ originalRawRuleText = decodeNetRulesToText(netrules);
this.tpNetworkRules.setText(originalRawRuleText);
}
@@ -341,19 +339,19 @@ public class NetrulesConfigurator extends NetrulesConfiguratorLayout {
tpNetworkRules.setCharacterAttributes(set, true);
}
- /**
- * Wrapper class for the advanced configuration information needed since we
- * need to return a single object from the runAndReturn routine. This class
- * has two members: the list of NetRule(s) (as List<NetRule>) and the
- * runScriptText (as String)
- */
- public static class NetrulesConfiguration {
- public List<NetRule> netRulesList;
-
- public NetrulesConfiguration(List<NetRule> netRulesList) {
- this.netRulesList = netRulesList;
- }
- }
+// /**
+// * Wrapper class for the advanced configuration information needed since we
+// * need to return a single object from the runAndReturn routine. This class
+// * has two members: the list of NetRule(s) (as List<NetRule>) and the
+// * runScriptText (as String)
+// */
+// public static class NetrulesConfiguration {
+// public List<NetRule> netRulesList;
+//
+// public NetrulesConfiguration(List<NetRule> netRulesList) {
+// this.netRulesList = netRulesList;
+// }
+// }
/**
* Custom event mechanism to detect changes to the user list (Mostly needed
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/RunscriptConfigurator.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/RunscriptConfigurator.java
index 8a517c4f..b4c375d2 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/RunscriptConfigurator.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/RunscriptConfigurator.java
@@ -41,23 +41,13 @@ public class RunscriptConfigurator extends RunscriptConfiguratorLayout {
}
/**
- * Gets the state of the widget. This will first try to parse the
- * tpNetworkRules and taRunScript and build the corresponding
- * AdvancedConfiguration Object returned.
+ * Gets the runscript as String.
*
- * @return advanced configuration object composed of the parsed network
- * rules as List<NetRule> and the raw runscript text as String
- * @see org.openslx.dozmod.gui.control.AdvancedConfigurator.AdvancedConfiguration
+ * @return runscript as String. If not text was entered, returns a empty string.
*/
- public RunscriptConfiguration getState() {
- // cleanup the TextPane for network rules if needed
-
-
- String runscriptString = taRunScript.getText();
- if (runscriptString != null) {
- return new RunscriptConfiguration(runscriptString);
- }
- return null;
+ public String getState() {
+ String input = taRunScript.getText();
+ return input != null ? input : "";
}
/**
@@ -68,26 +58,10 @@ public class RunscriptConfigurator extends RunscriptConfiguratorLayout {
* @param config
* AdvancedConfiguration to set the state to
*/
- public void setState(final RunscriptConfiguration config) {
- // setText() blanks the text area if null is given, so no null checks
- originalRunScript = config.runScriptText != null ? config.runScriptText
- : "";
- this.taRunScript.setText(originalRunScript);
+ public void setState(final String config) {
+ this.taRunScript.setText(config != null ? config : "" );
}
- /**
- * Wrapper class for the advanced configuration information needed since we
- * need to return a single object from the runAndReturn routine. This class
- * has two members: the list of NetRule(s) (as List<NetRule>) and the
- * runScriptText (as String)
- */
- public static class RunscriptConfiguration {
- public String runScriptText;
-
- public RunscriptConfiguration(String runScriptText) {
- this.runScriptText = runScriptText;
- }
- }
/**
* Custom event mechanism to detect changes to the user list (Mostly needed
@@ -168,6 +142,8 @@ class RunscriptConfiguratorLayout extends JPanel {
.add(new WordWrapLabel(txtRunScriptDesc, false, true))
.fill(true, false).expand(true, false);
gridRunScript.nextRow();
+ // TODO add checkbox for script's interpreter type: sh, bash, powershell...
+
gridRunScript.add(scpRunScript).fill(true, true).expand(true, true);
gridRunScript.finish(false);
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
index ac45900a..750a4c0e 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java
@@ -36,6 +36,7 @@ import org.openslx.bwlp.thrift.iface.ImageVersionDetails;
import org.openslx.bwlp.thrift.iface.LecturePermissions;
import org.openslx.bwlp.thrift.iface.LectureRead;
import org.openslx.bwlp.thrift.iface.LectureWrite;
+import org.openslx.bwlp.thrift.iface.NetRule;
import org.openslx.bwlp.thrift.iface.UserInfo;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.MainWindow;
@@ -43,8 +44,6 @@ import org.openslx.dozmod.gui.control.JCheckBoxTree.CheckChangeEvent;
import org.openslx.dozmod.gui.control.JCheckBoxTree.CheckChangeEventListener;
import org.openslx.dozmod.gui.control.LectureCustomPermissionManager.UserChangeEvent;
import org.openslx.dozmod.gui.control.LectureCustomPermissionManager.UserChangeEventListener;
-import org.openslx.dozmod.gui.control.NetrulesConfigurator.NetrulesConfiguration;
-import org.openslx.dozmod.gui.control.RunscriptConfigurator.RunscriptConfiguration;
import org.openslx.dozmod.gui.control.RunscriptConfigurator.RunscriptConfigurationChangeEvent;
import org.openslx.dozmod.gui.control.RunscriptConfigurator.RunscriptConfigurationChangeEventListener;
import org.openslx.dozmod.gui.helper.DateTimeHelper;
@@ -137,8 +136,8 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
/**
* Holder of the netrules/runscript of this lecture
*/
- private NetrulesConfiguration currentNetrules = null;
- private RunscriptConfiguration currentRunscript = null;
+ private List<NetRule> currentNetrules = null;
+ private String currentRunscript = null;
/**
* Constructor
@@ -263,7 +262,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
btnNetrules.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- NetrulesConfiguration newNetrules = LectureNetrulesWindow.open(me, new NetrulesConfiguration(currentNetrules.netRulesList));
+ List<NetRule> newNetrules = LectureNetrulesWindow.open(me, currentNetrules);
if (newNetrules != null)
currentNetrules = newNetrules;
reactToChange();
@@ -282,9 +281,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
ctlRunscriptConfigurator.addRunscriptConfigurationChangeEventListener(new RunscriptConfigurationChangeEventListener() {
@Override
public void stateChanged(RunscriptConfigurationChangeEvent event) {
- RunscriptConfiguration rc = ctlRunscriptConfigurator.getState();
- if (rc != null)
- currentRunscript = rc;
+ currentRunscript = ctlRunscriptConfigurator.getState();
reactToChange();
}
@@ -384,8 +381,8 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
lblImageNameInfo.setText(image.getImageName());
}
// remember original advanced config
- currentNetrules = new NetrulesConfiguration(lecture.networkExceptions);
- currentRunscript = new RunscriptConfiguration(lecture.runscript);
+ currentNetrules = lecture.networkExceptions;
+ currentRunscript = lecture.runscript;
// remember default permissions
if (lecture.defaultPermissions != null) {
@@ -413,7 +410,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
ctlLocationSelector.setSelectedLocationsAsIds(locationInfo.locationList);
// init advanced info
- ctlRunscriptConfigurator.setState(new RunscriptConfiguration(lecture.runscript));
+ ctlRunscriptConfigurator.setState(lecture.runscript);
txtTitle.setText(lecture.getLectureName());
lblTitleInfo.setText(lecture.getLectureName());
@@ -623,8 +620,8 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
|| !lecture.defaultPermissions.equals(originalDefaultPermissions)
|| (locationInfo != null && lecture.locationIds != null && !lecture.locationIds.equals(locationInfo.locationList))
|| (locationInfo != null && lecture.limitToLocations != locationInfo.limitToLocations)
- || (currentNetrules.netRulesList != null && lecture.networkExceptions != null && !lecture.networkExceptions.equals(currentNetrules.netRulesList))
- || (currentRunscript.runScriptText != null && lecture.runscript != null && !lecture.runscript.equals(currentRunscript.runScriptText))
+ || (currentNetrules != null && lecture.networkExceptions != null && !lecture.networkExceptions.equals(currentNetrules))
+ || (currentRunscript != null && lecture.runscript != null && !lecture.runscript.equals(currentRunscript))
|| imageLinkChanged;
return changed;
@@ -663,19 +660,19 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements
pnlTabs.setSelectedIndex(pnlTabs.indexOfTab("Startskript"));
return false;
}
- metadataChanged |= (currentNetrules.netRulesList != lecture.networkExceptions || currentRunscript.runScriptText != lecture.runscript);
+ metadataChanged |= (currentNetrules != lecture.networkExceptions || currentRunscript != lecture.runscript);
// now check if we need to push a new LectureWrite
if (metadataChanged) {
// first build the LectureWrite from the GUI fields
final LectureWrite metadata = new LectureWrite(txtTitle.getText(), txtDescription.getText(),
lecture.getImageVersionId(), chkAutoUpdate.isSelected(), chkIsActive.isSelected(),
DateTimeHelper.getDateFrom(dtpStartDate, spnStartTime).getTime() / 1000L,
- DateTimeHelper.getDateFrom(dtpEndDate, spnEndTime).getTime() / 1000L, currentRunscript.runScriptText, null,
+ DateTimeHelper.getDateFrom(dtpEndDate, spnEndTime).getTime() / 1000L, currentRunscript, null,
chkIsExam.isSelected(), chkHasInternetAccess.isSelected(), // TODO USBACCESS
lecture.getDefaultPermissions(), locationInfo.locationList, locationInfo.limitToLocations,
// TODO: coming "false" is Location related
false, chkHasUsbAccess.isSelected());
- metadata.setNetworkExceptions(currentNetrules.netRulesList);
+ metadata.setNetworkExceptions(currentNetrules);
// now trigger the actual action
try {
ThriftManager.getSatClient().updateLecture(Session.getSatelliteToken(),
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureNetrulesWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureNetrulesWindow.java
index c497701b..8178d274 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureNetrulesWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureNetrulesWindow.java
@@ -3,11 +3,12 @@ package org.openslx.dozmod.gui.window;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.util.List;
import org.apache.log4j.Logger;
+import org.openslx.bwlp.thrift.iface.NetRule;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.Gui.GuiCallable;
-import org.openslx.dozmod.gui.control.NetrulesConfigurator.NetrulesConfiguration;
import org.openslx.dozmod.gui.helper.MessageType;
import org.openslx.dozmod.gui.helper.UiFeedback;
import org.openslx.dozmod.gui.window.layout.LectureNetrulesWindowLayout;
@@ -19,16 +20,17 @@ public class LectureNetrulesWindow extends LectureNetrulesWindowLayout
private static final Logger LOGGER = Logger
.getLogger(LectureNetrulesWindow.class);
private boolean apply = false;
- private NetrulesConfiguration newConfig = null;
+ private List<NetRule> newRules = null;
+
public LectureNetrulesWindow(Window modalParent,
- NetrulesConfiguration netrules) {
+ List<NetRule> netrules) {
super(modalParent);
btnSave.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- newConfig = ctlNetrulesConfigurator.getState();
- if (newConfig == null) {
+ newRules = ctlNetrulesConfigurator.getState();
+ if (newRules == null) {
return;
}
apply = true;
@@ -49,11 +51,11 @@ public class LectureNetrulesWindow extends LectureNetrulesWindowLayout
* @return list of ids of the selected locations. Will be either a new list
* if the user clicked apply or the list received from the sat.
*/
- public NetrulesConfiguration runAndReturn() {
+ public List<NetRule> runAndReturn() {
setVisible(true);
if (!apply)
return null;
- return newConfig;
+ return newRules;
}
/**
@@ -66,11 +68,11 @@ public class LectureNetrulesWindow extends LectureNetrulesWindowLayout
* @return forwards the return value of the window itself: list of ids of
* the selected locations
*/
- public static NetrulesConfiguration open(final Window modalParent,
- final NetrulesConfiguration netrules) {
- return Gui.syncExec(new GuiCallable<NetrulesConfiguration>() {
+ public static List<NetRule> open(final Window modalParent,
+ final List<NetRule> netrules) {
+ return Gui.syncExec(new GuiCallable<List<NetRule>>() {
@Override
- public NetrulesConfiguration run() {
+ public List<NetRule> run() {
return new LectureNetrulesWindow(modalParent, netrules)
.runAndReturn();
}
@@ -87,7 +89,7 @@ public class LectureNetrulesWindow extends LectureNetrulesWindowLayout
safeClose();
}
private void safeClose() {
- if (newConfig != null) {
+ if (newRules != null) {
if (Gui.showMessageBox("Änderungen werden verworfen. Wollen Sie wirklich abbrechen?", MessageType.ERROR_RETRY, LOGGER, null)) {
dispose();
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureOptionsPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureOptionsPage.java
index 3ab7bf45..188d1c3b 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureOptionsPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureOptionsPage.java
@@ -2,11 +2,12 @@ package org.openslx.dozmod.gui.wizard.page;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.util.ArrayList;
+import java.util.List;
import javax.swing.SwingUtilities;
-import org.openslx.dozmod.gui.control.NetrulesConfigurator.NetrulesConfiguration;
-import org.openslx.dozmod.gui.control.RunscriptConfigurator.RunscriptConfiguration;
+import org.openslx.bwlp.thrift.iface.NetRule;
import org.openslx.dozmod.gui.window.LectureNetrulesWindow;
import org.openslx.dozmod.gui.wizard.Wizard;
import org.openslx.dozmod.gui.wizard.layout.LectureOptionsPageLayout;
@@ -18,8 +19,8 @@ public class LectureOptionsPage extends LectureOptionsPageLayout {
private LectureOptionsPage me = this;
private LectureWizardState state = null;
- private NetrulesConfiguration currentNetrules = new NetrulesConfiguration(null);
- private RunscriptConfiguration currentRunscript = new RunscriptConfiguration(null);
+ private List<NetRule> currentNetrules = new ArrayList<NetRule>();
+ private String currentRunscript = new String("");
/**
* Page for lecture options
@@ -27,14 +28,14 @@ public class LectureOptionsPage extends LectureOptionsPageLayout {
public LectureOptionsPage(final Wizard wizard, LectureWizardState state) {
super(wizard);
this.state = state;
- this.currentNetrules = new NetrulesConfiguration(state.netRules);
- this.currentRunscript = new RunscriptConfiguration(state.runScriptText);
+ this.currentNetrules = state.netRules;
+ this.currentRunscript = state.runScriptText;
setPageComplete(true);
btnNetrules.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
- NetrulesConfiguration newNetrules = LectureNetrulesWindow.open(
+ List<NetRule> newNetrules = LectureNetrulesWindow.open(
SwingUtilities.getWindowAncestor(me), currentNetrules);
if (newNetrules != null) {
currentNetrules = newNetrules;
@@ -64,8 +65,8 @@ public class LectureOptionsPage extends LectureOptionsPageLayout {
state.internetAccess = chkInternetEnabled.isSelected();
state.isEnabled = chkIsActive.isSelected();
state.usbAllowed = chkUsbEnabled.isSelected();
- state.netRules = currentNetrules.netRulesList;
- state.runScriptText = currentRunscript.runScriptText;
+ state.netRules = currentNetrules;
+ state.runScriptText = currentRunscript;
setDescription("Klicken Sie auf 'Weiter' für Berechtigungen oder 'Fertigstellen'.");
return true;