summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
diff options
context:
space:
mode:
authorJonathan Bauer2015-07-31 17:56:10 +0200
committerJonathan Bauer2015-07-31 17:56:10 +0200
commit5694ee57c12e93bd7e3a32193fba0a9d3b53657d (patch)
treea7b9568d5a07a119406d3c97aa8806194be80773 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
parent[client] PersonLabel now a subclass of JLabel (diff)
downloadtutor-module-5694ee57c12e93bd7e3a32193fba0a9d3b53657d.tar.gz
tutor-module-5694ee57c12e93bd7e3a32193fba0a9d3b53657d.tar.xz
tutor-module-5694ee57c12e93bd7e3a32193fba0a9d3b53657d.zip
[client] ImageDetailsWindow pretty much done
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.java85
1 files changed, 61 insertions, 24 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 8238f2a0..22d5f402 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,14 +1,16 @@
package org.openslx.dozmod.gui.window;
import java.awt.Frame;
-import java.util.List;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
import org.apache.log4j.Logger;
import org.openslx.bwlp.thrift.iface.ImageDetailsRead;
import org.openslx.bwlp.thrift.iface.OperatingSystem;
import org.openslx.bwlp.thrift.iface.Virtualizer;
import org.openslx.dozmod.gui.Gui;
-import org.openslx.dozmod.gui.MainWindow;
import org.openslx.dozmod.gui.helper.MessageType;
import org.openslx.dozmod.gui.helper.SwtUtil;
import org.openslx.dozmod.gui.window.layout.ImageDetailsWindowLayout;
@@ -21,6 +23,7 @@ import org.openslx.thrifthelper.ThriftManager;
import org.openslx.util.QuickTimer;
import org.openslx.util.QuickTimer.Task;
+@SuppressWarnings("serial")
public class ImageDetailsWindow extends ImageDetailsWindowLayout {
private static final Logger LOGGER = Logger.getLogger(ImageDetailsWindow.class);
@@ -31,17 +34,32 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout {
public ImageDetailsWindow(Frame modalParent) {
super(modalParent);
+ setVisible(false);
+ setFocusable(true);
+ // Close button closes window
+ btnClose.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ dispose();
+ }
+ });
+ // ESC closes this window
+ addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyPressed(KeyEvent e) {
+ LOGGER.debug("he");
+ if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
+ dispose();
+ }
+ }
+ });
-// // Close button closes window
-// btnClose.addSelectionListener(new SelectionAdapter() {
-// @Override
-// public void widgetSelected(SelectionEvent e) {
-// getShell().dispose();
-// }
-// });
}
-
+ /**
+ * @param imageBaseId the id of the image to be displayed
+ */
public void setImage(final String imageBaseId) {
+
QuickTimer.scheduleOnce(new Task() {
@Override
public void fire() {
@@ -76,47 +94,66 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout {
});
}
+ /**
+ * callback function when we received the image's details from the server
+ */
private void fill() {
if (image == null)
return;
txtTitle.setText(SwtUtil.replaceMnemonics(image.getImageName()));
txtDescription.setText(SwtUtil.replaceMnemonics(image.getDescription()));
- lblOwner.setText(FormatHelper.userName(UserCache.find(image.getOwnerId())));
- lblUpdater.setText(FormatHelper.userName(UserCache.find(image.getUpdaterId())));
+ lblOwner.setUser(UserCache.find(image.getOwnerId()));
+ lblUpdater.setUser(UserCache.find(image.getUpdaterId()));
lblCreateTime.setText(FormatHelper.longDate(image.getCreateTime()));
lblUpdateTime.setText(FormatHelper.longDate(image.getUpdateTime()));
- List<OperatingSystem> osList = MetaDataCache.getOperatingSystems();
-// cboOperatingSystem.setInput(osList);
+
+ for (OperatingSystem os : MetaDataCache.getOperatingSystems()) {
+ cboOperatingSystem.addItem(os);
+ }
OperatingSystem os = MetaDataCache.getOsById(image.getOsId());
if (os != null) {
-// cboOperatingSystem.setSelection(new StructuredSelection(os), true);
+ cboOperatingSystem.setSelectedItem(os);
}
+
Virtualizer virt = MetaDataCache.getVirtualizerById(image.getVirtId());
if (virt != null)
lblVirtualizer.setText(virt.getVirtName());
+
String tagsString = "";
for (String tag : image.getTags()) {
tagsString = tagsString + ", " + tag;
}
txtTags.setText(tagsString);
-// btnIsTemplate.setSelection(image.isTemplate);
+ btnIsTemplate.setSelected(image.isTemplate);
makeEditable(ImagePerms.canEdit(image));
-// getShell().layout(true, true);
-// MainWindow.centerShell(getShell());
+ pack();
+ Gui.centerShell(this);
+ setVisible(true);
}
-
- // make text fields editable if allowed
+ /**
+ * Enables/disables the editable fields based on 'editable'
+ *
+ * @param editable true to make fields editable, false otherwise.
+ */
private void makeEditable(boolean editable){
txtTitle.setEnabled(editable);
txtDescription.setEnabled(editable);
-// cboOperatingSystem.getCombo().setEnabled(editable);
txtTags.setEnabled(editable);
btnIsTemplate.setEnabled(editable);
+ // TODO fix combobox enabling stuff
}
- public static void open(Frame modalParent) {
+
+ /**
+ * Opens a new ImageDetailsWindow showing the details of the
+ * image with ID = imageBaseId
+ *
+ * @param modalParent parent of this window
+ * @param imageBaseId id of the image to set the details of
+ */
+ public static void open(Frame modalParent, String imageBaseId) {
ImageDetailsWindow win = new ImageDetailsWindow(modalParent);
- MainWindow.centerShell(win);
- win.setVisible(true);
+ Gui.centerShell(win);
+ win.setImage(imageBaseId);
}
}