From 07eeb6be03d6083ef513de58fb4216ea911dfe0c Mon Sep 17 00:00:00 2001 From: Stephan Schwaer Date: Wed, 19 Aug 2015 18:29:32 +0200 Subject: [client] Added default permission options to imageDetailsWindow. --- .../dozmod/gui/window/ImageDetailsWindow.java | 38 ++++++++++++++++++---- .../window/layout/ImageDetailsWindowLayout.java | 23 ++++++++++++- 2 files changed, 53 insertions(+), 8 deletions(-) (limited to 'dozentenmodul/src/main/java') 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 a870e300..8a765daf 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 @@ -289,7 +289,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe ((OperatingSystem)cboOperatingSystem.getSelectedItem()).osId, image.virtId, chkIsTemplate.isSelected(), - image.defaultPermissions, + new ImagePermissions(chkCustomPermLink.isSelected(), chkCustomPermDownload.isSelected(), chkCustomPermEdit.isSelected(), chkCustomPermAdmin.isSelected()), image.shareMode); QuickTimer.scheduleOnce(new Task() { @@ -445,14 +445,25 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe }; cboOperatingSystem.addItemListener(comboItemListener); cboShareMode.addItemListener(comboItemListener); - chkIsTemplate.addActionListener(new ActionListener() { - + + // Listener to detect changes in checkboxes + final ActionListener checkBoxListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - reactToChange(); - + 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); // finally do show it all @@ -467,13 +478,18 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe */ private void makeEditable(boolean editable) { editable = editable && ImagePerms.canEdit(image); + boolean adminEdit = editable && ImagePerms.canAdmin(image); txtTitle.setEditable(editable); txtDescription.setEditable(editable); txtTags.setEditable(editable); cboOperatingSystem.setEnabled(editable); cboShareMode.setEnabled(editable); btnCustomPermissions.setEnabled(editable); - btnChangeOwner.setEnabled(editable && ImagePerms.canAdmin(image)); + btnChangeOwner.setEnabled(adminEdit); + chkCustomPermAdmin.setEnabled(adminEdit); + chkCustomPermEdit.setEnabled(adminEdit); + chkCustomPermDownload.setEnabled(adminEdit); + chkCustomPermLink.setEnabled(adminEdit); } /** @@ -495,6 +511,14 @@ 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) { + changed = true; } // TODO TAGS btnSaveChanges.setEnabled(changed); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java index 54c478e3..19df002e 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java @@ -50,6 +50,11 @@ public abstract class ImageDetailsWindowLayout extends JDialog { protected final JTextField txtId; protected final JTextField txtVersion; + protected final JCheckBox chkCustomPermAdmin; + protected final JCheckBox chkCustomPermEdit; + protected final JCheckBox chkCustomPermDownload; + protected final JCheckBox chkCustomPermLink; + protected final JButton btnCustomPermissions; protected final JButton btnSaveChanges; protected final JButton btnUpdateImage; @@ -172,7 +177,23 @@ public abstract class ImageDetailsWindowLayout extends JDialog { grid.add(new JLabel("Image-UUID")); grid.add(txtId, 2).expand(true, false).fill(true, false); grid.nextRow(); - btnCustomPermissions = new JButton("Benutzerdefinierte Berechtigungen"); + + JPanel defaultPermissionPane = new JPanel(); + defaultPermissionPane.setBorder(BorderFactory.createTitledBorder( "Default Berechtigungen")); + chkCustomPermAdmin = new JCheckBox("Admin"); + chkCustomPermDownload = new JCheckBox("Download"); + chkCustomPermEdit = new JCheckBox("Bearbeiten"); + chkCustomPermLink = new JCheckBox("Link"); + defaultPermissionPane.add(chkCustomPermLink); + defaultPermissionPane.add(chkCustomPermDownload); + defaultPermissionPane.add(chkCustomPermEdit); + defaultPermissionPane.add(chkCustomPermAdmin); + + grid.add(defaultPermissionPane, 3); + grid.nextRow(); + + + btnCustomPermissions = new JButton("Standart Berechtigungen"); grid.add(btnCustomPermissions); grid.skip(2); grid.nextRow(); -- cgit v1.2.3-55-g7522