package org.nightlabs.jfire.trade.dashboard.ui.internal.invoice;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.TableLayout;
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.table.AbstractTableComposite;
import org.nightlabs.base.ui.table.TableLabelProvider;
import org.nightlabs.jfire.trade.dashboard.ui.resource.Messages;
import org.nightlabs.l10n.GlobalDateFormatter;
import org.nightlabs.l10n.IDateFormatter;
public class InvoiceTable extends AbstractTableComposite<InvoiceTableItem> {
public InvoiceTable(Composite parent, int style) {
super(parent, style);
}
@Override
protected void createTableColumns(TableViewer tableViewer, final Table table)
{
TableColumn col0 = new TableColumn(tableViewer.getTable(), SWT.LEFT);
col0.setText(Messages.getString("org.nightlabs.jfire.trade.dashboard.ui.internal.invoice.InvoiceTable.0")); //$NON-NLS-1$
TableColumn col1 = new TableColumn(tableViewer.getTable(), SWT.LEFT);
col1.setText(Messages.getString("org.nightlabs.jfire.trade.dashboard.ui.internal.invoice.InvoiceTable.1")); //$NON-NLS-1$
TableColumn col2 = new TableColumn(tableViewer.getTable(), SWT.LEFT);
col2.setText(Messages.getString("org.nightlabs.jfire.trade.dashboard.ui.internal.invoice.InvoiceTable.2")); //$NON-NLS-1$
TableColumn col3 = new TableColumn(tableViewer.getTable(), SWT.RIGHT);
col3.setText(Messages.getString("org.nightlabs.jfire.trade.dashboard.ui.internal.invoice.InvoiceTable.3")); //$NON-NLS-1$
final TableLayout tableLayout = new TableLayout();
tableLayout.addColumnData(new ColumnWeightData(20));
tableLayout.addColumnData(new ColumnWeightData(25));
tableLayout.addColumnData(new ColumnWeightData(50));
tableLayout.addColumnData(new ColumnWeightData(25));
table.getDisplay().asyncExec(new Runnable() {
@Override
public void run() {
if (!table.isDisposed()) {
table.setLayout(tableLayout);
table.layout(true, true);
}
}
});
}
@Override
protected void setTableProvider(TableViewer tableViewer) {
tableViewer.setContentProvider(new ArrayContentProvider());
tableViewer.setLabelProvider(new TableLabelProvider() {
@Override
public String getColumnText(Object element, int columnIndex) {
if (columnIndex == 0)
return ((InvoiceTableItem) element).getInvoiceId();
if (columnIndex == 1) {
String date = GlobalDateFormatter.sharedInstance().formatDate(
((InvoiceTableItem) element).getInvoiceCreationDate(), IDateFormatter.FLAGS_DATE_SHORT_TIME_HM);
return date;
}
if (columnIndex == 2)
return ((InvoiceTableItem) element).getBusinessPartnerName();
if (columnIndex == 3)
return ((InvoiceTableItem) element).getInvoiceAmount();
return Messages.getString("org.nightlabs.jfire.trade.dashboard.ui.internal.invoice.InvoiceTable.4"); //$NON-NLS-1$
}
});
}
}