]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.eclipse.ui.workbench/src/org/argeo/eclipse/ui/workbench/WorkbenchUiPlugin.java
Clean internal package structure
[lgpl/argeo-commons.git] / org.argeo.eclipse.ui.workbench / src / org / argeo / eclipse / ui / workbench / WorkbenchUiPlugin.java
index 48ed86142fab608a6ae066a46e16b2eae0c1040a..6fd8e5d3b995488294c00d4e84f8349c1197bf7d 100644 (file)
@@ -19,6 +19,9 @@ import java.util.ResourceBundle;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.eclipse.core.runtime.ILogListener;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
@@ -26,7 +29,7 @@ import org.osgi.framework.BundleContext;
 /**
  * The activator class controls the plug-in life cycle
  */
-public class WorkbenchUiPlugin extends AbstractUIPlugin {
+public class WorkbenchUiPlugin extends AbstractUIPlugin implements ILogListener {
        private final static Log log = LogFactory.getLog(WorkbenchUiPlugin.class);
        private ResourceBundle messages;
 
@@ -42,30 +45,24 @@ public class WorkbenchUiPlugin extends AbstractUIPlugin {
        public WorkbenchUiPlugin() {
        }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
-        * )
-        */
        public void start(BundleContext context) throws Exception {
                super.start(context);
                plugin = this;
                messages = ResourceBundle.getBundle(ID + ".messages");
-
+               Platform.addLogListener(this);
+               if (log.isTraceEnabled())
+                       log.trace("Eclipse logging now directed to standard logging");
        }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see
-        * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
-        * )
-        */
        public void stop(BundleContext context) throws Exception {
-               plugin = null;
-               super.stop(context);
+               try {
+                       Platform.removeLogListener(this);
+                       if (log.isTraceEnabled())
+                               log.trace("Eclipse logging not directed anymore to standard logging");
+                       plugin = null;
+               } finally {
+                       super.stop(context);
+               }
        }
 
        /**
@@ -103,4 +100,17 @@ public class WorkbenchUiPlugin extends AbstractUIPlugin {
                        return null;
        }
 
+       public void logging(IStatus status, String plugin) {
+               Log pluginLog = LogFactory.getLog(plugin);
+               Integer severity = status.getSeverity();
+               if (severity == IStatus.ERROR)
+                       pluginLog.error(status.getMessage(), status.getException());
+               else if (severity == IStatus.WARNING)
+                       pluginLog.warn(status.getMessage(), status.getException());
+               else if (severity == IStatus.INFO)
+                       pluginLog.info(status.getMessage(), status.getException());
+               else if (severity == IStatus.CANCEL)
+                       if (pluginLog.isDebugEnabled())
+                               pluginLog.debug(status.getMessage(), status.getException());
+       }
 }