summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control
diff options
context:
space:
mode:
authorJonathan Bauer2018-04-18 15:10:41 +0200
committerJonathan Bauer2018-04-18 15:10:41 +0200
commite068c28beac19a3aeaedddc46d4da8101bd084f8 (patch)
tree97daa20007514b9e87dc4f6b030ab4f4b9636515 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/control
parent[client] fix wrong filter selected when creating new vm (diff)
downloadtutor-module-e068c28beac19a3aeaedddc46d4da8101bd084f8.tar.gz
tutor-module-e068c28beac19a3aeaedddc46d4da8101bd084f8.tar.xz
tutor-module-e068c28beac19a3aeaedddc46d4da8101bd084f8.zip
[client] add hypervisor icons to image table
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/control')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageTable.java10
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ListTable.java18
2 files changed, 25 insertions, 3 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageTable.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageTable.java
index 92f27a55..9bb2f677 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageTable.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageTable.java
@@ -2,7 +2,10 @@ package org.openslx.dozmod.gui.control.table;
import java.util.Comparator;
+import javax.swing.Icon;
+
import org.openslx.bwlp.thrift.iface.ImageSummaryRead;
+import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.thrift.Sorters;
import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.dozmod.thrift.cache.UserCache;
@@ -19,6 +22,7 @@ public class ImageTable extends ListTable<ImageSummaryRead> {
public static final ListTableColumn COL_OWNER = new ListTableColumn("Besitzer", Sorters.userNameById);
public static final ListTableColumn COL_OS = new ListTableColumn("OS", Integer.class, Sorters.osNameById);
public static final ListTableColumn COL_NAME = new ListTableColumn("Name");
+ public static final ListTableColumn COL_HYPERVISOR = new ListTableColumn("", Icon.class);
public ImageTable() {
super(new Comparator<ImageSummaryRead>() {
@@ -32,7 +36,7 @@ public class ImageTable extends ListTable<ImageSummaryRead> {
return -1;
return o1.imageBaseId.compareTo(o2.imageBaseId);
}
- }, COL_NAME, COL_OS, COL_OWNER, COL_LASTCHANGE, COL_EXPIRING, COL_SIZE, COL_USABLE, COL_TEMPLATE);
+ }, COL_NAME, COL_OS, COL_OWNER, COL_LASTCHANGE, COL_EXPIRING, COL_SIZE, COL_USABLE, COL_TEMPLATE, COL_HYPERVISOR);
}
// return the right value of our image (row) depending on given column
@@ -54,6 +58,8 @@ public class ImageTable extends ListTable<ImageSummaryRead> {
return row.isValid;
if (column == COL_TEMPLATE)
return row.isTemplate;
+ if (column == COL_HYPERVISOR)
+ return row.virtId;
throw new IndexOutOfBoundsException();
}
@@ -69,6 +75,8 @@ public class ImageTable extends ListTable<ImageSummaryRead> {
return FormatHelper.shortDate((long) value);
if (column == COL_SIZE)
return FormatHelper.bytes((long) value, false);
+ if (column == COL_HYPERVISOR)
+ return Gui.getScaledIconResource("/img/" + value + "-icon.png", "Virtualizer Icon", getRowHeight(), this);
throw new IndexOutOfBoundsException();
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ListTable.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ListTable.java
index c7bac6bf..89dde8b4 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ListTable.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ListTable.java
@@ -5,6 +5,7 @@ import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
+import javax.swing.Icon;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.RowSorter;
@@ -52,7 +53,7 @@ public abstract class ListTable<T> extends JTable {
}
}
this.adjuster = new TableColumnAdjuster(this, 5);
- this.adjuster.setOnlyAdjustLarger(true);
+ this.adjuster.setOnlyAdjustLarger(false);
this.itemComparator = itemComparator;
this.setModel(model);
this.setRowSorter(sorter);
@@ -65,6 +66,7 @@ public abstract class ListTable<T> extends JTable {
this.setDefaultRenderer(Integer.class, listTableRenderer);
this.setDefaultRenderer(Long.class, listTableRenderer);
this.setDefaultRenderer(Boolean.class, getDefaultRenderer(Boolean.class));
+ this.setDefaultRenderer(Icon.class, new IconRenderer());
this.setDefaultEditor(Boolean.class, getDefaultEditor(Boolean.class));
this.setRowSelectionAllowed(true);
this.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
@@ -302,7 +304,6 @@ public abstract class ListTable<T> extends JTable {
/**
* This renderer simply removes the default dotted border when
* a cell is selected
- *
*/
private class ListTableRenderer extends DefaultTableCellRenderer {
public ListTableRenderer() {
@@ -322,6 +323,19 @@ public abstract class ListTable<T> extends JTable {
}
}
+ private class IconRenderer extends DefaultTableCellRenderer {
+
+ @Override
+ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
+ boolean hasFocus, int row, int column) {
+ if (value != null) {
+ value = modelValueToDisplayFormat(value, model.getColumn(convertColumnIndexToModel(column)));
+ }
+ setIcon((Icon)value);
+ return this;
+ }
+ }
+
public static class ListTableColumn {
public final Class<?> colClass;
public final String colName;