summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java
diff options
context:
space:
mode:
authorJonathan Bauer2015-07-24 18:32:28 +0200
committerJonathan Bauer2015-07-24 18:32:28 +0200
commit4cfde69c476e2a0c13606dcd251dc07a5149b695 (patch)
tree0b9bcc06b36c9f49fb4935970529ddcb69b8d56a /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java
parent[client] getTable for ImageCustomPermissionPage (soon not needed anymore!!!!!... (diff)
downloadtutor-module-4cfde69c476e2a0c13606dcd251dc07a5149b695.tar.gz
tutor-module-4cfde69c476e2a0c13606dcd251dc07a5149b695.tar.xz
tutor-module-4cfde69c476e2a0c13606dcd251dc07a5149b695.zip
[client] rework tables to jtables for ImageListWindow
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java74
1 files changed, 54 insertions, 20 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java
index 6397c820..4133c835 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java
@@ -1,8 +1,18 @@
package org.openslx.dozmod.gui.window.layout;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
+import java.awt.BorderLayout;
+import java.awt.Frame;
+
+import javax.swing.JPanel;
+import javax.swing.JRootPane;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.ListSelectionModel;
+import javax.swing.SwingUtilities;
+
+import org.apache.log4j.Logger;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.layout.GridData;
@@ -12,14 +22,16 @@ import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Text;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.helper.CompositePage;
-import org.openslx.dozmod.gui.helper.ImageListFilter;
+import org.openslx.dozmod.gui.helper.ResizeColumnListener;
+import org.openslx.dozmod.gui.helper.TableRenderer;
public abstract class ImageListWindowLayout extends CompositePage {
+ private final static Logger LOGGER = Logger.getLogger(ImageListWindowLayout.class);
+
protected String infoTitleString = "Übersicht Virtuelle Maschinen";
protected String newButtonLabel = "Neu";
protected String editButtonLabel = "Bearbeiten";
@@ -48,9 +60,8 @@ public abstract class ImageListWindowLayout extends CompositePage {
protected Text templateInfo;
protected final Text searchTextField;
-
- protected final TableViewer tableViewer;
- protected ImageListFilter filter;
+
+ protected JTable jtable;
protected String infoTextString = "Hier können Sie Virtuelle Maschinen hochladen, herunterladen, bearbeiten und löschen.";
@@ -81,7 +92,7 @@ public abstract class ImageListWindowLayout extends CompositePage {
// -- group for the table --
- Group tableGroup = new Group(this, SWT.BORDER);
+ final Group tableGroup = new Group(this, SWT.BORDER);
tableGroup.setText(tableGroupLabel);
GridData tgLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
tgLayoutData.minimumWidth = 400;
@@ -103,18 +114,41 @@ public abstract class ImageListWindowLayout extends CompositePage {
searchTextField.setMessage("Name, Verantwortlicher, OS");
// -- end group of filter --
- // table
- Table vmTable = new Table(tableGroup, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
- GridData tableGridData = new GridData(SWT.FILL, SWT.FILL, true, true);
- vmTable.setLayoutData(tableGridData);
- vmTable.setHeaderVisible(true);
- vmTable.setLinesVisible(true);
-
- // TableViewer on the table
- tableViewer = new TableViewer(vmTable);
- tableViewer.setContentProvider(ArrayContentProvider.getInstance());
-
-
+ // table composite to embed the swing table
+ final Composite comp = new Composite(tableGroup, SWT.NO_BACKGROUND | SWT.EMBEDDED);
+ comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+ final Frame frame = SWT_AWT.new_Frame(comp);
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run() {
+ try {
+ System.setProperty("sun.awt.noerasebackground", "true");
+ } catch (NoSuchMethodError error) {
+ LOGGER.error("BAD");
+ }
+ // auto-resize-on-scroll http://stackoverflow.com/questions/17858132/automatically-adjust-jtable-column-to-fit-content
+ JPanel panel = new JPanel(new BorderLayout());
+ frame.add(panel);
+ JRootPane root = new JRootPane();
+ panel.add(root);
+ java.awt.Container contentPane = root.getContentPane();
+ // init table
+ jtable = new JTable();
+ jtable.setShowGrid(false);
+ jtable.setCellSelectionEnabled(false);
+ jtable.createDefaultColumnsFromModel();
+ jtable.setAutoCreateRowSorter(true);
+ jtable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
+ jtable.getTableHeader().setReorderingAllowed(false);
+ jtable.setDefaultRenderer(Object.class, new TableRenderer());
+ jtable.setRowSelectionAllowed(true);
+ jtable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+// jtable.setFont(new java.awt.Font("URW Gothic", java.awt.Font.PLAIN, 12));
+ new ResizeColumnListener(jtable);
+ JScrollPane scrollPane = new JScrollPane(jtable);
+ contentPane.setLayout(new BorderLayout());
+ contentPane.add(scrollPane);
+ }
+ });
// create, modify, download and delete buttons
Composite buttonComposite = new Composite(tableGroup, SWT.NONE);