1 6 package com.nightlabs.ipanema.person.search; 7 8 import java.util.Collection ; 9 import java.util.HashSet ; 10 import java.util.Set ; 11 12 import org.eclipse.jface.viewers.IContentProvider; 13 import org.eclipse.jface.viewers.TableViewer; 14 import org.eclipse.swt.SWT; 15 import org.eclipse.swt.widgets.Composite; 16 import org.eclipse.swt.widgets.Table; 17 import org.eclipse.swt.widgets.TableColumn; 18 import org.eclipse.swt.widgets.TableItem; 19 20 import com.nightlabs.ipanema.base.IpanemaBasePlugin; 21 import com.nightlabs.ipanema.person.Person; 22 import com.nightlabs.rcp.layout.WeightedTableLayout; 23 import com.nightlabs.rcp.table.AbstractTableComposite; 24 25 28 public class PersonSearchResultTable extends AbstractTableComposite { 29 30 public PersonSearchResultTable(Composite parent, int style) { 31 super(parent, style, true); 32 } 33 34 public void setInput(Collection persons) { 35 tableViewer.setInput(persons); 36 } 37 38 public void refresh() { 39 super.refresh(); 40 } 41 42 46 public Person getSelectedPerson() { 47 if (getTable().getSelectionCount() == 1) { 48 return (Person)getTable().getSelection()[0].getData(); 49 } 50 return null; 51 } 52 53 57 public Set getSelectedPersons() { 58 Set result = new HashSet (); 59 TableItem[] items = getTable().getSelection(); 60 for (int i = 0; i < items.length; i++) { 61 result.add(items[i].getData()); 62 } 63 return result; 64 } 65 66 protected void createTableColumns(Table table) { 67 new TableColumn(table, SWT.LEFT, 0).setText(IpanemaBasePlugin.getResourceString("person.search.result.table.col0")); 68 new TableColumn(table, SWT.LEFT, 0).setText(IpanemaBasePlugin.getResourceString("person.search.result.table.col0")); 69 new TableColumn(table, SWT.LEFT, 0).setText(IpanemaBasePlugin.getResourceString("person.search.result.table.col0")); 70 new TableColumn(table, SWT.LEFT, 0).setText(IpanemaBasePlugin.getResourceString("person.search.result.table.col0")); 71 table.setLayout(new WeightedTableLayout(new int[] {1,1,1,1})); 72 } 73 74 protected void setTableProvider(TableViewer tableViewer) { 75 tableViewer.setContentProvider(new PersonSearchResultTableContentProvider()); 76 tableViewer.setLabelProvider(new PersonSearchResultTableLabelProvider()); 77 } 78 79 public PersonSearchResultTableContentProvider getContentProvider() { 80 IContentProvider contentProvider = getTableViewer().getContentProvider(); 81 if (!(contentProvider instanceof PersonSearchResultTableContentProvider)) 82 throw new IllegalStateException ("This PersonSearchTable's contentProvider is an instance of "+contentProvider.getClass().getName()+" instead of PersonSearchResultTableContentProvider."); 83 return (PersonSearchResultTableContentProvider)contentProvider; 84 } 85 86 } 87 | Popular Tags |