View Javadoc
1   package org.argeo.people.ui.providers;
2   
3   import org.eclipse.jface.viewers.ILazyContentProvider;
4   import org.eclipse.jface.viewers.TableViewer;
5   import org.eclipse.jface.viewers.Viewer;
6   
7   /**
8    * Canonical implementation of a LazyContentProvider that manage array of
9    * objects
10   */
11  public class SimpleLazyContentProvider implements ILazyContentProvider {
12  	private static final long serialVersionUID = 1L;
13  	private TableViewer viewer;
14  
15  	Object[] elements;
16  
17  	public SimpleLazyContentProvider(TableViewer viewer) {
18  		this.viewer = viewer;
19  	}
20  
21  	public void dispose() {
22  	}
23  
24  	public void setElements(Object[] elements) {
25  		this.elements = elements;
26  		viewer.setInput(elements);
27  		viewer.setItemCount(elements == null ? 0 : elements.length);
28  	}
29  
30  	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
31  		// IMPORTANT: don't forget this: an exception will be thrown if a
32  		// selected object is not part of the results anymore.
33  		viewer.setSelection(null);
34  		elements = (Object[]) newInput;
35  	}
36  
37  	public void updateElement(int index) {
38  		viewer.replace(elements[index], index);
39  	}
40  }