Provides a framework to support Eclipse resource change events, such as those that relate to {@link org.eclipse.core.resources.IFile IFile} and {@link org.eclipse.core.resources.IMarker IMarker}.

## Listening to file resource changes

To listen to changes in files, add an {@link org.eclipse.gmf.runtime.common.ui.resources.IFileObserver IFileObserver} to the {@link org.eclipse.gmf.runtime.common.ui.resources.FileChangeManager#getInstance() singleton instance} of the {@link org.eclipse.gmf.runtime.common.ui.resources.FileChangeManager FileChangeManager}, which implements {@link org.eclipse.gmf.runtime.common.ui.resources.IFileChangeManager IFileChangeManager}. Depending on the {@link org.eclipse.gmf.runtime.common.ui.resources.IFileChangeManager#addFileObserver(org.eclipse.gmf.runtime.common.ui.resources.IFileObserver) addFileObserver} method used, the {@link org.eclipse.gmf.runtime.common.ui.resources.FileChangeManager FileChangeManager} also supports filtering based on the actual {@link org.eclipse.gmf.runtime.common.ui.resources.IFileChangeManager#addFileObserver(org.eclipse.gmf.runtime.common.ui.resources.IFileObserver, org.eclipse.core.resources.IFile) IFile}, {@link org.eclipse.gmf.runtime.common.ui.resources.IFileChangeManager#addFileObserver(org.eclipse.gmf.runtime.common.ui.resources.IFileObserver, org.eclipse.core.resources.IFolder) IFolder}, or {@link org.eclipse.gmf.runtime.common.ui.resources.IFileChangeManager#addFileObserver(org.eclipse.gmf.runtime.common.ui.resources.IFileObserver, java.lang.String[]) the file's extension}.

When finished listening, the {@link org.eclipse.gmf.runtime.common.ui.resources.IFileChangeManager#removeFileObserver(org.eclipse.gmf.runtime.common.ui.resources.IFileObserver) removeFileObserver} method should be called.

Internally, the {@link org.eclipse.gmf.runtime.common.ui.resources.FileChangeManager FileChangeManager} notifies the {@link org.eclipse.gmf.runtime.common.ui.resources.FileObserverManager FileObserverManager} with {@link org.eclipse.gmf.runtime.common.ui.resources.FileChangeEvent FileChangeEvent} and {@link org.eclipse.gmf.runtime.common.ui.resources.MarkerChangeEvent MarkerChangeEvent} objects. The FileObserverManager is responsible for managing the {@link org.eclipse.gmf.runtime.common.ui.resources.IFileObserver IFileObserver} objects that were added to the FileChangeManager and instantiating the appropriate {@link org.eclipse.gmf.runtime.common.ui.resources.FileObserverFilter FileObserverFilter} objects for them.

## The FileModificationValidator

The {@link org.eclipse.gmf.runtime.common.ui.resources.FileModificationValidator FileModificationValidator} is used to determine whether a file may be edited or saved. After obtaining the {@link org.eclipse.gmf.runtime.common.ui.resources.FileModificationValidator#getInstance() singleton instance} of the class, the methods {@link org.eclipse.gmf.runtime.common.ui.resources.FileModificationValidator#okToEdit(org.eclipse.core.resources.IFile[], java.lang.String) okToEdit} and {@link org.eclipse.gmf.runtime.common.ui.resources.FileModificationValidator#okToSave(org.eclipse.core.resources.IFile) okToSave} may be called, respectively. More information is availabe from the documentation of Eclipse's {@link org.eclipse.core.resources.IFileModificationValidator IFileModificationValidator}.

## Package Specification

For more information, please see {@link org.eclipse.core.resources.IResource org.eclipse.core.resources.IResource}

@canBeSeenBy %partners