package org.nightlabs.jfire.trade.ui.store.search; import org.eclipse.jface.viewers.ColumnWeightData; import org.eclipse.jface.viewers.TableLayout; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.ViewerSorter; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.nightlabs.base.ui.resource.SharedImages; import org.nightlabs.base.ui.table.AbstractTableComposite; import org.nightlabs.base.ui.table.TableContentProvider; import org.nightlabs.base.ui.table.TableLabelProvider; import org.nightlabs.jfire.store.ProductType; import org.nightlabs.jfire.trade.ui.TradePlugin; import org.nightlabs.jfire.trade.ui.resource.Messages; /** * @author Daniel.Mazurek [at] NightLabs [dot] de * */ public class ProductTypeTableComposite extends AbstractTableComposite<ProductType> { /** * @param parent * @param style */ public ProductTypeTableComposite(Composite parent, int style) { super(parent, style); } @Override protected void createTableColumns(TableViewer tableViewer, Table table) { TableLayout layout = new TableLayout(); TableColumn name = new TableColumn(table, SWT.LEFT); name.setText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.nameTableColumn.text")); //$NON-NLS-1$ name.setToolTipText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.nameTableColumn.toolTipText")); //$NON-NLS-1$ layout.addColumnData(new ColumnWeightData(10)); TableColumn published = new TableColumn(table, SWT.LEFT); published.setText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.publishedTableColumn.text")); //$NON-NLS-1$ published.setToolTipText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.publishedTableColumn.toolTipText")); //$NON-NLS-1$ layout.addColumnData(new ColumnWeightData(1)); TableColumn confirmed = new TableColumn(table, SWT.LEFT); confirmed.setText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.confirmedTableColumn.text")); //$NON-NLS-1$ confirmed.setToolTipText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.confirmedTableColumn.toolTipText")); //$NON-NLS-1$ layout.addColumnData(new ColumnWeightData(1)); TableColumn saleable = new TableColumn(table, SWT.LEFT); saleable.setText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.saleableTableColumn.text")); //$NON-NLS-1$ saleable.setToolTipText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.saleableTableColumn.toolTipText")); //$NON-NLS-1$ layout.addColumnData(new ColumnWeightData(1)); TableColumn closed = new TableColumn(table, SWT.LEFT); closed.setText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.closedTableColumn.text")); //$NON-NLS-1$ closed.setToolTipText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.closedTableColumn.toolTipText")); //$NON-NLS-1$ layout.addColumnData(new ColumnWeightData(1)); TableColumn deliveryConf = new TableColumn(table, SWT.LEFT); deliveryConf.setText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.deliveryConfigurationTableColumn.text")); //$NON-NLS-1$ deliveryConf.setToolTipText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.deliveryConfigurationTableColumn.toolTipText")); //$NON-NLS-1$ layout.addColumnData(new ColumnWeightData(10)); TableColumn innerPriceConf = new TableColumn(table, SWT.LEFT); innerPriceConf.setText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.priceConfigTableColumn.text")); //$NON-NLS-1$ innerPriceConf.setToolTipText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.priceConfigTableColumn.toolTipText")); //$NON-NLS-1$ layout.addColumnData(new ColumnWeightData(10)); // TableColumn localAccountantDelegate = new TableColumn(table, SWT.LEFT); // localAccountantDelegate.setText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.localAccountantDelegateTableColumn.text")); //$NON-NLS-1$ // localAccountantDelegate.setToolTipText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.localAccountantDelegateTableColumn.toolTipText")); //$NON-NLS-1$ // layout.addColumnData(new ColumnWeightData(10)); TableColumn owner = new TableColumn(table, SWT.LEFT); owner.setText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.ownerTableColumn.text")); //$NON-NLS-1$ owner.setToolTipText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.ownerTableColumn.toolTipText")); //$NON-NLS-1$ layout.addColumnData(new ColumnWeightData(10)); TableColumn nestedProductTypeCount = new TableColumn(table, SWT.LEFT); nestedProductTypeCount.setText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.nestedProductTypeCountTableColumn.text")); //$NON-NLS-1$ nestedProductTypeCount.setToolTipText(Messages.getString("org.nightlabs.jfire.trade.ui.store.search.ProductTypeTableComposite.nestedProductTypeCountTableColumn.toolTipText")); //$NON-NLS-1$ layout.addColumnData(new ColumnWeightData(10)); table.setLayout(layout); } @Override protected void setTableProvider(TableViewer tableViewer) { tableViewer.setContentProvider(new ProductTypeContentProvider()); tableViewer.setLabelProvider(new ProductTypeLabelProvider()); tableViewer.setSorter(new ViewerSorter()); } class ProductTypeLabelProvider extends TableLabelProvider { public String getColumnText(Object element, int columnIndex) { if (element instanceof String) { if (columnIndex == 0) return (String)element; return ""; //$NON-NLS-1$ } ProductType pt = (ProductType) element; switch (columnIndex) { case(0): if (pt.getName() != null) return pt.getName().getText(); case(1): return ""; //$NON-NLS-1$ case(2): return ""; //$NON-NLS-1$ case(3): return ""; //$NON-NLS-1$ case(4): return ""; //$NON-NLS-1$ case(5): if (pt.getDeliveryConfiguration() != null && pt.getDeliveryConfiguration().getName() != null) return pt.getDeliveryConfiguration().getName().getText(); case(6): if (pt.getInnerPriceConfig() != null && pt.getInnerPriceConfig().getName() != null) return pt.getInnerPriceConfig().getName().getText(); // case(7): // if (pt.getLocalAccountantDelegate() != null && pt.getLocalAccountantDelegate().getName() != null) // return pt.getLocalAccountantDelegate().getName().getText(); case(7): if (pt.getOwner() != null && pt.getOwner().getPerson() != null) return pt.getOwner().getPerson().getDisplayName(); case(8): if (pt.getProductTypeLocal().getNestedProductTypeLocals() != null) return ""+pt.getProductTypeLocal().getNestedProductTypeLocals().size(); //$NON-NLS-1$ } return ""; //$NON-NLS-1$ } @Override public Image getColumnImage(Object element, int columnIndex) { if (element instanceof String) return null; ProductType pt = (ProductType) element; switch (columnIndex) { case(1): if (pt.isPublished()) return SharedImages.getSharedImage(TradePlugin.getDefault(), ProductTypeTableComposite.class, "StatusTrue"); //$NON-NLS-1$ else return SharedImages.getSharedImage(TradePlugin.getDefault(), ProductTypeTableComposite.class, "StatusFalse"); //$NON-NLS-1$ case(2): if (pt.isConfirmed()) return SharedImages.getSharedImage(TradePlugin.getDefault(), ProductTypeTableComposite.class, "StatusTrue"); //$NON-NLS-1$ else return SharedImages.getSharedImage(TradePlugin.getDefault(), ProductTypeTableComposite.class, "StatusFalse"); //$NON-NLS-1$ case(3): if (pt.isPublished()) return SharedImages.getSharedImage(TradePlugin.getDefault(), ProductTypeTableComposite.class, "StatusTrue"); //$NON-NLS-1$ else return SharedImages.getSharedImage(TradePlugin.getDefault(), ProductTypeTableComposite.class, "StatusFalse"); //$NON-NLS-1$ case(4): if (pt.isClosed()) return SharedImages.getSharedImage(TradePlugin.getDefault(), ProductTypeTableComposite.class, "StatusTrue"); //$NON-NLS-1$ else return SharedImages.getSharedImage(TradePlugin.getDefault(), ProductTypeTableComposite.class, "StatusFalse"); //$NON-NLS-1$ } return super.getColumnImage(element, columnIndex); } } class ProductTypeContentProvider extends TableContentProvider { } }