summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java
diff options
context:
space:
mode:
authorJonathan Bauer2016-08-31 16:54:59 +0200
committerJonathan Bauer2016-08-31 16:54:59 +0200
commit26cd5699373dbe35ee24700189e8a3e580ae6243 (patch)
tree0389541c704fbfe05aeb514365e4643f84bbfa20 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java
parent[client] Reset filter when hiding lecture list if filtered by linked image (diff)
downloadtutor-module-26cd5699373dbe35ee24700189e8a3e580ae6243.tar.gz
tutor-module-26cd5699373dbe35ee24700189e8a3e580ae6243.tar.xz
tutor-module-26cd5699373dbe35ee24700189e8a3e580ae6243.zip
[client] vm-config editor finished, accessible from the popup menu of image's versions
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java80
1 files changed, 80 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java
new file mode 100644
index 00000000..4a10e776
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java
@@ -0,0 +1,80 @@
+package org.openslx.dozmod.gui.window;
+
+import java.awt.Window;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import org.apache.log4j.Logger;
+import org.openslx.dozmod.gui.Gui;
+import org.openslx.dozmod.gui.helper.MessageType;
+import org.openslx.dozmod.gui.helper.TextChangeListener;
+import org.openslx.dozmod.gui.helper.UiFeedback;
+import org.openslx.dozmod.gui.window.layout.VirtConfigEditorWindowLayout;
+
+
+@SuppressWarnings("serial")
+public class VirtConfigEditorWindow extends VirtConfigEditorWindowLayout implements UiFeedback {
+
+ private final static Logger LOGGER = Logger.getLogger(VirtConfigEditorWindow.class);
+
+ public interface VirtConfigChanged {
+ public void virtConfigChanged(String newVmx);
+ }
+ private final String originalMachineDescription;
+ private final VirtConfigEditorWindow me = this;
+
+ protected VirtConfigEditorWindow(Window modalParent, final VirtConfigChanged cb, final String machineDescription) {
+ super(modalParent);
+ originalMachineDescription = machineDescription;
+
+ // listener for the text fields
+ pnlEditor.getDocument().addDocumentListener(new TextChangeListener() {
+ @Override
+ public void changed() {
+ btnSave.setEnabled(!originalMachineDescription.equals(pnlEditor.getText()));;
+ }
+ });
+
+ btnSave.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ cb.virtConfigChanged(pnlEditor.getText());
+ // above command throws exception
+ dispose();
+ }
+ });
+
+ btnCancel.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ safeClose();
+ }
+ });
+ // finally set the editor's content to the vmx
+ pnlEditor.setText(machineDescription);
+ pnlEditor.setCaretPosition(0);
+ }
+
+ public static void open(Window modalParent, final VirtConfigChanged cb, final String machineDescription) {
+ VirtConfigEditorWindow win = new VirtConfigEditorWindow(modalParent, cb, machineDescription);
+ win.setVisible(true);
+ }
+
+ private void safeClose() {
+ if (originalMachineDescription.equals(pnlEditor.getText()) ||
+ Gui.showMessageBox(me, "Ihre Ă„nderungen werden verloren gehen, wollen Sie trotzdem abbrechen?", MessageType.QUESTION_YESNO,
+ LOGGER, null))
+ dispose();
+ }
+
+ @Override
+ public boolean wantConfirmQuit() {
+ return !originalMachineDescription.equals(pnlEditor.getText());
+ }
+
+ @Override
+ public void escapePressed() {
+ safeClose();
+ }
+
+} \ No newline at end of file