public void processPreModelEvent(ModelLifecycleEvent event) { if (!isSaving) { if (event.getType() == ModelLifecycleEvent.MODEL_SAVED) { ResourceSetWorkbenchEditSynchronizer synchronizer = (ResourceSetWorkbenchEditSynchronizer) ((ProjectResourceSet) resource.getResourceSet()).getSynchronizer(); IFile aFile = WorkbenchResourceHelper.getFile(resource); synchronizer.preSave(aFile); } } }
public void doSave(OutputStream outputStream, Map options) throws IOException { try { isSaving = true; if (null != outputStream) { throw new RuntimeException(this.getClass().getName() + " should not use an OutputStream for saving");} //$NON-NLS-1$ createDOMTreeIfNecessary(); ResourceSetWorkbenchEditSynchronizer synchronizer = (ResourceSetWorkbenchEditSynchronizer) ((ProjectResourceSet) resource.getResourceSet()).getSynchronizer(); IFile aFile = WorkbenchResourceHelper.getFile(resource); try { synchronizer.preSave(aFile); xmlModel.save(aFile); } catch (CoreException ex) { synchronizer.removeFromRecentlySavedList(aFile); Logger.logException(ex); } cacheSynchronizationStamp(); } finally { isSaving = false; } }
public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty) { if (!isDirty && resource.isModified()) { // The XMLModel was saved resource.setModified(false); long stamp = WorkbenchResourceHelper.computeModificationStamp(resource); WorkbenchResourceHelper.setSynhronizationStamp(resource, stamp); IProject proj = WorkbenchResourceHelper.getProject(resource); ResourceSetWorkbenchEditSynchronizer synchronizer = (ResourceSetWorkbenchEditSynchronizer) ((ProjectResourceSet) WorkbenchResourceHelperBase.getResourceSet(proj)).getSynchronizer(); IFile aFile = WorkbenchResourceHelper.getFile(resource); synchronizer.preSave(aFile); } if (isDirty) resource.setModified(true); }