/** @generated */
  protected void handleElementChanged(
      ResourceSetInfo info, Resource changedResource, IProgressMonitor monitor) {
    IFile file = WorkspaceSynchronizer.getFile(changedResource);
    if (file != null) {
      try {
        file.refreshLocal(IResource.DEPTH_INFINITE, monitor);
      } catch (CoreException ex) {
        ComponentsDiagramEditorPlugin.getInstance()
            .logError(Messages.ComponentsDocumentProvider_handleElementContentChanged, ex);
        // Error message to log was initially taken from
        // org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.FileDocumentProvider_handleElementContentChanged
      }
    }
    changedResource.unload();

    fireElementContentAboutToBeReplaced(info.getEditorInput());
    removeUnchangedElementListeners(info.getEditorInput(), info);
    info.fStatus = null;
    try {
      setDocumentContent(info.fDocument, info.getEditorInput());
    } catch (CoreException e) {
      info.fStatus = e.getStatus();
    }
    if (!info.fCanBeSaved) {
      info.setModificationStamp(computeModificationStamp(info));
    }
    addUnchangedElementListeners(info.getEditorInput(), info);
    fireElementContentReplaced(info.getEditorInput());
  }
 /** @generated */
 public boolean isReadOnly(Object element) {
   ResourceSetInfo info = getResourceSetInfo(element);
   if (info != null) {
     if (info.isUpdateCache()) {
       try {
         updateCache(element);
       } catch (CoreException ex) {
         ComponentsDiagramEditorPlugin.getInstance()
             .logError(Messages.ComponentsDocumentProvider_isModifiable, ex);
         // Error message to log was initially taken from
         // org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide.internal.l10n.EditorMessages.StorageDocumentProvider_isModifiable
       }
     }
     return info.isReadOnly();
   }
   return super.isReadOnly(element);
 }