273344 - Deleting text from XML
diff --git a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
index 8b23e11..0f50aa9 100644
--- a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
+++ b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
@@ -66,6 +66,8 @@
private IModelManager modelManager;
private Class resourceClass;
+
+ private boolean reverting = false;
/** The XML DOM model */
protected IDOMModel xmlModel;
@@ -440,7 +442,7 @@
if (isBatchChanges)
return;
try {
- if (aboutToChangeNode != null && model.getStructuredDocument() != null
+ if (reverting && aboutToChangeNode != null && model.getStructuredDocument() != null
&& model.getStructuredDocument().getFirstStructuredDocumentRegion() != aboutToChangeNode) {
String id = getModelManagerId();
IStructuredModel tempModel = null;
@@ -452,6 +454,7 @@
if (tempModel != null && (tempModel.getReferenceCountForEdit() > 0)) {
tempModel.releaseFromEdit();
}
+ reverting = false;
}
}
} finally {
@@ -500,11 +503,15 @@
}
public void processPostModelEvent(ModelLifecycleEvent event) {
- // TODO Auto-generated method stub
+ if (event.getType() == ModelLifecycleEvent.MODEL_REVERT)
+ reverting = false;
}
public void processPreModelEvent(ModelLifecycleEvent event) {
+ if (event.getType() == ModelLifecycleEvent.MODEL_REVERT)
+ reverting = true;
+
if (!isSaving) {
if (event.getType() == ModelLifecycleEvent.MODEL_SAVED) {
ResourceSetWorkbenchEditSynchronizer synchronizer = (ResourceSetWorkbenchEditSynchronizer) ((ProjectResourceSet) resource.getResourceSet()).getSynchronizer();
@@ -512,6 +519,7 @@
synchronizer.preSave(aFile, resource);
}
}
+
}