fixed UI issues w.r.t. nature
diff --git a/plugins/org.eclipse.app4mc.amalthea.nature/src/org/eclipse/app4mc/amalthea/nature/AmaltheaNoLoadNature.java b/plugins/org.eclipse.app4mc.amalthea.nature/src/org/eclipse/app4mc/amalthea/nature/AmaltheaNoLoadNature.java
index 01dd426..af766a9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.nature/src/org/eclipse/app4mc/amalthea/nature/AmaltheaNoLoadNature.java
+++ b/plugins/org.eclipse.app4mc.amalthea.nature/src/org/eclipse/app4mc/amalthea/nature/AmaltheaNoLoadNature.java
@@ -17,22 +17,28 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import org.eclipse.app4mc.amalthea.sphinx.AmaltheaMetaModelDescriptor;
import org.eclipse.app4mc.amalthea.sphinx.AmaltheaWorkspaceEditingDomainMapping;
import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectNature;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.sphinx.emf.metamodel.IMetaModelDescriptor;
+import org.eclipse.sphinx.emf.util.EcorePlatformUtil;
import org.eclipse.sphinx.emf.workspace.domain.WorkspaceEditingDomainManager;
+import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorReference;
import org.eclipse.ui.IWorkbenchPage;
@@ -97,6 +103,8 @@
}
if (editingDomainMapping instanceof AmaltheaWorkspaceEditingDomainMapping) {
+
+ List<IFile> filesInEditingDomain=new ArrayList<>();
Map<IMetaModelDescriptor, HashMap<IContainer, TransactionalEditingDomain>> map = ((AmaltheaWorkspaceEditingDomainMapping) editingDomainMapping).mappedEditingDomains;
@@ -109,27 +117,44 @@
if (iContainer.getProject() == project) {
TransactionalEditingDomain transactionalEditingDomain = hashMap.get(iContainer);
-
ResourceSet resourceSet = transactionalEditingDomain.getResourceSet();
EList<Resource> resources = resourceSet.getResources();
- resources.forEach(resource -> {
- resource.unload();
- });
- resourceSet.getResources().clear();
+
+ for (Resource resource : resources) {
+ IFile file = EcorePlatformUtil.getFile(resource);
+ filesInEditingDomain.add(file);
+ }
+
+ EcorePlatformUtil.unloadResources(transactionalEditingDomain, resources, true, new NullProgressMonitor());
+
+// resources.forEach(resource -> {
+// resource.unload();
+// });
+// resourceSet.getResources().clear();
}
}
}
IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+
IEditorReference[] editorReferences = activePage.getEditorReferences();
for (IEditorReference iEditorReference : editorReferences) {
- System.out.println(iEditorReference);
IEditorPart editor = iEditorReference.getEditor(true);
-
+
if (editor != null) {
- activePage.closeEditor(editor, true);
+ IEditorInput editorInput = editor.getEditorInput();
+
+ if(editorInput!=null) {
+ IFile iFile = editorInput.getAdapter(IFile.class);
+
+ if(filesInEditingDomain.contains(iFile)) {
+ activePage.closeEditor(editor, true);
+
+ }
+
+ }
}
}
}
diff --git a/plugins/org.eclipse.app4mc.amalthea.nature/src/org/eclipse/app4mc/amalthea/nature/decorators/ProjectDecorator.java b/plugins/org.eclipse.app4mc.amalthea.nature/src/org/eclipse/app4mc/amalthea/nature/decorators/ProjectDecorator.java
index b036b6c..2d12a45 100644
--- a/plugins/org.eclipse.app4mc.amalthea.nature/src/org/eclipse/app4mc/amalthea/nature/decorators/ProjectDecorator.java
+++ b/plugins/org.eclipse.app4mc.amalthea.nature/src/org/eclipse/app4mc/amalthea/nature/decorators/ProjectDecorator.java
@@ -28,7 +28,7 @@
if (Arrays.asList(prevNatures).contains(AmaltheaNoLoadNature.ID) == true) {
- decoration.addPrefix("Amalthea-no-load-activated: ");
+ decoration.addSuffix(" - Amalthea-no-load-activated");
decoration.addOverlay(AmaltheaNaturePlugin.INSTANCE.getImageRegistry().getDescriptor(AmaltheaNaturePlugin.IMAGE_ID), IDecoration.TOP_LEFT);
}
@@ -38,7 +38,6 @@
}
}
- System.out.println(element);
}
@Override
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/src/org/eclipse/app4mc/amalthea/sphinx/ui/editors/editor/ExtendedBasicTransactionalFormEditor.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/src/org/eclipse/app4mc/amalthea/sphinx/ui/editors/editor/ExtendedBasicTransactionalFormEditor.java
index a9d64fd..d2de023 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/src/org/eclipse/app4mc/amalthea/sphinx/ui/editors/editor/ExtendedBasicTransactionalFormEditor.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/src/org/eclipse/app4mc/amalthea/sphinx/ui/editors/editor/ExtendedBasicTransactionalFormEditor.java
@@ -251,7 +251,7 @@
| NotHandledException e) {
e.printStackTrace();
}
- } else if (open == 0) {
+ } else if (open == 0 || open ==-1) {
close(false);
return false;
}