diff options
author | Jonathan Bauer | 2015-07-24 18:32:28 +0200 |
---|---|---|
committer | Jonathan Bauer | 2015-07-24 18:32:28 +0200 |
commit | 4cfde69c476e2a0c13606dcd251dc07a5149b695 (patch) | |
tree | 0b9bcc06b36c9f49fb4935970529ddcb69b8d56a /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageListWindowLayout.java | |
parent | [client] getTable for ImageCustomPermissionPage (soon not needed anymore!!!!!... (diff) | |
download | tutor-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.java | 74 |
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); |