package com.jazzautomation.ui;
import com.jazzautomation.AutomationDriver;
import com.jazzautomation.WebUIManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import javax.swing.SwingWorker;
/**
* Runner for the driver - has to be done in the background so the UI is still responsive.
*
* <p>Yeah, it's threaded - let the JVM do the heavy lifting.</p>
*/
public class UiBackgroundTaskManager extends SwingWorker<Object, Object>
{
private final ProgressTailer progressUpdater;
private final Settings settings;
private MainUi mainUi;
private static final Logger LOG = LoggerFactory.getLogger(UiBackgroundTaskManager.class);
public UiBackgroundTaskManager(ProgressTailer progressUpdater, Settings settings, MainUi mainUi)
{
this.progressUpdater = progressUpdater;
this.settings = settings;
this.mainUi = mainUi;
}
@Override
protected Object doInBackground() throws Exception
{
try
{
WebUIManager.reinitialize();
Browsers browser = settings.getBrowser();
if (browser != Browsers.NOT_SPECIFIED)
{
WebUIManager.getInstance().setBrowser(browser, true); // override anything read in from feature files
}
AutomationDriver.beginTestSuite();
}
catch (Exception e)
{
LOG.error(e.getMessage(), e);
}
progressUpdater.stop();
mainUi.setNormalCursor();
Os.getOs().openFile(new File(settings.getConfigurationsPath() + "/reports/index.html"));
return null;
}
}