Mega Code Archive

 
Categories / Java by API / Org Eclipse Jface Viewers
 

Extends ViewerFilter

import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.ListViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class MainClass extends ApplicationWindow {   private ItemFilter filter = new ItemFilter();   public MainClass() {     super(null);     setBlockOnOpen(true);     open();     Display.getCurrent().dispose();   }   protected void configureShell(Shell shell) {     super.configureShell(shell);     shell.setText("Food List");   }   protected Control createContents(Composite parent) {     Composite composite = new Composite(parent, SWT.NONE);     composite.setLayout(new GridLayout(1, false));     Button filterButton = new Button(composite, SWT.CHECK);     filterButton.setText("&Show only healthy");     final ListViewer lv = new ListViewer(composite);     lv.setContentProvider(new ItemContentProvider());     lv.setLabelProvider(new ItemLabelProvider());     lv.setInput(new ItemList());     filterButton.addSelectionListener(new SelectionAdapter() {       public void widgetSelected(SelectionEvent event) {         if (((Button) event.widget).getSelection())           lv.addFilter(filter);         else           lv.removeFilter(filter);       }     });     parent.pack();     return composite;   }   public static void main(String[] args) {     new MainClass();   } } class MyItem {   private String name;   private boolean visible;   public MyItem(String name, boolean healthy) {     this.name = name;     this.visible = healthy;   }   public boolean isVisible() {     return visible;   }   public String getName() {     return name;   } } class ItemFilter extends ViewerFilter {   public boolean select(Viewer arg0, Object arg1, Object arg2) {     return ((MyItem) arg2).isVisible();   } } class ItemList {   private ArrayList foods;   public ItemList() {     foods = new ArrayList();     foods.add(new MyItem("A", true));     foods.add(new MyItem("B", false));     foods.add(new MyItem("C", true));     foods.add(new MyItem("D", false));     foods.add(new MyItem("E", true));     foods.add(new MyItem("F", false));     foods.add(new MyItem("G", true));     foods.add(new MyItem("H", false));     foods.add(new MyItem("I", true));     foods.add(new MyItem("K", false));   }   public List getFoods() {     return Collections.unmodifiableList(foods);   } } class ItemLabelProvider implements ILabelProvider {   public Image getImage(Object arg0) {     return null;   }   public String getText(Object arg0) {     return ((MyItem) arg0).getName();   }   public void addListener(ILabelProviderListener arg0) {   }   public void dispose() {   }   public boolean isLabelProperty(Object arg0, String arg1) {     return false;   }   public void removeListener(ILabelProviderListener arg0) {   } } class ItemContentProvider implements IStructuredContentProvider {   public Object[] getElements(Object arg0) {     return ((ItemList) arg0).getFoods().toArray();   }   public void dispose() {   }   public void inputChanged(Viewer arg0, Object arg1, Object arg2) {   } }