+++ /dev/null
-package org.argeo.slc.ide.ui;\r
-\r
-import java.net.URL;\r
-\r
-import org.eclipse.core.resources.IResource;\r
-import org.eclipse.core.runtime.CoreException;\r
-import org.eclipse.debug.core.DebugEvent;\r
-import org.eclipse.debug.core.DebugPlugin;\r
-import org.eclipse.debug.core.IDebugEventSetListener;\r
-import org.eclipse.debug.core.ILaunch;\r
-import org.eclipse.debug.core.model.IProcess;\r
-import org.eclipse.jface.resource.ImageDescriptor;\r
-import org.eclipse.jface.resource.ImageRegistry;\r
-import org.eclipse.pde.core.plugin.TargetPlatform;\r
-import org.eclipse.swt.graphics.Image;\r
-import org.eclipse.ui.plugin.AbstractUIPlugin;\r
-import org.osgi.framework.BundleContext;\r
-\r
-/**\r
- * The activator class controls the plug-in life cycle\r
- */\r
-public class SlcIdeUiPlugin extends AbstractUIPlugin {\r
-\r
- // The plug-in ID\r
- public static final String ID = "org.argeo.slc.ide.ui";\r
-\r
- // The shared instance\r
- private static SlcIdeUiPlugin plugin;\r
-\r
- /**\r
- * The constructor\r
- */\r
- public SlcIdeUiPlugin() {\r
- }\r
-\r
- @Override\r
- public void start(BundleContext context) throws Exception {\r
- super.start(context);\r
- plugin = this;\r
- DebugPlugin.getDefault()\r
- .addDebugEventListener(new DebugEventListener());\r
-\r
- String location = TargetPlatform.getLocation();\r
- System.out.println(location);\r
- }\r
-\r
- @Override\r
- public void stop(BundleContext context) throws Exception {\r
- plugin = null;\r
- super.stop(context);\r
- }\r
-\r
- /**\r
- * Returns the shared instance\r
- * \r
- * @return the shared instance\r
- */\r
- public static SlcIdeUiPlugin getDefault() {\r
- return plugin;\r
- }\r
-\r
- public Image getImage(String relativeURL) {\r
- ImageRegistry imageRegistry = getImageRegistry();\r
- Image image = imageRegistry.get(relativeURL);\r
- if (image == null) {\r
- URL imageURL = getBundle().getEntry(relativeURL);\r
- ImageDescriptor descriptor = ImageDescriptor\r
- .createFromURL(imageURL);\r
- image = descriptor.createImage();\r
- imageRegistry.put(relativeURL, image);\r
- }\r
- return image;\r
- }\r
-\r
- protected static class DebugEventListener implements IDebugEventSetListener {\r
- public void handleDebugEvents(DebugEvent[] events) {\r
- if (events == null)\r
- return;\r
-\r
- for (int i = 0; i < events.length; i++) {\r
- DebugEvent event = events[i];\r
- if (event == null)\r
- continue;\r
- Object source = event.getSource();\r
- if (source instanceof IProcess\r
- && event.getKind() == DebugEvent.TERMINATE) {\r
- IProcess process = (IProcess) source;\r
-// if (process == null)\r
-// continue;\r
- ILaunch launch = process.getLaunch();\r
- if (launch != null)\r
- refreshOsgiBootLaunch(launch);\r
- }\r
- }\r
- }\r
-\r
- protected void refreshOsgiBootLaunch(ILaunch launch) {\r
- try {\r
- if (launch == null)\r
- return;\r
- IResource[] resources = launch.getLaunchConfiguration()\r
- .getMappedResources();\r
- if (resources == null)\r
- return;\r
- if (resources.length > 0) {\r
- IResource propertiesFile = resources[0];\r
- if (propertiesFile.getParent() == null)\r
- return;\r
- propertiesFile.getParent().refreshLocal(\r
- IResource.DEPTH_INFINITE, null);\r
- // System.out.println("Refreshed "\r
- // + propertiesFile.getParent());\r
- }\r
- } catch (CoreException e) {\r
- e.printStackTrace();\r
- }\r
-\r
- }\r
-\r
- }\r
-\r
-}\r