[197315] Refresh of the Extensions Section doesn't behave correctly
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractExtensionsSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractExtensionsSection.java
index 8cff6f9..4abc23d 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractExtensionsSection.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractExtensionsSection.java
@@ -412,13 +412,21 @@
extensionDetailsViewer.setInput(null);
tree.removeAll();
+ addButton.setEnabled(!isReadOnly);
+
extensionTreeViewer.setInput(input);
if (tree.getSelectionCount() == 0 && tree.getItemCount() > 0)
{
TreeItem treeItem = tree.getItem(0);
extensionTreeViewer.setSelection(new StructuredSelection(treeItem.getData()));
}
- removeButton.setEnabled(tree.getSelectionCount() > 0);
+ removeButton.setEnabled(tree.getSelectionCount() > 0 && !isReadOnly);
+ // Bugzilla 197315. Make this bulletproof for maintenance release.
+ Control detailsViewerControl = extensionDetailsViewer.getControl();
+ if (detailsViewerControl != null && !detailsViewerControl.isDisposed())
+ {
+ detailsViewerControl.setEnabled(!isReadOnly);
+ }
}
setListenerEnabled(true);
}
@@ -575,7 +583,7 @@
}
}
}
- removeButton.setEnabled(isDeleteEnabled);
+ removeButton.setEnabled(isDeleteEnabled && !isReadOnly);
}
}