diff options
author | Jonathan Bauer | 2015-07-31 17:56:10 +0200 |
---|---|---|
committer | Jonathan Bauer | 2015-07-31 17:56:10 +0200 |
commit | 5694ee57c12e93bd7e3a32193fba0a9d3b53657d (patch) | |
tree | a7b9568d5a07a119406d3c97aa8806194be80773 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java | |
parent | [client] PersonLabel now a subclass of JLabel (diff) | |
download | tutor-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.java | 85 |
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); } } |