summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
diff options
context:
space:
mode:
authorJonathan Bauer2015-09-10 17:44:24 +0200
committerJonathan Bauer2015-09-10 17:44:24 +0200
commit74615b70074eb245ab9247151e3671928652e4d1 (patch)
tree9b493eca4bcd1a2d99f50facc693658dcd3f8d41 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
parent[client] added user feedback & reworked how we reactToInput() in ImageDetails... (diff)
downloadtutor-module-74615b70074eb245ab9247151e3671928652e4d1.tar.gz
tutor-module-74615b70074eb245ab9247151e3671928652e4d1.tar.xz
tutor-module-74615b70074eb245ab9247151e3671928652e4d1.zip
[client] workaround for wrongly assigned error message when uploading new image versions in ImageDetailsWindow
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.java107
1 files changed, 61 insertions, 46 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 821f13cf..f1ca0c2a 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
@@ -85,10 +85,18 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
private ImageDetailsRead image = null;
/**
- * The custom permissions of the image
+ * The current state of custom permissions of the image
*/
private Map<String, ImagePermissions> customPermissions;
+
+ /**
+ * The original custom permissions as fetched from the server
+ */
private Map<String, ImagePermissions> originalCustomPermissions;
+
+ /**
+ * The original default permissions as fetched from the server
+ */
private ImagePermissions originalDefaultPermissions;
/**
@@ -98,6 +106,37 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
private JMenuItem popupItemDownload = new JMenuItem("Download");
private JMenuItem popupItemDelete = new JMenuItem("Löschen");
+ private final DocumentListener docListener = new DocumentListener() {
+ @Override
+ public void removeUpdate(DocumentEvent e) {
+ changedUpdate(e);
+ }
+
+ @Override
+ public void insertUpdate(DocumentEvent e) {
+ changedUpdate(e);
+ }
+
+ @Override
+ public void changedUpdate(DocumentEvent e) {
+ reactToChange();
+ }
+ };
+ private final ItemListener comboItemListener = new ItemListener() {
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ if (e.getStateChange() == ItemEvent.SELECTED) {
+ reactToChange();
+ }
+ }
+ };
+ // Listener to detect changes in checkboxes
+ private final ActionListener checkBoxListener = new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ reactToChange();
+ }
+ };
/**
* Constructor
*
@@ -383,6 +422,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
private void fill() {
if (image == null)
return;
+ listenToChange(false);
// remember default permissions
if (image.defaultPermissions != null) {
originalDefaultPermissions = new ImagePermissions(image.defaultPermissions);
@@ -446,58 +486,33 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
// set the versions of the image to the table
versionTable.setData(image.getVersions(), true);
// start listening to changes
- listenToChange();
+ listenToChange(true);
// make fields editable is allowed
makeEditable(true);
// finally do show it all
setVisible(true);
}
-
/**
- * Creates listeners to register change in the fields of the details panel
+ * Manages listeners of image details fields. Adds them if enabled is true,
+ * removes them otherwise.
+ * @param enabled whether to enable or disable the listeners.
*/
- private void listenToChange() {
- // final step, add listeners to react to change
- final DocumentListener docListener = new DocumentListener() {
- @Override
- public void removeUpdate(DocumentEvent e) {
- changedUpdate(e);
- }
-
- @Override
- public void insertUpdate(DocumentEvent e) {
- changedUpdate(e);
- }
-
- @Override
- public void changedUpdate(DocumentEvent e) {
- reactToChange();
- }
- };
- txtTitle.getDocument().addDocumentListener(docListener);
- txtDescription.getDocument().addDocumentListener(docListener);
- txtTags.getDocument().addDocumentListener(docListener);
-
- // Comboboxes
- final ItemListener comboItemListener = new ItemListener() {
- @Override
- public void itemStateChanged(ItemEvent e) {
- if (e.getStateChange() == ItemEvent.SELECTED) {
- reactToChange();
- }
- }
- };
- cboOperatingSystem.addItemListener(comboItemListener);
- cboShareMode.addItemListener(comboItemListener);
-
- // Listener to detect changes in checkboxes
- final ActionListener checkBoxListener = new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- reactToChange();
- }
- };
- chkIsTemplate.addActionListener(checkBoxListener);
+ private void listenToChange(boolean enabled) {
+ if (enabled) {
+ txtTitle.getDocument().addDocumentListener(docListener);
+ txtDescription.getDocument().addDocumentListener(docListener);
+ txtTags.getDocument().addDocumentListener(docListener);
+ cboOperatingSystem.addItemListener(comboItemListener);
+ cboShareMode.addItemListener(comboItemListener);
+ chkIsTemplate.addActionListener(checkBoxListener);
+ } else {
+ txtTitle.getDocument().removeDocumentListener(docListener);
+ txtDescription.getDocument().removeDocumentListener(docListener);
+ txtTags.getDocument().removeDocumentListener(docListener);
+ cboOperatingSystem.removeItemListener(comboItemListener);
+ cboShareMode.removeItemListener(comboItemListener);
+ chkIsTemplate.removeActionListener(checkBoxListener);
+ }
}
/**