Refactored dependency view to use the new Zest API
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/.classpath b/visualization/plugins/org.eclipse.pde.visualization.dependency/.classpath
index ce73933..890f69d 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/.classpath
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/.classpath
@@ -1,7 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+	<classpathentry exported="true" kind="lib" path="Graph_1.0.0.jar"/>
+	<classpathentry exported="true" kind="lib" path="org.eclipse.draw2d_3.2.2.200703221218.jar"/>
+	<classpathentry exported="true" kind="lib" path="org.eclipse.mylar.zest.layouts_0.3.1.jar"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4">
+		<accessrules>
+			<accessrule kind="nonaccessible" pattern="**/System/**"/>
+		</accessrules>
+	</classpathentry>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/Graph_1.0.0.jar b/visualization/plugins/org.eclipse.pde.visualization.dependency/Graph_1.0.0.jar
new file mode 100644
index 0000000..a87041e
--- /dev/null
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/Graph_1.0.0.jar
Binary files differ
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/META-INF/MANIFEST.MF b/visualization/plugins/org.eclipse.pde.visualization.dependency/META-INF/MANIFEST.MF
index f3e9116..4621b44 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/META-INF/MANIFEST.MF
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/META-INF/MANIFEST.MF
@@ -7,10 +7,10 @@
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.pde.ui,
- org.eclipse.ui.forms,
- org.eclipse.gef,
- org.eclipse.mylar.zest.core,
- org.eclipse.mylar.zest.layouts
+ org.eclipse.ui.forms
 Eclipse-LazyStart: true
-Bundle-ClassPath: .
+Bundle-ClassPath: .,
+ Graph_1.0.0.jar,
+ org.eclipse.draw2d_3.2.2.200703221218.jar,
+ org.eclipse.mylar.zest.layouts_0.3.1.jar
 Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/build.properties b/visualization/plugins/org.eclipse.pde.visualization.dependency/build.properties
index c8fdd1e..bcf7c79 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/build.properties
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/build.properties
@@ -1,6 +1,9 @@
 bin.includes = META-INF/,\
                plugin.xml,\
-               .
+               .,\
+               Graph_1.0.0.jar,\
+               org.eclipse.draw2d_3.2.2.200703221218.jar,\
+               org.eclipse.mylar.zest.layouts_0.3.1.jar
 src.includes = src/,\
                plugin.xml,\
                META-INF/
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/org.eclipse.draw2d_3.2.2.200703221218.jar b/visualization/plugins/org.eclipse.pde.visualization.dependency/org.eclipse.draw2d_3.2.2.200703221218.jar
new file mode 100644
index 0000000..fbc15ed
--- /dev/null
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/org.eclipse.draw2d_3.2.2.200703221218.jar
Binary files differ
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/org.eclipse.mylar.zest.layouts_0.3.1.jar b/visualization/plugins/org.eclipse.pde.visualization.dependency/org.eclipse.mylar.zest.layouts_0.3.1.jar
new file mode 100644
index 0000000..c2bab40
--- /dev/null
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/org.eclipse.mylar.zest.layouts_0.3.1.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 5c8dc97..866a4d2 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
@@ -1,27 +1,25 @@
 /*******************************************************************************
- * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC, Canada.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
+ * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC,
+ * Canada. All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Chisel Group, University of Victoria
- *     IBM CAS, IBM Toronto Lab
- *******************************************************************************/
+ * 
+ * Contributors: The Chisel Group, University of Victoria IBM CAS, IBM Toronto
+ * Lab
+ ******************************************************************************/
 package org.eclipse.pde.visualization.dependency.views;
 
 import java.util.HashSet;
 import java.util.Iterator;
 
+import org.eclipse.draw2d.IFigure;
 import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.mylar.zest.core.IZestColorConstants;
-import org.eclipse.mylar.zest.core.ZestPlugin;
 import org.eclipse.mylar.zest.core.ZestStyles;
-import org.eclipse.mylar.zest.core.viewers.EntityConnectionData;
-import org.eclipse.mylar.zest.core.viewers.IConnectionStyleProvider;
-import org.eclipse.mylar.zest.core.viewers.IEntityStyleProvider;
-import org.eclipse.mylar.zest.core.viewers.StaticGraphViewer;
+import org.eclipse.mylar.zest.core.viewer.EntityConnectionData;
+import org.eclipse.mylar.zest.core.viewer.IConnectionStyleProvider;
+import org.eclipse.mylar.zest.core.viewer.IEntityStyleProvider;
+import org.eclipse.mylar.zest.core.viewer.StaticGraphViewer;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 import org.eclipse.swt.graphics.Color;
 import org.eclipse.swt.graphics.Image;
@@ -29,12 +27,38 @@
 import org.eclipse.swt.widgets.Display;
 
 /**
- * Computes the colour of the labels and connections.  This is subclassed depending on the
- * view style used.
+ * Computes the colour of the labels and connections. This is subclassed
+ * depending on the view style used.
+ * 
  * @author Ian Bull
  */
-abstract class AbstractVisualizationLabelProvider implements VisualizationLabelProvider, IConnectionStyleProvider,
-		IEntityStyleProvider {
+abstract class AbstractVisualizationLabelProvider implements VisualizationLabelProvider, IConnectionStyleProvider, IEntityStyleProvider {
+
+	public Color LIGHT_BLUE = new Color(Display.getDefault(), 216, 228, 248);
+	public Color DARK_BLUE = new Color(Display.getDefault(), 1, 70, 122);
+	public Color GREY_BLUE = new Color(Display.getDefault(), 139, 150, 171);
+	public Color LIGHT_BLUE_CYAN = new Color(Display.getDefault(), 213, 243, 255);
+	public Color LIGHT_YELLOW = new Color(Display.getDefault(), 255, 255, 206);
+	public Color GRAY = new Color(Display.getDefault(), 128, 128, 128);
+	public Color LIGHT_GRAY = new Color(Display.getDefault(), 220, 220, 220);
+	public Color BLACK = new Color(Display.getDefault(), 0, 0, 0);
+	public Color RED = new Color(Display.getDefault(), 255, 0, 0);
+	public Color DARK_RED = new Color(Display.getDefault(), 127, 0, 0);
+	public Color ORANGE = new Color(Display.getDefault(), 255, 196, 0);
+	public Color YELLOW = new Color(Display.getDefault(), 255, 255, 0);
+	public Color GREEN = new Color(Display.getDefault(), 0, 255, 0);
+	public Color DARK_GREEN = new Color(Display.getDefault(), 0, 127, 0);
+	public Color LIGHT_GREEN = new Color(Display.getDefault(), 96, 255, 96);
+	public Color CYAN = new Color(Display.getDefault(), 0, 255, 255);
+	public Color BLUE = new Color(Display.getDefault(), 0, 0, 255);
+	public Color WHITE = new Color(Display.getDefault(), 255, 255, 255);
+	public Color EDGE_WEIGHT_0 = new Color(Display.getDefault(), 192, 192, 255);
+	public Color EDGE_WEIGHT_01 = new Color(Display.getDefault(), 64, 128, 225);
+	public Color EDGE_WEIGHT_02 = new Color(Display.getDefault(), 32, 32, 128);
+	public Color EDGE_WEIGHT_03 = new Color(Display.getDefault(), 0, 0, 128);
+	public Color EDGE_DEFAULT = new Color(Display.getDefault(), 64, 64, 128);
+	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;
@@ -46,13 +70,12 @@
 
 	/**
 	 * Create a new Abstract Visualization Label Provider
+	 * 
 	 * @param viewer
 	 */
 	public AbstractVisualizationLabelProvider(StaticGraphViewer viewer) {
 		this.viewer = viewer;
 	}
-	
-
 
 	public Image getImage(Object element) {
 		/*
@@ -74,7 +97,6 @@
 
 	}
 
-
 	public boolean isLabelProperty(Object element, String property) {
 
 		return false;
@@ -85,24 +107,31 @@
 	}
 
 	public Color getColor(Object rel) {
-		if (interestingRelationships.contains(rel))
-			return ZestPlugin.getDefault().getColor(IZestColorConstants.DARK_RED);
-		return ZestPlugin.getDefault().getColor(IZestColorConstants.LIGHT_GRAY);
+		if (interestingRelationships.contains(rel)) {
+			return DARK_RED;
+		}
+		return LIGHT_GRAY;
 	}
 
 	public int getConnectionStyle(Object rel) {
-		if (interestingRelationships.contains(rel))
+		if (interestingRelationships.contains(rel)) {
 			return ZestStyles.CONNECTIONS_DASH | ZestStyles.CONNECTIONS_DIRECTED;
+		}
 		return ZestStyles.CONNECTIONS_DIRECTED;
 	}
 
 	public Color getHighlightColor(Object rel) {
-		return ZestPlugin.getDefault().getColor(IZestColorConstants.DARK_RED);
+		return DARK_RED;
+	}
+
+	public Color getNodeHighlightColor(Object entity) {
+		return null;
 	}
 
 	public int getLineWidth(Object rel) {
-		if (interestingRelationships.contains(rel))
+		if (interestingRelationships.contains(rel)) {
 			return 3;
+		}
 		return 0;
 	}
 
@@ -115,16 +144,17 @@
 			if (entity == this.selected || entity == this.pinnedNode) {
 				// If this is the selected node return no colour. The default
 				// selected colour is fine.
-				return ZestPlugin.getDefault().getColor(IZestColorConstants.BLACK);
+				return BLACK;
 			} else if (interestingDependencies.contains(entity)) {
 				// If this entity is directly connected to the selected entity
-				return ZestPlugin.getDefault().getColor(IZestColorConstants.BLACK);
-			} else
-				return ZestPlugin.getDefault().getColor(IZestColorConstants.LIGHT_GRAY);
+				return BLACK;
+			} else {
+				return LIGHT_GRAY;
+			}
 
 		}
 
-		return ZestPlugin.getDefault().getColor(IZestColorConstants.BLACK);
+		return BLACK;
 	}
 
 	public Color getBorderHighlightColor(Object entity) {
@@ -142,11 +172,12 @@
 	public Color getBackgroundColour(Object entity) {
 
 		if (entity == this.selected || this.pinnedNode == entity) {
-			return ZestPlugin.getDefault().getColor(IZestColorConstants.NODE_DEFAULT_HIGHLIGHT);
+			return viewer.getGraphControl().DEFAULT_NODE_COLOR;
 		} else if (interestingDependencies.contains(entity)) {
-			return ZestPlugin.getDefault().getColor(IZestColorConstants.NODE_DEFAULT_ADJACENT);
-		} else
+			return viewer.getGraphControl().HIGHLIGHT_ADJACENT_COLOR;
+		} else {
 			return getDisabledColor();
+		}
 	}
 
 	public Color getForegroundColour(Object entity) {
@@ -154,15 +185,16 @@
 			if (entity == this.selected || this.pinnedNode == entity) {
 				// If this is the selected node return no colour. The default
 				// selected colour is fine.
-				return ZestPlugin.getDefault().getColor(IZestColorConstants.BLACK);
+				return BLACK;
 			} else if (interestingDependencies.contains(entity)) {
 				// If this entity is directly connected to the selected entity
-				return ZestPlugin.getDefault().getColor(IZestColorConstants.BLACK);
-			} else
-				return ZestPlugin.getDefault().getColor(IZestColorConstants.GRAY);
+				return BLACK;
+			} else {
+				return GRAY;
+			}
 
 		}
-		return ZestPlugin.getDefault().getColor(IZestColorConstants.BLACK);
+		return BLACK;
 	}
 
 	/*
@@ -175,13 +207,15 @@
 	}
 
 	protected BundleDescription getSelected() {
-		if (pinnedNode != null)
+		if (pinnedNode != null) {
 			return pinnedNode;
+		}
 		return selected;
 	}
 
 	/**
-	 * Sets the current selection 
+	 * Sets the current selection
+	 * 
 	 * @param root
 	 * @param currentSelection
 	 */
@@ -196,22 +230,24 @@
 		this.selected = null;
 
 		this.selected = (BundleDescription) currentSelection;
-		
+
 		interestingRelationships = new HashSet();
 		interestingDependencies = new HashSet();
-		if (this.selected != null || this.pinnedNode != null)
+		if (this.selected != null || this.pinnedNode != null) {
 			calculateInterestingDependencies(interestingRelationships, interestingDependencies);
-		
+		}
+
 		for (Iterator iter = interestingRelationships.iterator(); iter.hasNext();) {
 			Object entityConnectionData = iter.next();
 			viewer.reveal(entityConnectionData);
 		}
-		
+
 	}
 
 	/**
-	 * Calculate all the interesting dependencies.  Create an instance of this method to 
-	 * calculate the entities and relationships that should "stand-out" for this view.
+	 * Calculate all the interesting dependencies. Create an instance of this
+	 * method to calculate the entities and relationships that should
+	 * "stand-out" for this view.
 	 * 
 	 * @param interestingRels
 	 * @param interestingEntities
@@ -221,19 +257,27 @@
 	public Object[] getInterestingRelationships() {
 		return interestingRelationships.toArray();
 	}
-	
+
 	/**
 	 * Creates a colour for disabled lines.
+	 * 
 	 * @return
 	 */
 	private Color getDisabledColor() {
-		if (disabledColor == null)
+		if (disabledColor == null) {
 			disabledColor = new Color(Display.getDefault(), new RGB(225, 238, 255));
+		}
 		return disabledColor;
 	}
-	
+
+	public IFigure getTooltip(Object entity) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
 	/*
 	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
 	 */
 	public void dispose() {
@@ -243,4 +287,9 @@
 		}
 	}
 
+	public IFigure getNodeFigure(Object entity) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
 }
\ No newline at end of file
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 38f8615..1ffb9a3 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
@@ -1,14 +1,13 @@
 /*******************************************************************************
- * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC, Canada.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
+ * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC,
+ * Canada. All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Chisel Group, University of Victoria
- *     IBM CAS, IBM Toronto Lab
- *******************************************************************************/
+ * 
+ * Contributors: The Chisel Group, University of Victoria IBM CAS, IBM Toronto
+ * Lab
+ ******************************************************************************/
 package org.eclipse.pde.visualization.dependency.views;
 
 import java.util.ArrayList;
@@ -27,18 +26,18 @@
 /**
  * 
  * @author Ian Bull
- *
+ * 
  */
 public class AnalysisUtil {
-	
-	public static BundleDescription[] getPath(BundleDescription root, BundleDescription bundle ) {
+
+	public static BundleDescription[] getPath(BundleDescription root, BundleDescription bundle) {
 		LinkedList q = new LinkedList();
 		Set orderedSet = new HashSet();
 		LinkedList orderedList = new LinkedList();
 		q.add(root);
-		while(!q.isEmpty()) {
+		while (!q.isEmpty()) {
 			BundleDescription head = (BundleDescription) q.remove(0);
-			if ( !orderedSet.contains(head)) {
+			if (!orderedSet.contains(head)) {
 				orderedSet.add(head);
 				orderedList.add(head);
 				buildQueue(head, q);
@@ -47,128 +46,140 @@
 		BundleDescription[] path = modifiedDijkstra(orderedList, root, bundle);
 		return path;
 	}
-	
+
 	private static void buildQueue(BundleDescription root, LinkedList q) {
 		BundleDescription[] descriptions = getDependencies(root);
-		if ( descriptions == null || descriptions.length == 0 ) return;
+		if (descriptions == null || descriptions.length == 0) {
+			return;
+		}
 		for (int i = 0; i < descriptions.length; i++) {
 			q.add(descriptions[i]);
 		}
 	}
-	
-	
+
 	public static BundleDescription[] modifiedDijkstra(LinkedList q, BundleDescription s, BundleDescription t) {
 		HashMap previous = new HashMap();
 		HashMap dValues = new HashMap();
-		for( Iterator iter = q.iterator(); iter.hasNext(); ) {
-			dValues.put(iter.next(), new Integer(Integer.MAX_VALUE/ 10));
+		for (Iterator iter = q.iterator(); iter.hasNext();) {
+			dValues.put(iter.next(), new Integer(Integer.MAX_VALUE / 10));
 		}
 		dValues.put(s, new Integer(0));
-		
-		while ( !q.isEmpty() ) {
+
+		while (!q.isEmpty()) {
 			BundleDescription head = (BundleDescription) q.remove(0);
 			BundleDescription[] outgoing = getDependencies(head);
+			if (outgoing == null) {
+				// @tag PDE bug : I guess null in my array of dependencies 
+				continue;
+			}
 			for (int i = 0; i < outgoing.length; i++) {
 				BundleDescription v = outgoing[i];
-				if ( ((Integer)dValues.get(head)).intValue() + 1 < ((Integer)dValues.get(v)).intValue()) {
+				if (((Integer) dValues.get(head)).intValue() + 1 < ((Integer) dValues.get(v)).intValue()) {
 					previous.put(v, head);
-					dValues.put(v, new Integer(((Integer)dValues.get(head)).intValue() + 1));
+					dValues.put(v, new Integer(((Integer) dValues.get(head)).intValue() + 1));
 				}
 			}
 		}
 		LinkedList path = new LinkedList();
 		BundleDescription currentNode = t;
-		while ( previous.containsKey(currentNode) ) {
+		while (previous.containsKey(currentNode)) {
 			path.add(currentNode);
 			currentNode = (BundleDescription) previous.get(currentNode);
 		}
 		path.add(currentNode);
 		return (BundleDescription[]) path.toArray(new BundleDescription[path.size()]);
 	}
-	
+
 	public static BundleDescription[] getCallers(BundleDescription bundle, BundleDescription[] bundles) {
 		HashSet callers = new HashSet();
 		for (int i = 0; i < bundles.length; i++) {
 			HashSet hashSet = new HashSet();
 			hashSet.addAll(Arrays.asList(getDependencies(bundles[i])));
-			if ( hashSet.contains(bundle)) {
+			if (hashSet.contains(bundle)) {
 				callers.add(bundles[i]);
 			}
 		}
 		return (BundleDescription[]) callers.toArray(new BundleDescription[callers.size()]);
 	}
-	
+
 	/**
 	 * Finds all the callers for bundle within bunldes[]
+	 * 
 	 * @return
 	 */
 	public static BundleDescription[] getAllCallers(BundleDescription bundle, BundleDescription[] bundles) {
 		HashSet callers = new HashSet();
 		for (int i = 0; i < bundles.length; i++) {
 			HashSet hashSet = new HashSet();
-			hashSet.addAll(Arrays.asList(getPrerequisites(new BundleDescription[]{bundles[i]})));
-			if ( hashSet.contains(bundle)) {
+			hashSet.addAll(Arrays.asList(getPrerequisites(new BundleDescription[] { bundles[i] })));
+			if (hashSet.contains(bundle)) {
 				callers.add(bundles[i]);
 			}
 		}
 		return (BundleDescription[]) callers.toArray(new BundleDescription[callers.size()]);
 	}
-	
+
 	public static BundleDescription[] getPrerequisites(BundleDescription[] bundles) {
-		if (bundles == null || bundles.length == 0)
+		if (bundles == null || bundles.length == 0) {
 			return new BundleDescription[0];
+		}
 		Set reachable = new HashSet(bundles.length);
-		for (int i = 0; i < bundles.length; i++)
+		for (int i = 0; i < bundles.length; i++) {
 			addPrerequisites(bundles[i], reachable);
+		}
 		return (BundleDescription[]) reachable.toArray(new BundleDescription[reachable.size()]);
 	}
-	
-	private static Collection getExportedDescription( BundleDescription element, ExportPackageDescription[] exportedPackages ) {
+
+	private static Collection getExportedDescription(BundleDescription element, ExportPackageDescription[] exportedPackages) {
 		Set descriptionList = new HashSet();
-		for ( int i = 0; i < exportedPackages.length; i++ ) {
+		for (int i = 0; i < exportedPackages.length; i++) {
 			ExportPackageDescription exportedPackage = exportedPackages[i];
-			if ( !element.getLocation().equals(exportedPackage.getExporter().getLocation()))
+			if (!element.getLocation().equals(exportedPackage.getExporter().getLocation())) {
 				descriptionList.add(exportedPackage.getExporter());
+			}
 		}
 		return descriptionList;
 	}
 
-	
 	public static BundleDescription[] getDependencies(BundleDescription bundle) {
-		if ( bundle == null ) return null;
-		
-			
+
+		if (bundle == null) {
+			return null;
+		}
+
 		Collection c = AnalysisUtil.getDescription(bundle.getRequiredBundles());
 		c.addAll(getExportedDescription(bundle, bundle.getResolvedImports()));
 		/*
-		Iterator iterator = c.iterator();
-		while (iterator.hasNext() ) {
-			if ( iterator.next() == null ) iterator.remove();
-		}
-		*/
+		 * Iterator iterator = c.iterator(); while (iterator.hasNext() ) { if (
+		 * iterator.next() == null ) iterator.remove(); }
+		 */
 
 		return (BundleDescription[]) c.toArray(new BundleDescription[c.size()]);
 	}
 
 	private static void addPrerequisites(BundleDescription bundle, Set reachable) {
-		if (reachable.contains(bundle))
+		if (reachable.contains(bundle)) {
 			return;
+		}
 		reachable.add(bundle);
-		
-		BundleDescription[] dependencies =getDependencies(bundle);
-		for (int i = 0; i < dependencies.length; i++) {
 
+		BundleDescription[] dependencies = getDependencies(bundle);
+		for (int i = 0; i < dependencies.length; i++) {
+			if (dependencies[i] == null) {
+				//@tag PDE bug : I guess null in my array of dependencies
+				continue;
+			}
 			addPrerequisites(dependencies[i], reachable);
 		}
 	}
-	
-	public static Collection getDescription( BundleSpecification[] specifications ) {
+
+	public static Collection getDescription(BundleSpecification[] specifications) {
 		ArrayList descriptionList = new ArrayList();
-		for ( int i = 0; i < specifications.length; i++ ) {
+		for (int i = 0; i < specifications.length; i++) {
 			BundleSpecification specification = specifications[i];
 			descriptionList.add(specification.getSupplier());
 		}
 		return descriptionList;
 	}
-	
+
 }
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 2e85704..e9b2d95 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
@@ -1,24 +1,23 @@
 /*******************************************************************************
- * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC, Canada.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
+ * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC,
+ * Canada. All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Chisel Group, University of Victoria
- *     IBM CAS, IBM Toronto Lab
- *******************************************************************************/
+ * 
+ * Contributors: The Chisel Group, University of Victoria IBM CAS, IBM Toronto
+ * Lab
+ ******************************************************************************/
 package org.eclipse.pde.visualization.dependency.views;
 
 import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.mylar.zest.core.viewers.IGraphEntityContentProvider;
+import org.eclipse.mylar.zest.core.viewer.IGraphEntityContentProvider;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 
 /**
  * 
  * @author Ian Bull
- *
+ * 
  */
 class GraphContentProvider implements IGraphEntityContentProvider {
 
@@ -27,7 +26,7 @@
 	private BundleDescription[] getDependencies(BundleDescription bundle) {
 		if (bundle != null) {
 			return AnalysisUtil.getPrerequisites(new BundleDescription[] { currentBundle });
-		} 
+		}
 		return new BundleDescription[0];
 	}
 
diff --git a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/HighlightDependencyLableProvider.java b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/HighlightDependencyLableProvider.java
index 05356be..0925395 100644
--- a/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/HighlightDependencyLableProvider.java
+++ b/visualization/plugins/org.eclipse.pde.visualization.dependency/src/org/eclipse/pde/visualization/dependency/views/HighlightDependencyLableProvider.java
@@ -1,26 +1,25 @@
 /*******************************************************************************
- * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC, Canada.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
+ * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC,
+ * Canada. All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Chisel Group, University of Victoria
- *     IBM CAS, IBM Toronto Lab
- *******************************************************************************/
+ * 
+ * Contributors: The Chisel Group, University of Victoria IBM CAS, IBM Toronto
+ * Lab
+ ******************************************************************************/
 package org.eclipse.pde.visualization.dependency.views;
 
 import java.util.HashSet;
 
-import org.eclipse.mylar.zest.core.viewers.EntityConnectionData;
-import org.eclipse.mylar.zest.core.viewers.StaticGraphViewer;
+import org.eclipse.mylar.zest.core.viewer.EntityConnectionData;
+import org.eclipse.mylar.zest.core.viewer.StaticGraphViewer;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 
 /**
  * 
  * @author Ian Bull
- *
+ * 
  */
 class HighlightDependencyLableProvider extends AbstractVisualizationLabelProvider {
 
@@ -28,8 +27,7 @@
 		super(viewer);
 	}
 
-	protected void calculateInterestingDependencies(HashSet interestingRels,
-			HashSet interestingEntities) {
+	protected void calculateInterestingDependencies(HashSet interestingRels, HashSet interestingEntities) {
 
 		if (getSelected() != null) {
 			BundleDescription[] descriptions = AnalysisUtil.getDependencies(this.getSelected());
@@ -38,7 +36,7 @@
 				interestingRels.add(entityConnectionData);
 				interestingEntities.add(descriptions[i]);
 			}
-		} 
+		}
 	}
 
 }
\ No newline at end of file
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 e9277b2..009c193 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
@@ -1,45 +1,42 @@
 /*******************************************************************************
- * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC, Canada.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
+ * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC,
+ * Canada. All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Chisel Group, University of Victoria
- *     IBM CAS, IBM Toronto Lab
- *******************************************************************************/
+ * 
+ * Contributors: The Chisel Group, University of Victoria IBM CAS, IBM Toronto
+ * Lab
+ ******************************************************************************/
 package org.eclipse.pde.visualization.dependency.views;
 
 import java.util.Arrays;
 import java.util.HashSet;
 
-import org.eclipse.mylar.zest.core.viewers.EntityConnectionData;
-import org.eclipse.mylar.zest.core.viewers.StaticGraphViewer;
+import org.eclipse.mylar.zest.core.viewer.EntityConnectionData;
+import org.eclipse.mylar.zest.core.viewer.StaticGraphViewer;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 
 /**
  * 
  * @author Ian Bull
- *
+ * 
  */
-public class PathDependencyAnalysis extends
-		AbstractVisualizationLabelProvider {
+public class PathDependencyAnalysis extends AbstractVisualizationLabelProvider {
 
 	public PathDependencyAnalysis(StaticGraphViewer viewer) {
 		super(viewer);
 	}
 
-	protected void calculateInterestingDependencies(
-			HashSet interestingRels, HashSet interestingEntities) {
-		
-		if ( this.getSelected() != null ) { 
-			 BundleDescription[] descriptions = AnalysisUtil.getAllCallers(this.getSelected(), AnalysisUtil.getPrerequisites(new BundleDescription[]{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]);
-					 interestingRels.add(entityConnectionData);
-				 }
+	protected void calculateInterestingDependencies(HashSet interestingRels, HashSet interestingEntities) {
+
+		if (this.getSelected() != null) {
+			BundleDescription[] descriptions = AnalysisUtil.getAllCallers(this.getSelected(), AnalysisUtil.getPrerequisites(new BundleDescription[] { 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]);
+					interestingRels.add(entityConnectionData);
+				}
 			}
 			interestingEntities.addAll(Arrays.asList(descriptions));
 		}
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 33cb1ee..14e5cf7 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
@@ -1,14 +1,13 @@
 /*******************************************************************************
- * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC, Canada.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
+ * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC,
+ * Canada. All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Chisel Group, University of Victoria
- *     IBM CAS, IBM Toronto Lab
- *******************************************************************************/
+ * 
+ * Contributors: The Chisel Group, University of Victoria IBM CAS, IBM Toronto
+ * Lab
+ ******************************************************************************/
 package org.eclipse.pde.visualization.dependency.views;
 
 import java.util.Stack;
@@ -25,11 +24,11 @@
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.window.Window;
 import org.eclipse.mylar.zest.core.ZestStyles;
-import org.eclipse.mylar.zest.core.viewers.AbstractZoomableViewer;
-import org.eclipse.mylar.zest.core.viewers.IGraphEntityContentProvider;
-import org.eclipse.mylar.zest.core.viewers.IZoomableWorkbenchPart;
-import org.eclipse.mylar.zest.core.viewers.StaticGraphViewer;
-import org.eclipse.mylar.zest.core.viewers.ZoomContributionViewItem;
+import org.eclipse.mylar.zest.core.viewer.AbstractZoomableViewer;
+import org.eclipse.mylar.zest.core.viewer.IGraphEntityContentProvider;
+import org.eclipse.mylar.zest.core.viewer.IZoomableWorkbenchPart;
+import org.eclipse.mylar.zest.core.viewer.StaticGraphViewer;
+import org.eclipse.mylar.zest.core.viewer.ZoomContributionViewItem;
 import org.eclipse.mylar.zest.layouts.LayoutAlgorithm;
 import org.eclipse.mylar.zest.layouts.LayoutStyles;
 import org.eclipse.mylar.zest.layouts.algorithms.CompositeLayoutAlgorithm;
@@ -75,6 +74,8 @@
 	private VisualizationLabelProvider currentLabelProvider;
 	private IGraphEntityContentProvider contentProvider;
 	private Object pinnedNode = null;
+	private ZoomContributionViewItem contextZoomContributionViewItem;
+	private ZoomContributionViewItem toolbarZoomContributionViewItem;
 
 	/**
 	 * The constructor.
@@ -100,17 +101,17 @@
 		viewer.setLabelProvider(this.currentLabelProvider);
 		viewer.setInput(null);
 		viewer.setConnectionStyle(ZestStyles.CONNECTIONS_DIRECTED);
-		viewer.setLayoutAlgorithm(new CompositeLayoutAlgorithm(LayoutStyles.NO_LAYOUT_NODE_RESIZING,
-				new LayoutAlgorithm[] { new TreeLayoutAlgorithm(LayoutStyles.NO_LAYOUT_NODE_RESIZING),
-						new HorizontalShift(LayoutStyles.NO_LAYOUT_NODE_RESIZING) }));
+		viewer.setLayoutAlgorithm(new CompositeLayoutAlgorithm(LayoutStyles.NO_LAYOUT_NODE_RESIZING, new LayoutAlgorithm[] { new TreeLayoutAlgorithm(LayoutStyles.NO_LAYOUT_NODE_RESIZING), new HorizontalShift(LayoutStyles.NO_LAYOUT_NODE_RESIZING) }));
 
 		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
 
 			public void selectionChanged(SelectionChangedEvent event) {
-				PluginVisualizationView.this.selectionChanged(((IStructuredSelection) event.getSelection())
-						.getFirstElement());
+				PluginVisualizationView.this.selectionChanged(((IStructuredSelection) event.getSelection()).getFirstElement());
 			}
 		});
+		toolbarZoomContributionViewItem = new ZoomContributionViewItem(this);
+		contextZoomContributionViewItem = new ZoomContributionViewItem(this);
+
 		makeActions();
 		hookContextMenu();
 		fillToolBar();
@@ -124,19 +125,23 @@
 	 */
 	void setDependencyPath(boolean dependencyPath, String dependencyPathType) {
 		// If the viewer has not been created, return
-		if (viewer == null)
+		if (viewer == null) {
 			return;
+		}
 
 		if (dependencyPath) {
 			// If dependencyPath is set to true set the
 			// ShortestPathDependencyAnalyis label provider
 
-			if (dependencyPathType == VisualizationForm.Show_Smart_Path)
+			if (dependencyPathType == VisualizationForm.Show_Smart_Path) {
 				this.currentLabelProvider = new SmartPathDependencyAnalysis(this.viewer);
-			if (dependencyPathType == VisualizationForm.Show_All_Paths)
+			}
+			if (dependencyPathType == VisualizationForm.Show_All_Paths) {
 				this.currentLabelProvider = new PathDependencyAnalysis(this.viewer);
-			if (dependencyPathType == VisualizationForm.Show_Shortest_Path)
+			}
+			if (dependencyPathType == VisualizationForm.Show_Shortest_Path) {
 				this.currentLabelProvider = new ShortestPathDependencyAnalysis(this.viewer);
+			}
 
 			viewer.setLabelProvider(this.currentLabelProvider);
 
@@ -151,8 +156,7 @@
 		this.currentLabelProvider.setPinnedNode((BundleDescription) pinnedNode);
 		if (viewer.getSelection() != null) {
 			viewer.setSelection(viewer.getSelection());
-			this.currentLabelProvider.setCurrentSelection(currentNode, ((IStructuredSelection) viewer.getSelection())
-					.getFirstElement());
+			this.currentLabelProvider.setCurrentSelection(currentNode, ((IStructuredSelection) viewer.getSelection()).getFirstElement());
 		}
 	}
 
@@ -172,6 +176,8 @@
 	 */
 	private void fillToolBar() {
 		IActionBars bars = getViewSite().getActionBars();
+		bars.getMenuManager().add(toolbarZoomContributionViewItem);
+
 		fillLocalToolBar(bars.getToolBarManager());
 
 	}
@@ -286,8 +292,7 @@
 	private void pinNode(Object objectToPin) {
 		this.currentLabelProvider.setPinnedNode((BundleDescription) objectToPin);
 		this.pinnedNode = objectToPin;
-		this.currentLabelProvider.setCurrentSelection(this.currentNode, ((IStructuredSelection) viewer.getSelection())
-				.getFirstElement());
+		this.currentLabelProvider.setCurrentSelection(this.currentNode, ((IStructuredSelection) viewer.getSelection()).getFirstElement());
 		this.viewer.update(contentProvider.getElements(currentNode), null);
 	}
 
@@ -297,14 +302,18 @@
 	private void hookContextMenu() {
 		MenuManager menuMgr = new MenuManager("#PopupMenu");
 		menuMgr.setRemoveAllWhenShown(true);
+		fillContextMenu(menuMgr);
+
 		menuMgr.addMenuListener(new IMenuListener() {
 			public void menuAboutToShow(IMenuManager manager) {
 				PluginVisualizationView.this.fillContextMenu(manager);
+
 			}
 		});
 		Menu menu = menuMgr.createContextMenu(viewer.getControl());
 		viewer.getControl().setMenu(menu);
 		getSite().registerContextMenu(menuMgr, viewer);
+
 	}
 
 	/**
@@ -336,8 +345,7 @@
 		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
 		manager.add(historyAction);
 		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-		ZoomContributionViewItem contributionViewItem = new ZoomContributionViewItem(this.getSite().getPage());
-		manager.add(contributionViewItem);
+		manager.add(contextZoomContributionViewItem);
 	}
 
 	/**
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 2158821..09316f1 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
@@ -1,45 +1,42 @@
 /*******************************************************************************
- * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC, Canada.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
+ * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC,
+ * Canada. All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Chisel Group, University of Victoria
- *     IBM CAS, IBM Toronto Lab
- *******************************************************************************/
+ * 
+ * Contributors: The Chisel Group, University of Victoria IBM CAS, IBM Toronto
+ * Lab
+ ******************************************************************************/
 package org.eclipse.pde.visualization.dependency.views;
 
 import java.util.Arrays;
 import java.util.HashSet;
 
-import org.eclipse.mylar.zest.core.viewers.EntityConnectionData;
-import org.eclipse.mylar.zest.core.viewers.StaticGraphViewer;
+import org.eclipse.mylar.zest.core.viewer.EntityConnectionData;
+import org.eclipse.mylar.zest.core.viewer.StaticGraphViewer;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 
 /**
  * 
  * @author Ian Bull
  */
-public class ShortestPathDependencyAnalysis extends
-		AbstractVisualizationLabelProvider {
+public class ShortestPathDependencyAnalysis extends AbstractVisualizationLabelProvider {
 
 	public ShortestPathDependencyAnalysis(StaticGraphViewer viewer) {
 		super(viewer);
 	}
 
-	protected void calculateInterestingDependencies(
-			HashSet interestingRels, HashSet interestingEntities) {
-		
-		if ( this.getSelected() != null ) { 
-			 BundleDescription[] descriptions = AnalysisUtil.getPath(this.rootNode, this.getSelected());
-			 
-			 for (int i = 0; i < descriptions.length; i++) {
-				 for ( int j = 0; j < descriptions.length; j++ ) {
-					 EntityConnectionData entityConnectionData = new EntityConnectionData(descriptions[i],descriptions[j]);
-					 interestingRels.add(entityConnectionData);
-				 }
+	protected void calculateInterestingDependencies(HashSet interestingRels, HashSet interestingEntities) {
+
+		if (this.getSelected() != null) {
+			BundleDescription[] descriptions = AnalysisUtil.getPath(this.rootNode, this.getSelected());
+
+			for (int i = 0; i < descriptions.length; i++) {
+				for (int j = 0; j < descriptions.length; j++) {
+					EntityConnectionData entityConnectionData = new EntityConnectionData(descriptions[i], descriptions[j]);
+					interestingRels.add(entityConnectionData);
+				}
 			}
 			interestingEntities.addAll(Arrays.asList(descriptions));
 		}
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 64c5cfe..34e176e 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
@@ -1,46 +1,48 @@
 /*******************************************************************************
- * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC, Canada.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
+ * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC,
+ * Canada. All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Chisel Group, University of Victoria
- *     IBM CAS, IBM Toronto Lab
- *******************************************************************************/
+ * 
+ * Contributors: The Chisel Group, University of Victoria IBM CAS, IBM Toronto
+ * Lab
+ ******************************************************************************/
 package org.eclipse.pde.visualization.dependency.views;
 
 import java.util.Arrays;
 import java.util.HashSet;
 
-import org.eclipse.mylar.zest.core.viewers.EntityConnectionData;
-import org.eclipse.mylar.zest.core.viewers.StaticGraphViewer;
+import org.eclipse.mylar.zest.core.viewer.EntityConnectionData;
+import org.eclipse.mylar.zest.core.viewer.StaticGraphViewer;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 
 /**
  * 
- * This computues the nodes and edges in the "smart" path.  The smart path consists of all
- * your direct dependencies that have paths to the selected nodes.
+ * This computues the nodes and edges in the "smart" path. The smart path
+ * consists of all your direct dependencies that have paths to the selected
+ * nodes.
  * 
  * @author Ian Bull
- *
+ * 
  */
 public class SmartPathDependencyAnalysis extends AbstractVisualizationLabelProvider {
 
-	
 	/**
 	 * SmartPathDependencyAnalysis constructor
-	 * @param viewer The GraphViewer
+	 * 
+	 * @param viewer
+	 *            The GraphViewer
 	 */
 	public SmartPathDependencyAnalysis(StaticGraphViewer viewer) {
 		super(viewer);
 	}
 
-
 	/*
 	 * (non-Javadoc)
-	 * @see org.eclipse.pde.visualization.views.AbstractVisualizationLabelProvider#calculateInterestingDependencies(java.util.HashSet, java.util.HashSet)
+	 * 
+	 * @see org.eclipse.pde.visualization.views.AbstractVisualizationLabelProvider#calculateInterestingDependencies(java.util.HashSet,
+	 *      java.util.HashSet)
 	 */
 	protected void calculateInterestingDependencies(HashSet interestingRels, HashSet interestingEntities) {
 
@@ -74,7 +76,7 @@
 					}
 				}
 				interestingEntities.addAll(Arrays.asList(path));
-				
+
 			}
 			interestingEntities.add(this.rootNode);
 		}
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 44b5d18..96a5a67 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
@@ -1,17 +1,16 @@
 /*******************************************************************************
- * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC, Canada.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
+ * Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC,
+ * Canada. All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     The Chisel Group, University of Victoria
- *     IBM CAS, IBM Toronto Lab
- *******************************************************************************/
+ * 
+ * Contributors: The Chisel Group, University of Victoria IBM CAS, IBM Toronto
+ * Lab
+ ******************************************************************************/
 package org.eclipse.pde.visualization.dependency.views;
 
-import org.eclipse.mylar.zest.core.viewers.StaticGraphViewer;
+import org.eclipse.mylar.zest.core.viewer.StaticGraphViewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -38,8 +37,8 @@
 /* package */class VisualizationForm {
 
 	/*
-	 * These are all the strings used in the form.  These can probably be abstracted
-	 * for internationalization
+	 * These are all the strings used in the form. These can probably be
+	 * abstracted for internationalization
 	 */
 	private static String Plugin_Dependency_Analysis = "Plug-in Dependency Analysis";
 	private static String Controls = "Controls";
@@ -53,9 +52,9 @@
 	private static String Java3 = "Java 3.0 and above";
 	private static String Java2 = "Java 2.0 and above";
 	private static String Java1 = "Java 1.0 and above";
-	
+
 	/*
-	 * These are strings and used to determine which radio button is selected 
+	 * These are strings and used to determine which radio button is selected
 	 */
 	public static String Show_All_Paths = "Show All Paths";
 	public static String Show_Smart_Path = "Show Smart Path";
@@ -68,7 +67,7 @@
 	private FormToolkit toolkit;
 	private StaticGraphViewer viewer;
 	private PluginVisualizationView view;
-	
+
 	/*
 	 * Some buttons that we need to access in local methods
 	 */
@@ -76,7 +75,7 @@
 	private Button showShortestPath = null;
 	private Button showAllPaths = null;
 	private Button dependencyAnalysis = null;
-	
+
 	private String currentPathAnalysis = null;
 
 	/**
@@ -103,7 +102,7 @@
 		SashForm sash = new SashForm(parent, SWT.NONE);
 		sash.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER);
 		this.toolkit.paintBordersFor(parent);
-		
+
 		sash.setLayout(new GridLayout());
 		createGraphSection(sash);
 		createControlsSection(sash);
@@ -125,27 +124,36 @@
 		section.setClient(composite);
 	}
 
-	
 	private void setDependencyPath(boolean enabled) {
-		if ( showAllPaths.getEnabled() != enabled ) showAllPaths.setEnabled(enabled);
-		if ( showSmartPath.getEnabled() != enabled ) showSmartPath.setEnabled(enabled);
-		if ( showShortestPath.getEnabled() != enabled ) showShortestPath.setEnabled(enabled);
+		if (showAllPaths.getEnabled() != enabled) {
+			showAllPaths.setEnabled(enabled);
+		}
+		if (showSmartPath.getEnabled() != enabled) {
+			showSmartPath.setEnabled(enabled);
+		}
+		if (showShortestPath.getEnabled() != enabled) {
+			showShortestPath.setEnabled(enabled);
+		}
 
 		if (!enabled) {
 			showAllPaths.setSelection(false);
 			showSmartPath.setSelection(false);
 			showShortestPath.setSelection(false);
-		}
-		else {
-			if ( currentPathAnalysis == Show_All_Paths ) showAllPaths.setSelection(true);
-			else if (currentPathAnalysis == Show_Smart_Path ) showSmartPath.setSelection(true);
-			else if (currentPathAnalysis == Show_Shortest_Path ) showShortestPath.setSelection(true);
+		} else {
+			if (currentPathAnalysis == Show_All_Paths) {
+				showAllPaths.setSelection(true);
+			} else if (currentPathAnalysis == Show_Smart_Path) {
+				showSmartPath.setSelection(true);
+			} else if (currentPathAnalysis == Show_Shortest_Path) {
+				showShortestPath.setSelection(true);
+			}
 		}
 		view.setDependencyPath(enabled, currentPathAnalysis);
 	}
-	
+
 	/**
 	 * Creates the section holding the analysis controls.
+	 * 
 	 * @param parent
 	 */
 	private void createControlsSection(Composite parent) {
@@ -158,15 +166,15 @@
 		dependencyAnalysis.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false));
 		dependencyAnalysis.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
-				setDependencyPath(((Button)e.getSource()).getSelection());
+				setDependencyPath(((Button) e.getSource()).getSelection());
 			}
 		});
-		
-		Section dependencyOptions = this.toolkit.createSection(controlComposite, Section.EXPANDED | Section.NO_TITLE );
+
+		Section dependencyOptions = this.toolkit.createSection(controlComposite, Section.EXPANDED | Section.NO_TITLE);
 		dependencyOptions.setLayout(new FillLayout());
 		Composite dependencyOptionsComposite = this.toolkit.createComposite(dependencyOptions);
 		dependencyOptionsComposite.setLayout(new TableWrapLayout());
-		
+
 		showSmartPath = this.toolkit.createButton(dependencyOptionsComposite, Show_Smart_Path, SWT.RADIO);
 		showSmartPath.setLayoutData(new TableWrapData(TableWrapData.FILL));
 		showSmartPath.addSelectionListener(new SelectionAdapter() {
@@ -175,7 +183,7 @@
 				view.setDependencyPath(dependencyAnalysis.getSelection(), currentPathAnalysis);
 			}
 		});
-		
+
 		showAllPaths = this.toolkit.createButton(dependencyOptionsComposite, Show_All_Paths, SWT.RADIO);
 		showAllPaths.setLayoutData(new TableWrapData(TableWrapData.FILL));
 		showAllPaths.addSelectionListener(new SelectionAdapter() {
@@ -184,7 +192,7 @@
 				view.setDependencyPath(dependencyAnalysis.getSelection(), currentPathAnalysis);
 			}
 		});
-		
+
 		showShortestPath = this.toolkit.createButton(dependencyOptionsComposite, Show_Shortest_Path, SWT.RADIO);
 		showShortestPath.setLayoutData(new TableWrapData(TableWrapData.FILL));
 		showShortestPath.addSelectionListener(new SelectionAdapter() {
@@ -193,20 +201,21 @@
 				view.setDependencyPath(dependencyAnalysis.getSelection(), currentPathAnalysis);
 			}
 		});
-		
+
 		currentPathAnalysis = Show_Smart_Path;
-		
+
 		setDependencyPath(false);
 		dependencyOptions.setClient(dependencyOptionsComposite);
-		
+
 		Button filterEnabled = this.toolkit.createButton(controlComposite, Filter_Enanled_Plugins, SWT.CHECK);
 		filterEnabled.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false));
 		createEEAnalysisSection(controlComposite);
 		controls.setClient(controlComposite);
 	}
-	
+
 	/**
 	 * Creates the section holding the Execution Environment Controls
+	 * 
 	 * @param parent
 	 */
 	private void createEEAnalysisSection(Composite parent) {
@@ -216,17 +225,17 @@
 		Composite eeAnalysisControls = this.toolkit.createComposite(eeAnalysis);
 		eeAnalysisControls.setLayout(new TableWrapLayout());
 		this.toolkit.createLabel(eeAnalysisControls, Execution_Environment_Instructions, SWT.WRAP);
-		Button ee6 = this.toolkit.createButton( eeAnalysisControls, Java6, SWT.RADIO);
+		Button ee6 = this.toolkit.createButton(eeAnalysisControls, Java6, SWT.RADIO);
 		ee6.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		Button ee5 = this.toolkit.createButton( eeAnalysisControls, Java5, SWT.RADIO);
+		Button ee5 = this.toolkit.createButton(eeAnalysisControls, Java5, SWT.RADIO);
 		ee5.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		Button ee4 = this.toolkit.createButton( eeAnalysisControls, Java4, SWT.RADIO);
+		Button ee4 = this.toolkit.createButton(eeAnalysisControls, Java4, SWT.RADIO);
 		ee4.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		Button ee3 = this.toolkit.createButton( eeAnalysisControls, Java3, SWT.RADIO);
+		Button ee3 = this.toolkit.createButton(eeAnalysisControls, Java3, SWT.RADIO);
 		ee3.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		Button ee2 = this.toolkit.createButton( eeAnalysisControls, Java2, SWT.RADIO);
+		Button ee2 = this.toolkit.createButton(eeAnalysisControls, Java2, SWT.RADIO);
 		ee2.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		Button ee1 = this.toolkit.createButton( eeAnalysisControls, Java1, SWT.RADIO);
+		Button ee1 = this.toolkit.createButton(eeAnalysisControls, Java1, SWT.RADIO);
 		ee1.setLayoutData(new TableWrapData(TableWrapData.FILL));
 		eeAnalysis.setClient(eeAnalysisControls);
 	}
@@ -239,8 +248,7 @@
 	public StaticGraphViewer getGraphViewer() {
 		return viewer;
 	}
-	
-	
+
 	/**
 	 * Gets the form we created.
 	 */