Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java6
-rw-r--r--plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/ModificationTrackingEnabler.java13
2 files changed, 18 insertions, 1 deletions
diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java
index c9dae7be0..0ab11f26f 100644
--- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java
+++ b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/CustomPersistencyBehavior.java
@@ -77,6 +77,12 @@ public class CustomPersistencyBehavior extends DefaultPersistencyBehavior {
}
}
+ @Override
+ protected boolean shouldSave(Resource resource) {
+ // assume all resources we want to save have tracking modification enabled, see ModificationTrackingEnabler
+ return resource.isTrackingModification() && super.shouldSave(resource);
+ }
+
protected boolean validateResourcesBeforeSave(final IProgressMonitor monitor){
final RunnableWithResult<Boolean> runnable = new RunnableWithResult.Impl<Boolean>() {
diff --git a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/ModificationTrackingEnabler.java b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/ModificationTrackingEnabler.java
index f738ef7c2..35cd4fe21 100644
--- a/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/ModificationTrackingEnabler.java
+++ b/plugins/org.eclipse.etrice.ui.common.base/src/org/eclipse/etrice/ui/common/base/editor/ModificationTrackingEnabler.java
@@ -10,12 +10,16 @@
package org.eclipse.etrice.ui.common.base.editor;
+import java.util.Set;
+
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.transaction.ResourceSetChangeEvent;
import org.eclipse.emf.transaction.ResourceSetListenerImpl;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import com.google.common.collect.Sets;
+
/**
* description
*
@@ -24,6 +28,8 @@ import org.eclipse.emf.transaction.TransactionalEditingDomain;
*/
public class ModificationTrackingEnabler extends ResourceSetListenerImpl {
+ private final Set<String> fileExtensions = Sets.newHashSet("structure", "behavior", "room");
+
/* (non-Javadoc)
* @see org.eclipse.emf.transaction.ResourceSetListenerImpl#setTarget(org.eclipse.emf.transaction.TransactionalEditingDomain)
*/
@@ -47,8 +53,13 @@ public class ModificationTrackingEnabler extends ResourceSetListenerImpl {
protected void setTrackingModification() {
ResourceSet rs = getTarget().getResourceSet();
for (Resource r : rs.getResources()) {
- if (!r.isTrackingModification())
+ if (shouldTrack(r) && !r.isTrackingModification())
r.setTrackingModification(true);
}
}
+
+ protected boolean shouldTrack(Resource resource) {
+ String fileExt = resource.getURI().fileExtension();
+ return fileExtensions.contains(fileExt.toLowerCase());
+ }
}

Back to the top