diff options
| author | Jonathan Bauer | 2016-09-05 14:31:12 +0200 |
|---|---|---|
| committer | Jonathan Bauer | 2016-09-05 14:31:12 +0200 |
| commit | 5f74fa9f181400677119e1ab4e5185bf2a282b28 (patch) | |
| tree | 62206ab849f5f6504e6f31028863adf81c81ece8 /dozentenmodul/src/main/java | |
| parent | Added improved default template texts.(#2946). (diff) | |
| download | tutor-module-5f74fa9f181400677119e1ab4e5185bf2a282b28.tar.gz tutor-module-5f74fa9f181400677119e1ab4e5185bf2a282b28.tar.xz tutor-module-5f74fa9f181400677119e1ab4e5185bf2a282b28.zip | |
[client] remove unneeded wrapped class for netrules/runscript + fix some save button enable problems once more...
Diffstat (limited to 'dozentenmodul/src/main/java')
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; |
