diff options
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java | 45 |
1 files changed, 34 insertions, 11 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 d2746779..a3de81a9 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 @@ -18,6 +18,7 @@ import javax.swing.event.DocumentListener; import org.apache.log4j.Logger; 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.ImageSummaryRead; import org.openslx.bwlp.thrift.iface.ImageVersionDetails; @@ -76,14 +77,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe @Override public void actionPerformed(ActionEvent e) { LOGGER.debug(("Speichern clicked")); - // TODO do save - } - }); - // Close button closes window - btnClose.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - dispose(); + saveChanges(); } }); @@ -204,6 +198,34 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe }); } + private void saveChanges() { + // first we build an ImageBaseWrite + final ImageBaseWrite ibw = new ImageBaseWrite( + txtTitle.getText(), + txtDescription.getText(), + ((OperatingSystem)cboOperatingSystem.getSelectedItem()).osId, + image.virtId, + chkIsTemplate.isSelected(), + image.defaultPermissions, + image.shareMode); + + QuickTimer.scheduleOnce(new Task() { + @Override + public void fire() { + try { + // push to sat + ThriftManager.getSatClient().updateImageBase(Session.getSatelliteToken(), + image.getImageBaseId(), ibw); + } catch (TException e) { + ThriftError.showMessage(me, LOGGER, e, "Fail to update image details to satellite"); + return; + } + Gui.showMessageBox(me, "Erfolgreich gespeichert.", MessageType.INFO, null, null); + btnSaveChanges.setEnabled(false); + } + }); + } + private void setImageOwner(final UserInfo user) { QuickTimer.scheduleOnce(new Task() { @Override @@ -233,6 +255,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe private void fill() { if (image == null) return; + LOGGER.debug(image); txtTitle.setText(image.getImageName()); txtDescription.setText(image.getDescription()); lblOwner.setUser(UserCache.find(image.getOwnerId())); @@ -358,13 +381,13 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe * enables the save button if so. */ private void reactToChange() { - boolean changed = false; OperatingSystem newOs = cboOperatingSystem.getItemAt(cboOperatingSystem.getSelectedIndex()); ShareMode newShareMode = cboShareMode.getItemAt(cboShareMode.getSelectedIndex()); - if (!txtTitle.getText().equals(image.getImageName())) { + boolean changed = false; + if (!txtTitle.getText().isEmpty() && !txtTitle.getText().equals(image.getImageName())) { changed = true; - } else if (!txtDescription.getText().equals(image.getDescription())) { + } else if (!txtDescription.getText().isEmpty() && !txtDescription.getText().equals(image.getDescription())) { changed = true; } else if (newOs != null && newOs.getOsId() != image.getOsId()) { changed = true; |