[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);
     }
   }