diff options
author | Jonathan Bauer | 2015-08-08 11:55:21 +0200 |
---|---|---|
committer | Jonathan Bauer | 2015-08-08 11:55:21 +0200 |
commit | 11242c9559db7778b6ba66905b01227ad096162d (patch) | |
tree | cbe2852891baa4e504d0dfff53592d673eb2eb27 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java | |
parent | [client] Implement progress bar for uploads in main window (diff) | |
download | tutor-module-11242c9559db7778b6ba66905b01227ad096162d.tar.gz tutor-module-11242c9559db7778b6ba66905b01227ad096162d.tar.xz tutor-module-11242c9559db7778b6ba66905b01227ad096162d.zip |
[client] imagedetails stuff
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 | 73 |
1 files changed, 64 insertions, 9 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 be2ff02c..f8baddb7 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 @@ -1,8 +1,11 @@ package org.openslx.dozmod.gui.window; +import java.awt.Color; import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; @@ -11,13 +14,26 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JLabel; import javax.swing.JMenuItem; +import javax.swing.JTextField; +import javax.swing.RowFilter; +import javax.swing.UIManager; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.event.ListDataEvent; +import javax.swing.event.ListDataListener; import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.ImageDetailsRead; import org.openslx.bwlp.thrift.iface.ImagePermissions; import org.openslx.bwlp.thrift.iface.ImageVersionDetails; import org.openslx.bwlp.thrift.iface.OperatingSystem; +import org.openslx.bwlp.thrift.iface.ShareMode; import org.openslx.bwlp.thrift.iface.Virtualizer; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.MainWindow; @@ -47,6 +63,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout { public ImageDetailsWindow(Frame modalParent) { super(modalParent); setFocusable(true); + btnSaveChanges.setEnabled(false); // ESC closes this window addKeyListener(new KeyAdapter() { @@ -57,16 +74,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout { } } }); - // Close button closes window - btnClose.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - dispose(); - } - }); // nothing to save at first since nothing changed - btnSaveChanges.setEnabled(false); btnSaveChanges.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -74,6 +83,14 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout { // TODO do save } }); + // Close button closes window + btnClose.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + dispose(); + } + }); + // Setup popup menu for the right panel final PopupMenu pop = new PopupMenu(new ActionListener() { public void actionPerformed(ActionEvent e) { @@ -211,8 +228,46 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout { makeEditable(ImagePerms.canEdit(image)); pack(); MainWindow.centerShell(this); + + // final step, add listen + // the document stuff + 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) { + + btnSaveChanges.setEnabled( + txtDescription.getText() != image.getDescription() + // TODO TAGS + ); + } + }; + 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) { + // get new selected object + // the ugly: + OperatingSystem newOs = cboOperatingSystem.getItemAt(cboOperatingSystem.getSelectedIndex()); + ShareMode newShareMode = cboShareMode.getItemAt(cboShareMode.getSelectedIndex()); + // change occured, make the save button active + btnSaveChanges.setEnabled( + newOs != null && newOs.getOsId() != image.getOsId() + || newShareMode != null && newShareMode.equals(image.shareMode)); + } + } + }; + cboOperatingSystem.addItemListener(comboItemListener); + cboShareMode.addItemListener(comboItemListener); + // finally do show it setVisible(true); - // refreshList(); } /** |