RESOLVED - bug 200195: [pde viz] Investigate the use of the directed graph layout in Draw2D
https://bugs.eclipse.org/bugs/show_bug.cgi?id=200195
RESOLVED - bug 184985: [pde viz] Change colour of root node
https://bugs.eclipse.org/bugs/show_bug.cgi?id=184985
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/org.eclipse.mylyn.zest.layouts_0.5.0.200708170620.jar b/visualization/plugins/org.eclipse.pde.visualization.dependency/org.eclipse.mylyn.zest.layouts_0.5.0.200708170620.jar
index 2ac7846..d3a8e59 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/org.eclipse.mylyn.zest.layouts_0.5.0.200708170620.jar
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/org.eclipse.mylyn.zest.layouts_0.5.0.200708170620.jar
Binary files differ
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 58f4794..d07e5a7 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
@@ -72,6 +72,9 @@
 	private GraphViewer viewer;
 	private boolean showVersionNumber = false;
 	private DependenciesLabelProvider pdeLabelProvider = null;
+	
+	private Color rootColor = null;
+	private Color rootSelectedColor = null;
 
 	/**
 	 * Create a new Abstract Visualization Label Provider
@@ -199,6 +202,12 @@
 
 	public Color getBackgroundColour(Object entity) {
 
+		if ( entity == this.rootNode ) {
+			if ( rootColor == null ) {
+				rootColor = LIGHT_GREEN;
+			}
+			return rootColor;
+		}
 		if (entity == this.selected || this.pinnedNode == entity) {
 			return viewer.getGraphControl().DEFAULT_NODE_COLOR;
 		} else if (interestingDependencies.contains(entity)) {
@@ -318,6 +327,14 @@
 			this.disabledColor.dispose();
 			this.disabledColor = null;
 		}
+		if ( this.rootColor != null) {
+			this.rootColor.dispose();
+			this.rootColor = null;
+		}
+		if ( this.rootSelectedColor != null) {
+			this.rootSelectedColor.dispose();
+			this.rootSelectedColor = null;
+		}
 	}
 
 	public IFigure getNodeFigure(Object entity) {
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 969538c..c23a940 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
@@ -104,6 +104,7 @@
 	private Object pinnedNode = null;
 	private ZoomContributionViewItem contextZoomContributionViewItem;
 	private ZoomContributionViewItem toolbarZoomContributionViewItem;
+	private VisualizationForm visualizationForm;
 
 	/**
 	 * The constructor.
@@ -130,7 +131,7 @@
 				return form;
 			}
 		};
-		VisualizationForm visualizationForm = new VisualizationForm(parent, toolKit, this);
+		visualizationForm = new VisualizationForm(parent, toolKit, this);
 		viewer = visualizationForm.getGraphViewer();
 		form = visualizationForm.getForm();
 		managedForm = visualizationForm.getManagedForm();
@@ -166,7 +167,7 @@
 					return;
 				}
 				Object selectedElement = selection.getFirstElement();
-				if (selectedElement instanceof BundleDescription) {
+				if (selectedElement instanceof BundleDescription || selectedElement instanceof BundleSpecification) {
 					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)
@@ -297,6 +298,7 @@
 		viewer.setSelection(new StructuredSelection());
 		this.selectionChanged(null);
 		viewer.setInput(bundle);
+		visualizationForm.setFocusedNodeName(getName(bundle));
 		Iterator nodes = viewer.getGraphControl().getNodes().iterator();
 		Graph graph = viewer.getGraphControl();
 		Dimension centre = new Dimension(graph.getBounds().width / 2, graph.getBounds().height / 2);
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/VisualizationForm.java b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/VisualizationForm.java
index 4c47339..3d6316a 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/VisualizationForm.java
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/VisualizationForm.java
@@ -104,6 +104,11 @@
 		createSash(form.getBody());
 	}
 	
+	public void setFocusedNodeName(String nodeName) {
+		form.setText(Plugin_Dependency_Analysis+ ": " + nodeName);
+		form.reflow(true);
+	}
+	
 	/**
 	 * Creates the sashform to seperate the graph from the controls.
 	 *