<TableViewer x:Name="f_v_elements" input="{Binding Path=elements}"> <TableViewer.contentProvider> <part:ElementsContentProvider/> </TableViewer.contentProvider> </TableViewer>
Class ElementsContentProvider implements IStructuredContentProvider { @Override public Object[] getElements(Object inputElement) { System.out.println(inputElement.getClass()); } ... }
org.eclipse.jface.viewers.ArrayContentProvider.getElements(Object)
Hi,
I have a JFace TableViewer that is bound to an EMF model like so:
<TableViewer x:Name="f_v_elements" input="{Binding Path=elements}"> <TableViewer.contentProvider> <part:ElementsContentProvider/> </TableViewer.contentProvider> </TableViewer>
And a content provider:
Class ElementsContentProvider implements IStructuredContentProvider { @Override public Object[] getElements(Object inputElement) { System.out.println(inputElement.getClass()); } ... }
Before opening the view, I set the DATACONTEXT to an instance of my EMF model.
What I see is that the IStructuredContentProvider.getElements is being called twice.
In the first call, inputElement is of type org.eclipse.emf.ecore.util.EObjectContainmentEList which is a list with elements of my EMF model. That's OK.
The second call, inputElement is of type class org.eclipse.core.databinding.observable.list.WritableList.
Where did that came from, and what do I do with it?
Thanks,
-S.
I get it, but why does the setInput method being called twice? why not just one time with a WritableList?