|
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.
|