diff options
author | Stephan Schwaer | 2015-08-24 16:11:35 +0200 |
---|---|---|
committer | Stephan Schwaer | 2015-08-24 16:11:35 +0200 |
commit | 835a3167a017e7912fda91b2ba637c76fff30909 (patch) | |
tree | 762554cc807a28c8328ff51796a755834e005af4 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java | |
parent | [client] Make font scaling and proxy discovery configurable (no GUI yet) (diff) | |
download | tutor-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.java | 52 |
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 |