summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
diff options
context:
space:
mode:
authorJonathan Bauer2015-08-17 16:10:18 +0200
committerJonathan Bauer2015-08-17 16:10:18 +0200
commit1de5502de57fdb0ef9a335c4361cd99f651ddccb (patch)
tree2be111dfb198df100a543db604fa6ed519a0f075 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
parent[client] do save checkboxes in upload wizard (diff)
downloadtutor-module-1de5502de57fdb0ef9a335c4361cd99f651ddccb.tar.gz
tutor-module-1de5502de57fdb0ef9a335c4361cd99f651ddccb.tar.xz
tutor-module-1de5502de57fdb0ef9a335c4361cd99f651ddccb.zip
[client] save changes in image details window
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.java45
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;