diff options
author | Jonathan Bauer | 2018-04-18 15:10:41 +0200 |
---|---|---|
committer | Jonathan Bauer | 2018-04-18 15:10:41 +0200 |
commit | e068c28beac19a3aeaedddc46d4da8101bd084f8 (patch) | |
tree | 97daa20007514b9e87dc4f6b030ab4f4b9636515 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/control | |
parent | [client] fix wrong filter selected when creating new vm (diff) | |
download | tutor-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.java | 10 | ||||
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ListTable.java | 18 |
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; |