// Copyright (c) 2008 by Leif Frenzel - see http://leiffrenzel.de
// This code is made available under the terms of the Eclipse Public License,
// version 1.0 (EPL). See http://www.eclipse.org/legal/epl-v10.html
package net.sf.eclipsefp.haskell.ui.internal.views.common;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
/** <p>content provider for generic trees consisting of ITreeElements.</p>
*
* @author Leif Frenzel
*/
public class TreeElementCP implements ITreeContentProvider {
// interface methods of ITreeContentProvider
////////////////////////////////////////////
@Override
public Object[] getChildren( final Object parentElement ) {
Object[] result = new Object[ 0 ];
if( parentElement instanceof ITreeElement ) {
ITreeElement element = ( ITreeElement )parentElement;
result = element.getChildren().toArray();
}
return result;
}
@Override
public Object getParent( final Object element ) {
Object result = null;
if( element instanceof ITreeElement ) {
result = ( ( ITreeElement )element ).getParent();
}
return result;
}
@Override
public boolean hasChildren( final Object element ) {
Object[] children = getChildren( element );
return children != null && children.length > 0;
}
@Override
public Object[] getElements( final Object inputElement ) {
return getChildren( inputElement );
}
@Override
public void dispose() {
// unused
}
@Override
public void inputChanged( final Viewer viewer,
final Object oldInput,
final Object newInput ) {
// unused
}
}