import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.ListViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
public class Ch8ListComposite extends Composite {
public Ch8ListComposite(Composite parent) {
super(parent, SWT.NULL);
populateControl();
}
protected void populateControl() {
FillLayout compositeLayout = new FillLayout();
setLayout(compositeLayout);
int[] styles = { SWT.SINGLE, SWT.MULTI };
for (int style = 0; style < styles.length; style++) {
createListViewer(styles[style]);
}
}
private void createListViewer(int style) {
ListViewer viewer = new ListViewer(this, style);
viewer.setLabelProvider(new LabelProvider() {
public String getText(Object element) {
return ((ListItem) element).name;
}
});
viewer.addFilter(new ViewerFilter() {
public boolean select(Viewer viewer, Object parent, Object element) {
return ((ListItem) element).value % 2 == 0;
}
});
viewer.setSorter(new ViewerSorter() {
public int compare(Viewer viewer, Object obj1, Object obj2) {
return ((ListItem) obj2).value - ((ListItem) obj1).value;
}
});
viewer.setContentProvider(new IStructuredContentProvider() {
public Object[] getElements(Object inputElement) {
return ((List) inputElement).toArray();
}
public void dispose() {
}
public void inputChanged(Viewer viewer, Object oldInput,
Object newInput) {
}
});
List input = new ArrayList();
for (int i = 0; i < 20; i++) {
input.add(new ListItem("item " + i, i));
}
viewer.setInput(input);
}
}
class ListItem {
public String name;
public int value;
public ListItem(String n, int v) {
name = n;
value = v;
}
}
|