summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-07-17 17:20:38 +0200
committerSimon Rettberg2015-07-17 17:20:38 +0200
commit7844be5e4d74612e9aff44c5aab09d4f6e5d2631 (patch)
tree2605abdf19b146b22feda18a3256e3e031c677eb /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
parent[client] first steps in ImagePermissions page (diff)
downloadtutor-module-7844be5e4d74612e9aff44c5aab09d4f6e5d2631.tar.gz
tutor-module-7844be5e4d74612e9aff44c5aab09d4f6e5d2631.tar.xz
tutor-module-7844be5e4d74612e9aff44c5aab09d4f6e5d2631.zip
[client] Add image details window
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, 107 insertions, 0 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
new file mode 100644
index 00000000..22f3297c
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
@@ -0,0 +1,107 @@
+package org.openslx.dozmod.gui.window;
+
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Shell;
+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;
+import org.openslx.dozmod.thrift.MetaDataCache;
+import org.openslx.dozmod.thrift.Session;
+import org.openslx.dozmod.thrift.UserCache;
+import org.openslx.dozmod.util.FormatHelper;
+import org.openslx.thrifthelper.ThriftManager;
+import org.openslx.util.QuickTimer;
+import org.openslx.util.QuickTimer.Task;
+
+public class ImageDetailsWindow extends ImageDetailsWindowLayout {
+
+ private static final Logger LOGGER = Logger.getLogger(ImageDetailsWindow.class);
+
+ private final ImageDetailsWindow me = this;
+
+ private ImageDetailsRead image = null;
+
+ public ImageDetailsWindow(Shell parent) {
+ super(parent);
+
+ // Close button closes window
+ btnClose.addSelectionListener(new SelectionListener() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ getShell().dispose();
+ }
+
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ }
+
+ public void setImage(final String imageBaseId) {
+ QuickTimer.scheduleOnce(new Task() {
+ @Override
+ public void fire() {
+ Exception error = null;
+ try {
+ synchronized (me) {
+ if (image != null)
+ return;
+ image = ThriftManager.getSatClient().getImageDetails(Session.getSatelliteToken(),
+ imageBaseId);
+ }
+ } catch (Exception e) {
+ error = e;
+ }
+ // Just prime the cache...
+ MetaDataCache.getOperatingSystems();
+ MetaDataCache.getVirtualizers();
+ final Exception e = error;
+ Gui.asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ if (e != null || image == null) {
+ MainWindow.showMessageBox("Konnte Daten des Images nicht abrufen",
+ MessageType.ERROR, LOGGER, e);
+ getShell().dispose();
+ } else {
+ fill();
+ }
+ }
+ });
+ }
+ });
+ }
+
+ private void fill() {
+ if (isDisposed() || image == null)
+ return;
+ lblTitle.setText(SwtUtil.replaceMnemonics(image.getImageName()));
+ lblDescription.setText(SwtUtil.replaceMnemonics(image.getDescription()));
+ 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);
+ OperatingSystem os = MetaDataCache.getOsById(image.getOsId());
+ if (os != null) {
+ cboOperatingSystem.setSelection(new StructuredSelection(os), true);
+ }
+ Virtualizer virt = MetaDataCache.getVirtualizerById(image.getVirtId());
+ if (virt != null)
+ lblVirtualizer.setText(virt.getVirtName());
+ getShell().pack();
+ MainWindow.centerShell(getShell());
+ }
+
+}