/**
* 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.text.NumberFormat;
import net.sf.eclipsefp.haskell.debug.core.test.TestResult;
import net.sf.eclipsefp.haskell.debug.core.test.TestSuite;
import net.sf.eclipsefp.haskell.debug.ui.internal.util.UITexts;
import net.sf.eclipsefp.haskell.ui.util.HaskellUIImages;
import net.sf.eclipsefp.haskell.ui.util.IImageNames;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.graphics.Image;
/**
* Label provider for the test tree UI
* @author JP Moresmau
*
*/
public class TestResultLP extends LabelProvider {
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
*/
@Override
public Image getImage( final Object element ) {
if (element instanceof TestResult){
TestResult tr=(TestResult)element;
String key=null;
switch (tr.getStatus()){
case ERROR:
key=IImageNames.TEST_ERR;
break;
case FAILURE:
key=IImageNames.TEST_FAIL;
break;
case OK:
key=IImageNames.TEST_OK;
break;
case PENDING:
key=IImageNames.TEST;
break;
case RUNNING:
key=IImageNames.TEST_RUN;
break;
}
if (key!=null){
return HaskellUIImages.getImage( key );
}
} else if (element instanceof TestSuite){
return getImage(( (TestSuite )element).getRoot());
}
return super.getImage( element );
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
*/
@Override
public String getText( final Object element ) {
if (element instanceof TestResult){
TestResult tr=(TestResult)element;
if (tr.isFinished()){
/** wall time in milliseconds **/
double t=((double)tr.getWallTime())/(double)1000;
return NLS.bind( UITexts.test_label,tr.getName(), NumberFormat.getNumberInstance().format( t ));
}
}
return super.getText( element );
}
}