RESOLVED - bug 200034: [pde viz] Indicate plug-ins which cannot be resolved
https://bugs.eclipse.org/bugs/show_bug.cgi?id=200034
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/AbstractVisualizationLabelProvider.java b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/AbstractVisualizationLabelProvider.java
index ac0c169..58f4794 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/AbstractVisualizationLabelProvider.java
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/AbstractVisualizationLabelProvider.java
@@ -63,12 +63,12 @@
public Color EDGE_HIGHLIGHT = new Color(Display.getDefault(), 192, 32, 32);
public Color DISABLED = new Color(Display.getDefault(), 230, 240, 250);
- private BundleDescription selected = null;
- protected BundleDescription rootNode = null;
+ private Object selected = null;
+ protected Object rootNode = null;
private HashSet interestingRelationships = new HashSet();
private HashSet interestingDependencies = new HashSet();
private Color disabledColor = null;
- protected BundleDescription pinnedNode = null;
+ protected Object pinnedNode = null;
private GraphViewer viewer;
private boolean showVersionNumber = false;
private DependenciesLabelProvider pdeLabelProvider = null;
@@ -230,11 +230,11 @@
*
* @see org.eclipse.pde.visualization.views.VisualizationLabelProvider#setPinnedNode(org.eclipse.osgi.service.resolver.BundleDescription)
*/
- public void setPinnedNode(BundleDescription pinnedNode) {
+ public void setPinnedNode(Object pinnedNode) {
this.pinnedNode = pinnedNode;
}
- protected BundleDescription getSelected() {
+ protected Object getSelected() {
if (pinnedNode != null) {
return pinnedNode;
}
@@ -254,10 +254,10 @@
viewer.unReveal(entityConnectionData);
}
- this.rootNode = (BundleDescription) root;
+ this.rootNode = root;
this.selected = null;
- this.selected = (BundleDescription) currentSelection;
+ this.selected = currentSelection;
interestingRelationships = new HashSet();
interestingDependencies = new HashSet();
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/AnalysisUtil.java b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/AnalysisUtil.java
index 168dcee..49dc925 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/AnalysisUtil.java
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/AnalysisUtil.java
@@ -30,24 +30,24 @@
*/
public class AnalysisUtil {
- public static BundleDescription[] getPath(Object root, Object bundle) {
+ public static Object[] getPath(Object root, Object bundle) {
LinkedList q = new LinkedList();
Set orderedSet = new HashSet();
LinkedList orderedList = new LinkedList();
q.add(root);
while (!q.isEmpty()) {
- BundleDescription head = (BundleDescription) q.remove(0);
+ Object head = q.remove(0);
if (!orderedSet.contains(head)) {
orderedSet.add(head);
orderedList.add(head);
buildQueue(head, q);
}
}
- BundleDescription[] path = modifiedDijkstra(orderedList, root, bundle);
+ Object[] path = modifiedDijkstra(orderedList, root, bundle);
return path;
}
- private static void buildQueue(BundleDescription root, LinkedList q) {
+ private static void buildQueue(Object root, LinkedList q) {
Object[] descriptions = getDependencies(root);
if (descriptions == null || descriptions.length == 0) {
return;
@@ -57,7 +57,7 @@
}
}
- public static BundleDescription[] modifiedDijkstra(LinkedList q, Object s, Object t) {
+ public static Object[] modifiedDijkstra(LinkedList q, Object s, Object t) {
HashMap previous = new HashMap();
HashMap dValues = new HashMap();
for (Iterator iter = q.iterator(); iter.hasNext();) {
@@ -87,7 +87,7 @@
currentNode = previous.get(currentNode);
}
path.add(currentNode);
- return (BundleDescription[]) path.toArray(new BundleDescription[path.size()]);
+ return path.toArray(new Object[path.size()]);
}
public static BundleDescription[] getCallers(BundleDescription bundle, BundleDescription[] bundles) {
@@ -107,7 +107,7 @@
*
* @return
*/
- public static BundleDescription[] getAllCallers(BundleDescription bundle, Object[] bundles) {
+ public static Object[] getAllCallers(Object bundle, Object[] bundles) {
HashSet callers = new HashSet();
for (int i = 0; i < bundles.length; i++) {
HashSet hashSet = new HashSet();
@@ -116,7 +116,7 @@
callers.add(bundles[i]);
}
}
- return (BundleDescription[]) callers.toArray(new BundleDescription[callers.size()]);
+ return callers.toArray(new Object[callers.size()]);
}
public static Object[] getPrerequisites(Object[] bundles) {
@@ -145,7 +145,7 @@
public static Object[] getDependencies(Object bundle) {
if (bundle == null || bundle instanceof BundleSpecification) {
- return null;
+ return new Object[0];
}
BundleDescription bundleDescription = (BundleDescription) bundle;
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/GraphContentProvider.java b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/GraphContentProvider.java
index a4130ab..f8e1799 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/GraphContentProvider.java
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/GraphContentProvider.java
@@ -21,11 +21,11 @@
*/
class GraphContentProvider implements IGraphEntityContentProvider {
- BundleDescription currentBundle = null;
+ Object currentBundle = null;
- private Object[] getDependencies(BundleDescription bundle) {
+ private Object[] getDependencies(Object bundle) {
if (bundle != null) {
- return AnalysisUtil.getPrerequisites(new BundleDescription[] { currentBundle });
+ return AnalysisUtil.getPrerequisites(new Object[] { currentBundle });
}
return new BundleDescription[0];
}
@@ -35,7 +35,7 @@
}
public Object[] getElements(Object inputElement) {
- return getDependencies((BundleDescription) inputElement);
+ return getDependencies(inputElement);
}
@@ -49,7 +49,7 @@
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- currentBundle = (BundleDescription) newInput;
+ currentBundle = newInput;
}
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/PathDependencyAnalysis.java b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/PathDependencyAnalysis.java
index 904d0fa..2f9459a 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/PathDependencyAnalysis.java
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/PathDependencyAnalysis.java
@@ -15,7 +15,6 @@
import org.eclipse.mylyn.zest.core.viewers.EntityConnectionData;
import org.eclipse.mylyn.zest.core.viewers.GraphViewer;
-import org.eclipse.osgi.service.resolver.BundleDescription;
/**
*
@@ -31,7 +30,7 @@
protected void calculateInterestingDependencies(HashSet interestingRels, HashSet interestingEntities) {
if (this.getSelected() != null) {
- BundleDescription[] descriptions = AnalysisUtil.getAllCallers(this.getSelected(), AnalysisUtil.getPrerequisites(new BundleDescription[] { this.rootNode }));
+ Object[] descriptions = AnalysisUtil.getAllCallers(this.getSelected(), AnalysisUtil.getPrerequisites(new Object[] { this.rootNode }));
for (int i = 0; i < descriptions.length; i++) {
for (int j = 0; j < descriptions.length; j++) {
EntityConnectionData entityConnectionData = new EntityConnectionData(descriptions[i], descriptions[j]);
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/PluginVisualizationView.java b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/PluginVisualizationView.java
index 964b500..f34523f 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/PluginVisualizationView.java
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/PluginVisualizationView.java
@@ -45,6 +45,7 @@
import org.eclipse.mylyn.zest.layouts.algorithms.HorizontalShift;
import org.eclipse.mylyn.zest.layouts.algorithms.TreeLayoutAlgorithm;
import org.eclipse.osgi.service.resolver.BundleDescription;
+import org.eclipse.osgi.service.resolver.BundleSpecification;
import org.eclipse.pde.core.plugin.IPluginModel;
import org.eclipse.pde.core.plugin.IPluginModelBase;
import org.eclipse.pde.core.plugin.PluginRegistry;
@@ -167,7 +168,7 @@
}
Object selectedElement = selection.getFirstElement();
if (selectedElement instanceof BundleDescription) {
- focusOn((BundleDescription) selectedElement, true);
+ focusOn(selectedElement, true);
// When a new plug-in is selected, disable the forward action.
// The forward action only stores history when the back button was used (much like a browser)
forwardStack.clear();
@@ -243,7 +244,7 @@
// Set the pinned node in case we have one from the previous content
// provider
- this.currentLabelProvider.setPinnedNode((BundleDescription) pinnedNode);
+ this.currentLabelProvider.setPinnedNode(pinnedNode);
if (viewer.getSelection() != null) {
viewer.setSelection(viewer.getSelection());
this.selectionChanged(((IStructuredSelection) viewer.getSelection()).getFirstElement());
@@ -293,7 +294,7 @@
* @param bundle
* @param recordHistory
*/
- private void focusOn(BundleDescription bundle, boolean recordHistory) {
+ private void focusOn(Object bundle, boolean recordHistory) {
viewer.setSelection(new StructuredSelection());
this.selectionChanged(null);
viewer.setInput(bundle);
@@ -374,7 +375,7 @@
Object o = historyStack.pop();
forwardStack.push(currentNode);
forwardAction.setEnabled(true);
- focusOn((BundleDescription) o, false);
+ focusOn(o, false);
if (historyStack.size() <= 0) {
historyAction.setEnabled(false);
}
@@ -391,7 +392,7 @@
public void run() {
if (forwardStack.size() > 0) {
Object o = forwardStack.pop();
- focusOn((BundleDescription) o, true);
+ focusOn(o, true);
if (forwardStack.size() <= 0) {
forwardAction.setEnabled(false);
}
@@ -443,7 +444,7 @@
// @tag action : Focus on Current Selection action
focusAction = new Action() {
public void run() {
- focusOn((BundleDescription) objectToFocusOn, true);
+ focusOn(objectToFocusOn, true);
// When a new plug-in is selected, disable the forward action
// The forward action only stores history when the back button was used (much like a browser)
@@ -451,7 +452,12 @@
forwardAction.setEnabled(false);
}
};
- focusAction.setText("Focus On \'" + ((BundleDescription) objectToFocusOn).getName() + "\'");
+ if (objectToFocusOn instanceof BundleDescription) {
+ focusAction.setText("Focus On \'" + ((BundleDescription) objectToFocusOn).getName() + "\'");
+ } else if (objectToFocusOn instanceof BundleSpecification) {
+ focusAction.setText("Focus On \'" + ((BundleSpecification) objectToFocusOn).getName() + "\'");
+
+ }
focusAction.setToolTipText("Focus on a plugin");
}
@@ -466,13 +472,22 @@
unPinAction.setChecked(true);
}
- private void makePinAction(final BundleDescription objectToPin) {
+ private String getName(Object o ) {
+ if ( o instanceof BundleDescription ) {
+ return ((BundleDescription)o).getName();
+ }
+ else if ( o instanceof BundleSpecification ) {
+ return ((BundleSpecification)o).getName();
+ }
+ return null;
+ }
+ private void makePinAction(final Object objectToPin) {
pinAction = new Action() {
public void run() {
pinNode(objectToPin);
}
};
- pinAction.setText("Pin selection of " + objectToPin.getName());
+ pinAction.setText("Pin selection of " + getName(objectToPin));
pinAction.setToolTipText("Toggle pin selected node");
}
@@ -481,7 +496,7 @@
}
private void pinNode(Object objectToPin) {
- this.currentLabelProvider.setPinnedNode((BundleDescription) objectToPin);
+ this.currentLabelProvider.setPinnedNode( objectToPin);
this.pinnedNode = objectToPin;
this.currentLabelProvider.setCurrentSelection(this.currentNode, ((IStructuredSelection) viewer.getSelection()).getFirstElement());
this.viewer.update(contentProvider.getElements(currentNode), null);
@@ -529,7 +544,7 @@
manager.add(unPinAction);
}
if (((IStructuredSelection) viewer.getSelection()).size() > 0) {
- makePinAction((BundleDescription) ((IStructuredSelection) viewer.getSelection()).getFirstElement());
+ makePinAction(((IStructuredSelection) viewer.getSelection()).getFirstElement());
manager.add(pinAction);
}
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/ShortestPathDependencyAnalysis.java b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/ShortestPathDependencyAnalysis.java
index 0993545..a3aa955 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/ShortestPathDependencyAnalysis.java
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/ShortestPathDependencyAnalysis.java
@@ -15,7 +15,6 @@
import org.eclipse.mylyn.zest.core.viewers.EntityConnectionData;
import org.eclipse.mylyn.zest.core.viewers.GraphViewer;
-import org.eclipse.osgi.service.resolver.BundleDescription;
/**
*
@@ -30,7 +29,7 @@
protected void calculateInterestingDependencies(HashSet interestingRels, HashSet interestingEntities) {
if (this.getSelected() != null) {
- BundleDescription[] descriptions = AnalysisUtil.getPath(this.rootNode, this.getSelected());
+ Object[] descriptions = AnalysisUtil.getPath(this.rootNode, this.getSelected());
for (int i = 0; i < descriptions.length; i++) {
for (int j = 0; j < descriptions.length; j++) {
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/SmartPathDependencyAnalysis.java b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/SmartPathDependencyAnalysis.java
index 3c207b8..fc78752 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/SmartPathDependencyAnalysis.java
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/SmartPathDependencyAnalysis.java
@@ -15,7 +15,6 @@
import org.eclipse.mylyn.zest.core.viewers.EntityConnectionData;
import org.eclipse.mylyn.zest.core.viewers.GraphViewer;
-import org.eclipse.osgi.service.resolver.BundleDescription;
/**
*
@@ -54,7 +53,7 @@
// For each dependency of the root node, compute the shortest path
// to the selected node. add each of these to to the list of nodes.
EntityConnectionData entityConnectionData = new EntityConnectionData(this.rootNode, descriptions[i]);
- BundleDescription[] path = AnalysisUtil.getPath(descriptions[i], this.getSelected());
+ Object[] path = AnalysisUtil.getPath(descriptions[i], this.getSelected());
if (path.length > 1) {
for (int j = 0; j < path.length; j++) {
for (int k = 0; k < path.length; k++) {
@@ -67,7 +66,7 @@
interestingRels.add(entityConnectionData);
}
}
- BundleDescription[] path = AnalysisUtil.getPath(this.rootNode, this.getSelected());
+ Object[] path = AnalysisUtil.getPath(this.rootNode, this.getSelected());
if (path.length > 1) {
for (int j = 0; j < path.length; j++) {
for (int k = 0; k < path.length; k++) {
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/VisualizationLabelProvider.java b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/VisualizationLabelProvider.java
index 5dff7d2..1d7a642 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/VisualizationLabelProvider.java
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/VisualizationLabelProvider.java
@@ -12,7 +12,6 @@
package org.eclipse.pde.visualization.dependency.views;
import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.osgi.service.resolver.BundleDescription;
/**
* A content provider to represent the different types of label providers we have in pde.visualization
@@ -39,7 +38,7 @@
* Sets a node to be pinned on this viewer
* @param pinnedNode
*/
- public void setPinnedNode(BundleDescription pinnedNode);
+ public void setPinnedNode(Object pinnedNode);
/**
* If true, shows the version number after the name of the plug-in. If false,