summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
diff options
context:
space:
mode:
authorJonathan Bauer2015-09-10 18:07:04 +0200
committerJonathan Bauer2015-09-10 18:07:04 +0200
commit664b4c7c62c5b47838859b426f5a2fb4fc256b51 (patch)
tree8ddc9ef5ccd4363e4e9daf0e6ea7ca686360f4c3 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
parent[client] added "Expiring" column to versionTable and introduced FormatHelper.... (diff)
downloadtutor-module-664b4c7c62c5b47838859b426f5a2fb4fc256b51.tar.gz
tutor-module-664b4c7c62c5b47838859b426f5a2fb4fc256b51.tar.xz
tutor-module-664b4c7c62c5b47838859b426f5a2fb4fc256b51.zip
[client] ImageDetails: add listeners right from the start and fix removing the error message when all fields are valid and have NOT changed
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.java104
1 files changed, 43 insertions, 61 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 f1ca0c2a..254b8767 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
@@ -88,12 +88,12 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
* 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
*/
@@ -106,37 +106,6 @@ 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
*
@@ -283,6 +252,44 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
makeEditable(false);
// TODO finish ShareMode in server
cboShareMode.setEnabled(false);
+
+ // listen to changes
+ 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();
+ }
+ };
+ final ItemListener comboItemListener = new ItemListener() {
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+ if (e.getStateChange() == ItemEvent.SELECTED) {
+ reactToChange();
+ }
+ }
+ };
+ final ActionListener checkBoxListener = new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ reactToChange();
+ }
+ };
+ txtTitle.getDocument().addDocumentListener(docListener);
+ txtDescription.getDocument().addDocumentListener(docListener);
+ txtTags.getDocument().addDocumentListener(docListener);
+ cboOperatingSystem.addItemListener(comboItemListener);
+ cboShareMode.addItemListener(comboItemListener);
+ chkIsTemplate.addActionListener(checkBoxListener);
}
/********************************************************************************
@@ -422,7 +429,6 @@ 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);
@@ -485,40 +491,16 @@ 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(true);
// make fields editable is allowed
makeEditable(true);
// finally do show it all
setVisible(true);
}
- /**
- * 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(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);
- }
- }
/**
* Checks whether the user changed any fields of the image details and
* enables the save button if so
- * TODO TAGS!
+ * TODO TAGS
*/
private boolean reactToChange() {
// disable save by default here, we will enable it at the end if all checks passed
@@ -556,8 +538,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
|| chkIsTemplate.isSelected() != image.isTemplate
|| !image.defaultPermissions.equals(originalDefaultPermissions)
|| PermsHelper.hasChanged(originalCustomPermissions, customPermissions);
- if (changed)
- lblError.setText(null);
+
+ lblError.setText(null);
btnSaveChanges.setEnabled(changed);
return changed;
}