From: <bea...@us...> - 2006-10-17 15:42:54
|
Revision: 293 http://svn.sourceforge.net/cishell/?rev=293&view=rev Author: bearsfan Date: 2006-10-17 08:40:07 -0700 (Tue, 17 Oct 2006) Log Message: ----------- Check to see if a BundleContext is around to get a datamanager Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/AbstractDataManagerView.java trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/Activator.java Modified: trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/AbstractDataManagerView.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/AbstractDataManagerView.java 2006-10-16 21:59:06 UTC (rev 292) +++ trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/AbstractDataManagerView.java 2006-10-17 15:40:07 UTC (rev 293) @@ -58,6 +58,8 @@ import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; import org.eclipse.ui.part.ViewPart; +import org.osgi.framework.BundleEvent; +import org.osgi.framework.BundleListener; import org.osgi.service.log.LogService; /** @@ -65,7 +67,7 @@ * @author Bruce Herr (bh...@bh...) */ public abstract class AbstractDataManagerView extends ViewPart implements - DataManagerListener { + DataManagerListener, BundleListener { private String brandPluginID; private DataManagerService manager; @@ -165,11 +167,27 @@ tree.addMouseListener(editorListener); tree.addKeyListener(editorListener); - // listen to IVC for models being added by plugins - manager.addDataManagerListener(this); + // listen to OSGi for models being added by plugins + if (manager != null) { + manager.addDataManagerListener(this); + } + else { + Activator.getBundleContext().addBundleListener(this); + manager = Activator.getDataManagerService(); + if (manager != null) { + manager.addDataManagerListener(this); + } + } getSite().setSelectionProvider(new DataModelSelectionProvider()); } + + public void bundleChanged(BundleEvent event) { + if (event.getType() == BundleEvent.STARTED) { + manager = Activator.getDataManagerService(); + manager.addDataManagerListener(this); + } + } /** * @see org.eclipse.ui.part.WorkbenchPart#setFocus() Modified: trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/Activator.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/Activator.java 2006-10-16 21:59:06 UTC (rev 292) +++ trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/Activator.java 2006-10-17 15:40:07 UTC (rev 293) @@ -36,7 +36,7 @@ */ public void start(BundleContext context) throws Exception { super.start(context); - + Activator.context = context; } @@ -59,9 +59,14 @@ } protected static DataManagerService getDataManagerService() { - DataManagerService manager = (DataManagerService) context.getService( - context.getServiceReference(DataManagerService.class.getName())); + ServiceReference serviceReference = context.getServiceReference(DataManagerService.class.getName()); + DataManagerService manager = null; + if (serviceReference != null) { + manager = (DataManagerService) context.getService(serviceReference); + + } + return manager; } @@ -87,6 +92,10 @@ return null; } } + + protected static BundleContext getBundleContext() { + return context; + } protected static CIShellContext getCIShellContext() { return new LocalCIShellContext(context); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |