diff options
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java index 32adaf24..e2d55f29 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java @@ -32,6 +32,7 @@ import org.apache.thrift.TException; import org.openslx.bwlp.thrift.iface.ImageBaseWrite; import org.openslx.bwlp.thrift.iface.ImageDetailsRead; import org.openslx.bwlp.thrift.iface.ImagePermissions; +import org.openslx.bwlp.thrift.iface.ImagePublishData; import org.openslx.bwlp.thrift.iface.ImageSummaryRead; import org.openslx.bwlp.thrift.iface.ImageVersionDetails; import org.openslx.bwlp.thrift.iface.LectureSummary; @@ -46,6 +47,7 @@ import org.openslx.dozmod.gui.helper.PopupMenu; import org.openslx.dozmod.gui.helper.TextChangeListener; import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; +import org.openslx.dozmod.gui.window.VmxEditorWindow.VmxChangedCallback; import org.openslx.dozmod.gui.window.layout.ImageDetailsWindowLayout; import org.openslx.dozmod.gui.wizard.ImageUpdateWizard; import org.openslx.dozmod.gui.wizard.LectureWizard; @@ -185,6 +187,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe if (safeClose()) { LectureListWindow page = MainWindow.showPage(LectureListWindow.class); page.filterByImageBaseId(image.imageBaseId); + } } }); @@ -205,6 +208,42 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe }, "Besitzer festlegen", image.ownerId); } }); + btnEditVmx.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + QuickTimer.scheduleOnce(new Task() { + ImagePublishData data = null; + @Override + public void fire() { + data = ThriftActions.getImageData(image.imageBaseId); + Gui.asyncExec(new Runnable() { + @Override + public void run() { + if (data == null) { + // TODO warn user about failure + return; + } + // open basic vmx editor + byte[] bytes; + if(data.machineDescription.hasArray()) { + bytes = data.machineDescription.array(); + } else { + bytes = new byte[data.machineDescription.remaining()]; + data.machineDescription.get(bytes); + } + String dataString = new String(bytes, java.nio.charset.StandardCharsets.UTF_8); + VmxEditorWindow.open(me, new VmxChangedCallback() { + @Override + public void vmxChanged(String newVmx) { + // TODO save it + } + }, dataString); + } + }); + } + }); + } + }); btnPermissions.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { |