[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.newcomer] Re: How to filter a TreeViewer to not display the parent, but show the children

Thanks,

I am using an EMF.edit project generated from my schema, where it is
using an AdapterFactoryContent provider instead of a single
ITreeContentProvider.  

It was doing:

 navigator.setContentProvider(new
   AdapterFactoryContentProvider(adapterFactory));
 navigator.setLabelProvider(new
   AdapterFactoryLabelProvider(adapterFactory));
 getSite().setSelectionProvider(navigator);
...
 navigator.setInput(resource);


I was able to get my viewer to skip the DocumentRoot and MyExlporer
levels by inserting the following before the setInput

 Object object = resource.getContents().get(0);
 navigator.setInput(object);

-Kyle


On Thu, 12 Feb 2009 22:21:42 +0530, Rajkumar
<rajkumar_kandasamy@xxxxxxxxxxxxxxxx> wrote:

>Hi,
>
>I have no idea what ViewerFilter is doing. But you can do this very 
>easily in content provider itself.
>
>Am assuming your contentProvider implements ITreeContentProvider,
>
>In getChildren() of ITreeContentProvider
>
>public Object[] getChildren(Object parentElement) {
>if (parentElement instanceof DocumentRoot) {
>		DocumentRoot documentRoot = (DocumentRoot )parentElement;
>	        return documentRoot.getMyExplorer.listTree().toArray();
>	}
>return new Object[0];
>}
>
>And in getElements() of ITreeContentProvider
>
>public Object[] getElements(Object inputElement) {
>	if (inputElement instanceof Tree) {
>	Tree tree = (Tree)inputElement ;
>	return tree.listItems().toArray();
>	}
>}
>
>This will give the result what your are expecting...
>
>Thanks
>Raj
>
>
>
>
>Kyle J Nolan wrote:
>> My structure has the following (where each level is a different class
>> type):
>> 
>> DocumentRoot
>> +- MyExplorer
>>  +-Tree1
>>   ---item1
>>   ---item2
>>  +-Tree2
>>   ---item3
>>   ---item4
>> 
>> I am trying to filter my TreeViewer to only display:
>> Tree1
>>   ---item1
>>   ---item2
>> Tree2
>>   ---item3
>>   ---item4
>> 
>> I can't seem to figure out how to do this with the ViewerFilter--if I
>> try to filter a parent class, I lose the children.
>> I would also be happy with a solution to just print the tree starting
>> at a certain level (if that's simpler)
>> 
>> Thanks