NEW - bug 200066: [pde viz] Highlight cycles in Graph
https://bugs.eclipse.org/bugs/show_bug.cgi?id=200066
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 e3e9cd4..5c7087b 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
@@ -346,6 +346,13 @@
viewer.setInput(bundle);
visualizationForm.setFocusedNodeName(getName(bundle));
Iterator nodes = viewer.getGraphControl().getNodes().iterator();
+ if ( viewer.getGraphControl().getNodes().size() > 0 ) {
+ visualizationForm.enableSearchBox(true);
+ }
+ else {
+ visualizationForm.enableSearchBox(false);
+ }
+ visualizationForm.enableSearchBox(true);
Graph graph = viewer.getGraphControl();
Dimension centre = new Dimension(graph.getBounds().width / 2, graph.getBounds().height / 2);
while (nodes.hasNext()) {
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 a99d6ac..aa07d91 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
@@ -93,6 +93,7 @@
private SashForm sash;
private Text searchBox;
private ToolItem cancelIcon;
+ private Label searchLabel;
/**
* Creates the form.
@@ -105,7 +106,28 @@
this.view = view;
form = this.toolkit.createScrolledForm(parent);
managedForm = new ManagedForm(this.toolkit, this.form);
-
+ createHeaderRegion(form);
+ FillLayout layout = new FillLayout();
+ layout.marginHeight = 10;
+ layout.marginWidth = 4;
+ form.getBody().setLayout(layout);
+
+ this.toolkit.decorateFormHeading(this.form.getForm());
+ createSash(form.getBody());
+ }
+
+ public void setFocusedNodeName(String nodeName) {
+ form.setText(Plugin_Dependency_Analysis+ ": " + nodeName);
+ searchBox.setText("");
+ form.reflow(true);
+ }
+
+ /**
+ * Creates the header region of the form, with the search dialog, background
+ * and title. It also sets up the error reporting
+ * @param form
+ */
+ private void createHeaderRegion(ScrolledForm form) {
Composite headClient = new Composite(form.getForm().getHead(),
SWT.NULL);
GridLayout glayout = new GridLayout();
@@ -113,7 +135,7 @@
glayout.numColumns = 3;
headClient.setLayout(glayout);
headClient.setBackgroundMode(SWT.INHERIT_DEFAULT);
- Label searchLabel = new Label(headClient, SWT.NONE);
+ searchLabel = new Label(headClient, SWT.NONE);
searchLabel.setText("Search:");
searchBox = new Text(headClient, toolkit.getBorderStyle() | SWT.SEARCH | SWT.CANCEL);
GridData data = new GridData();
@@ -121,7 +143,6 @@
searchBox.setLayoutData(data);
ToolBar cancelBar = new ToolBar(headClient, SWT.NONE);
cancelIcon = new ToolItem(cancelBar, SWT.NONE);
- //cancelIcon = new Button(headClient, SWT.NONE);
cancelIcon.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
searchBox.setText("");
@@ -143,25 +164,13 @@
});
cancelIcon.setEnabled(false);
-
- FillLayout layout = new FillLayout();
- layout.marginHeight = 10;
- layout.marginWidth = 4;
- form.getBody().setLayout(layout);
form.setText(Plugin_Dependency_Analysis);
form.setImage(Activator.getDefault().getImageRegistry().get(Activator.REQ_PLUGIN_OBJ));
- this.toolkit.decorateFormHeading(this.form.getForm());
- createSash(form.getBody());
- }
-
- public void setFocusedNodeName(String nodeName) {
- form.setText(Plugin_Dependency_Analysis+ ": " + nodeName);
- searchBox.setText("");
- form.reflow(true);
+ enableSearchBox(false);
}
/**
- * Creates the sashform to seperate the graph from the controls.
+ * Creates the sashform to separate the graph from the controls.
*
* @param parent
*/
@@ -356,5 +365,10 @@
public Text getSearchBox() {
return this.searchBox;
}
+
+ public void enableSearchBox(boolean enable) {
+ this.searchLabel.setEnabled(enable);
+ this.searchBox.setEnabled(enable);
+ }
}