X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.platform.ui%2Fsrc%2Forg%2Fsimantics%2Fplatform%2Fui%2Finternal%2FActivator.java;h=bd910dd27d13fd98717bef339e9993202a28043a;hp=50c4ff590c358e3af690609fd7c78ed5a3d49673;hb=08d79b9f5e3dd4c8a32d80b74dec66875ab4acad;hpb=878d7a270f47ae61c606bbd7ea38d8dc6102db3b diff --git a/bundles/org.simantics.platform.ui/src/org/simantics/platform/ui/internal/Activator.java b/bundles/org.simantics.platform.ui/src/org/simantics/platform/ui/internal/Activator.java index 50c4ff590..bd910dd27 100644 --- a/bundles/org.simantics.platform.ui/src/org/simantics/platform/ui/internal/Activator.java +++ b/bundles/org.simantics.platform.ui/src/org/simantics/platform/ui/internal/Activator.java @@ -13,6 +13,7 @@ package org.simantics.platform.ui.internal; import java.io.PrintWriter; import java.io.StringWriter; +import org.eclipse.ui.PlatformUI; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; @@ -23,16 +24,32 @@ import org.slf4j.LoggerFactory; public class Activator extends AbstractUIPlugin { + private BundleContext context; + public Activator() { } @Override public void start(BundleContext context) throws Exception { - super.start(context); + this.context = context; + + if (PlatformUI.isWorkbenchRunning()) + PlatformUI.getWorkbench().getDisplay().asyncExec(this::initConsole); + } + + @Override + public void stop(BundleContext context) throws Exception { + context = null; + super.stop(context); + } + + private void initConsole() { + if (PlatformUI.getWorkbench().getDisplay().isDisposed()) + return; SimanticsConsole console = SimanticsConsole.findConsole(); - if(console != null) { + if (console != null) { ServiceReference ref = context.getServiceReference(UnhandledExceptionService.class.getName()); if (ref != null) { UnhandledExceptionService service = (UnhandledExceptionService) context.getService(ref); @@ -45,11 +62,10 @@ public class Activator extends AbstractUIPlugin { } ConsoleAppender ca = new ConsoleAppender(console); ch.qos.logback.classic.Logger logbackLogger = - (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); + (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); logbackLogger.addAppender(ca); ca.start(); } - } }