/**
*
*/
package goko;
import javax.inject.Inject;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.core.services.log.Logger;
import org.eclipse.e4.core.services.statusreporter.StatusReporter;
import org.eclipse.e4.ui.internal.workbench.swt.IEventLoopAdvisor;
import org.eclipse.swt.widgets.Display;
import org.goko.core.log.GkLog;
/**
* @author PsyKo
* @date 22 f�vr. 2016
*/
public class GokoEventLoopAdvisor implements IEventLoopAdvisor {
private static final GkLog LOG = GkLog.getLogger(GokoEventLoopAdvisor.class);
@Inject
private IEclipseContext appContext;
@Inject
protected Logger logger;
/** (inheritDoc)
* @see org.eclipse.e4.ui.internal.workbench.swt.IEventLoopAdvisor#eventLoopIdle(org.eclipse.swt.widgets.Display)
*/
@Override
public void eventLoopIdle(Display display) {
display.sleep();
}
/** (inheritDoc)
* @see org.eclipse.e4.ui.internal.workbench.swt.IEventLoopAdvisor#eventLoopException(java.lang.Throwable)
*/
@Override
public void eventLoopException(Throwable exception) {
LOG.error(exception);
StatusReporter statusReporter = appContext.get(StatusReporter.class);
if (statusReporter != null) {
statusReporter.show(StatusReporter.ERROR, "Internal Error", exception);
} else {
if (logger != null) {
logger.error(exception);
}
}
}
}