/** * 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 net.sf.eclipsefp.haskell.core.HaskellCorePlugin; import net.sf.eclipsefp.haskell.debug.core.test.ITestListener; import net.sf.eclipsefp.haskell.debug.core.test.TestSuite; import net.sf.eclipsefp.haskell.debug.ui.internal.HaskellDebugUI; import net.sf.eclipsefp.haskell.ui.HaskellUIPlugin; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; /** * Listener showing the results in the haskell test result view * @author JP Moresmau * */ public class ViewTestListener implements ITestListener { public TestResultView getView(final boolean activate){ IWorkbenchPage p=HaskellUIPlugin.getActivePage(); //TestResultView view=(TestResultView)p.findView( HaskellDebugUI.TEST_RESULTS_VIEW_ID ); //p.activate( view ); try { /** do not activate on update **/ TestResultView view=(TestResultView)p.showView( HaskellDebugUI.TEST_RESULTS_VIEW_ID,null,activate?IWorkbenchPage.VIEW_ACTIVATE:IWorkbenchPage.VIEW_CREATE ); return view; } catch (PartInitException pie){ HaskellCorePlugin.log( pie ); } return null; } /* (non-Javadoc) * @see net.sf.eclipsefp.haskell.debug.core.test.ITestListener#start(int, java.util.List) */ @Override public void start( final TestSuite ts ) { Display.getDefault().asyncExec( new Runnable(){ @Override public void run() { TestResultView view=getView(true); if (view!=null){ view.setInput( ts,true ); } } } ); } /* (non-Javadoc) * @see net.sf.eclipsefp.haskell.debug.core.test.ITestListener#update(int, java.util.List) */ @Override public void update( final TestSuite ts ) { Display.getDefault().asyncExec( new Runnable(){ @Override public void run() { TestResultView view=getView(false); if (view!=null){ view.setInput( ts,false ); } } } ); } /* (non-Javadoc) * @see net.sf.eclipsefp.haskell.debug.core.test.ITestListener#end(int, java.util.List) */ @Override public void end( final TestSuite ts ) { Display.getDefault().asyncExec( new Runnable(){ @Override public void run() { TestResultView view=getView(true); // activate on end if (view!=null){ view.setInput( ts,false ); } } } ); } }