/**
* Copyright (c) 2012 by JP Moresmau
* 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.debug.ui.test;
import java.util.Collection;
import net.sf.eclipsefp.haskell.debug.core.test.TestResult;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.Viewer;
/**
* Content provider for the test UI tree
* @author JP Moresmau
*
*/
public class TestResultCP implements ITreeContentProvider {
private final Object[] empty=new Object[0];
private Object[] tests=empty;
private Object input;
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IContentProvider#dispose()
*/
@Override
public void dispose() {
tests=empty;
input=null;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
*/
@Override
public void inputChanged( final Viewer paramViewer, final Object paramObject1,
final Object paramObject2 ) {
input=paramObject2;
if (paramObject2 instanceof Collection<?>){
tests=((Collection<?>)paramObject2).toArray();
} else {
tests=empty;
}
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITreeContentProvider#getElements(java.lang.Object)
*/
@Override
public Object[] getElements( final Object paramObject ) {
if ((paramObject instanceof Collection<?>)){
return tests;
}
return empty;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
*/
@Override
public Object[] getChildren( final Object paramObject ) {
if ((paramObject instanceof Collection<?>)){
return tests;
} else if (paramObject instanceof TestResult){
return ((TestResult)paramObject).getChildren().toArray();
}
return empty;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
*/
@Override
public Object getParent( final Object paramObject ) {
if ((paramObject instanceof Collection<?>)){
return null;
}
return input;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
*/
@Override
public boolean hasChildren( final Object paramObject ) {
if ((paramObject instanceof Collection<?>)){
return ((Collection<?>)paramObject).size()>0;
} else if (paramObject instanceof TestResult){
return ((TestResult)paramObject).getChildren().size()>0;
}
return false;
}
}