package org.nightlabs.jfire.trade.editor2d.ui.layout; import java.text.DateFormat; import java.util.Collection; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.nightlabs.base.ui.layout.WeightedTableLayout; import org.nightlabs.base.ui.table.AbstractTableComposite; import org.nightlabs.base.ui.table.TableLabelProvider; import org.nightlabs.jfire.trade.editor2d.ILayout; import org.nightlabs.jfire.trade.editor2d.ui.resource.Messages; public class LayoutTable<L extends ILayout> extends AbstractTableComposite<L> { private static final String LOADING_MESSAGE = Messages.getString("org.nightlabs.jfire.trade.editor2d.ui.layout.LayoutTable.loadingMessage"); //$NON-NLS-1$ public LayoutTable(Composite parent, int style) { super(parent, style, true, AbstractTableComposite.DEFAULT_STYLE_SINGLE_BORDER); } @Override protected void createTableColumns(TableViewer tableViewer, Table table) { new TableColumn(table, SWT.LEFT).setText(Messages.getString("org.nightlabs.jfire.trade.editor2d.ui.layout.LayoutTable.table.column.fileName")); //$NON-NLS-1$ new TableColumn(table, SWT.LEFT).setText(Messages.getString("org.nightlabs.jfire.trade.editor2d.ui.layout.LayoutTable.table.column.timeStamp")); //$NON-NLS-1$ table.setLayout(new WeightedTableLayout(new int[] {1,1})); table.setHeaderVisible(true); } @Override protected void setTableProvider(TableViewer tableViewer) { tableViewer.setContentProvider(new ArrayContentProvider()); tableViewer.setLabelProvider(new TableLabelProvider() { @Override public String getColumnText(Object obj, int col) { if (obj == LOADING_MESSAGE) { if (col == 0) return LOADING_MESSAGE; return ""; //$NON-NLS-1$ } ILayout layout = (ILayout) obj; if (col == 0) return layout.getFileName(); else if (col == 1) return DateFormat.getDateTimeInstance().format(layout.getFileTimestamp()); else return ""; //$NON-NLS-1$ } }); } public void displayLoadingMessage() { setInput(new String[] {LOADING_MESSAGE}); } public void setTicketLayouts(Collection<L> layouts) { setInput(layouts); } }