summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
diff options
context:
space:
mode:
authorStephan Schwaer2015-08-24 16:11:35 +0200
committerStephan Schwaer2015-08-24 16:11:35 +0200
commit835a3167a017e7912fda91b2ba637c76fff30909 (patch)
tree762554cc807a28c8328ff51796a755834e005af4 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
parent[client] Make font scaling and proxy discovery configurable (no GUI yet) (diff)
downloadtutor-module-835a3167a017e7912fda91b2ba637c76fff30909.tar.gz
tutor-module-835a3167a017e7912fda91b2ba637c76fff30909.tar.xz
tutor-module-835a3167a017e7912fda91b2ba637c76fff30909.zip
[client] Moved default permissions from ImageDetails to ImageCustomPermissions and fixed some Layout.
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.java52
1 files changed, 29 insertions, 23 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 d9182b30..22ac4d04 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
@@ -19,6 +19,7 @@ import javax.swing.event.DocumentEvent;
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.ImagePermissions;
@@ -33,6 +34,7 @@ import org.openslx.dozmod.gui.MainWindow;
import org.openslx.dozmod.gui.helper.MessageType;
import org.openslx.dozmod.gui.helper.PopupMenu;
import org.openslx.dozmod.gui.helper.UiFeedback;
+import org.openslx.dozmod.gui.window.ImageCustomPermissionWindow.PermissionLink;
import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback;
import org.openslx.dozmod.gui.window.layout.ImageDetailsWindowLayout;
import org.openslx.dozmod.gui.wizard.LectureWizard;
@@ -45,6 +47,7 @@ import org.openslx.dozmod.thrift.ThriftActions.ImageMetaCallback;
import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.dozmod.thrift.cache.UserCache;
import org.openslx.dozmod.util.FormatHelper;
+import org.openslx.thrifthelper.ThriftManager;
@SuppressWarnings("serial")
public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFeedback {
@@ -76,6 +79,11 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
* The custom permissions of the image
*/
private Map<String, ImagePermissions> permissionMap;
+
+ /**
+ * Whether the custom permission window has been used.
+ */
+ private boolean permissionsChanged = false;
/**
* Popup menu items
@@ -134,7 +142,13 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
@Override
public void actionPerformed(ActionEvent arg0) {
- ImageCustomPermissionWindow.open(JOptionPane.getFrameForComponent(me), permissionMap, image.defaultPermissions, image.imageBaseId);
+ PermissionLink pl = ImageCustomPermissionWindow.open(JOptionPane.getFrameForComponent(me), me.permissionMap, image.defaultPermissions);
+ if (pl != null && pl.defaultPermissions != null && pl.customPermissions != null && pl.okUsed == true){
+ image.defaultPermissions = pl.defaultPermissions;
+ permissionMap = pl.customPermissions;
+ permissionsChanged = true;
+ }
+ reactToChange();
}
});
@@ -239,7 +253,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
fill();
}
};
- ThriftActions.getImageDetails(JOptionPane.getFrameForComponent(me), imageBaseId, callback);
+ ThriftActions.getImageFullDetails(JOptionPane.getFrameForComponent(me), imageBaseId, callback);
}
/**
@@ -268,11 +282,18 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
((OperatingSystem)cboOperatingSystem.getSelectedItem()).osId,
image.virtId,
chkIsTemplate.isSelected(),
- new ImagePermissions(chkCustomPermLink.isSelected(), chkCustomPermDownload.isSelected(), chkCustomPermEdit.isSelected(), chkCustomPermAdmin.isSelected()),
+ new ImagePermissions(image.defaultPermissions.link, image.defaultPermissions.download, image.defaultPermissions.edit, image.defaultPermissions.admin),
image.shareMode);
// now trigger the actual action
if (!ThriftActions.updateImageBase(JOptionPane.getFrameForComponent(me), image.getImageBaseId(), ibw))
return;
+ try {
+ LOGGER.info(permissionMap);
+ ThriftManager.getSatClient().writeImagePermissions(Session.getSatelliteToken(), image.imageBaseId, permissionMap);
+ permissionsChanged = false;
+ } catch (TException e) {
+ LOGGER.error("Fehler beim Übertragen der benutzerdefinierten Berechtigungen: ", e);
+ }
// success
btnSaveChanges.setEnabled(false);
refresh(true);
@@ -299,6 +320,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
* @param version image version to delete
*/
private void deleteVersion(final ImageVersionDetails version) {
+ if(version == null)
+ return;
ThriftActions.deleteImageBaseOrVersion(JOptionPane.getFrameForComponent(this),
image.getImageBaseId(), version.versionId, new DeleteCallback() {
@Override
@@ -406,16 +429,9 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
reactToChange();
}
};
- chkCustomPermAdmin.setSelected(image.defaultPermissions.admin);
- chkCustomPermEdit.setSelected(image.defaultPermissions.edit);
- chkCustomPermDownload.setSelected(image.defaultPermissions.download);
- chkCustomPermLink.setSelected(image.defaultPermissions.link);
+
chkIsTemplate.addActionListener(checkBoxListener);
- chkCustomPermAdmin.addActionListener(checkBoxListener);
- chkCustomPermEdit.addActionListener(checkBoxListener);
- chkCustomPermDownload.addActionListener(checkBoxListener);
- chkCustomPermLink.addActionListener(checkBoxListener);
// make fields editable is allowed
makeEditable(true);
@@ -437,12 +453,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
txtTags.setEditable(editable);
cboOperatingSystem.setEnabled(editable);
cboShareMode.setEnabled(editable);
- btnCustomPermissions.setEnabled(editable);
+ btnCustomPermissions.setEnabled(adminEdit);
btnChangeOwner.setEnabled(adminEdit);
- chkCustomPermAdmin.setEnabled(adminEdit);
- chkCustomPermEdit.setEnabled(adminEdit);
- chkCustomPermDownload.setEnabled(adminEdit);
- chkCustomPermLink.setEnabled(adminEdit);
}
/**
@@ -468,13 +480,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
changed = true;
} else if (chkIsTemplate.isSelected() != image.isTemplate) {
changed = true;
- } else if (chkCustomPermAdmin.isSelected() != image.defaultPermissions.admin) {
- changed = true;
- } else if (chkCustomPermEdit.isSelected() != image.defaultPermissions.edit) {
- changed = true;
- } else if (chkCustomPermDownload.isSelected() != image.defaultPermissions.download) {
- changed = true;
- } else if (chkCustomPermLink.isSelected() != image.defaultPermissions.link) {
+ } else if (permissionsChanged){
changed = true;
}
// TODO TAGS