]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/componentTypeEditor/SCLModuleEditorDocumentProvider.java
Sync git svn branch with SVN repository r33153.
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / componentTypeEditor / SCLModuleEditorDocumentProvider.java
index 35265ce509f56cc66011a6f2c6c6232b1d9ee5df..c634f89b38b3a2d73075c99639b4eb20866ca570 100644 (file)
@@ -36,6 +36,7 @@ import org.simantics.scl.compiler.module.repository.UpdateListener;
 import org.simantics.scl.osgi.SCLOsgi;\r
 import org.simantics.scl.runtime.SCLContext;\r
 import org.simantics.scl.ui.editor.SCLSourceViewerConfigurationNew;\r
+import org.simantics.structural2.utils.StructuralUtils;\r
 import org.simantics.ui.workbench.ResourceEditorInput;\r
 import org.simantics.utils.logging.TimeLogger;\r
 \r
@@ -43,6 +44,7 @@ public class SCLModuleEditorDocumentProvider extends AbstractDocumentProvider {
 \r
     protected Resource resource;\r
     protected String currentText;\r
+    protected boolean immutable;\r
     protected boolean errorHappened;\r
 \r
     protected AnnotationModel annotationModel = new AnnotationModel();\r
@@ -62,6 +64,7 @@ public class SCLModuleEditorDocumentProvider extends AbstractDocumentProvider {
                 public Document perform(ReadGraph graph) throws DatabaseException {\r
                     Layer0 L0 = Layer0.getInstance(graph);\r
                     currentText = graph.getRelatedValue(resource, L0.SCLModule_definition, Bindings.STRING);\r
+                    immutable = StructuralUtils.isImmutable(graph, resource);\r
                     errorHappened = false;\r
                     return new Document(currentText != null ? currentText : "");\r
                 }\r
@@ -156,17 +159,12 @@ public class SCLModuleEditorDocumentProvider extends AbstractDocumentProvider {
 \r
     @Override\r
     public boolean isModifiable(Object element) {\r
-        return !errorHappened;\r
+        return !errorHappened && !immutable;\r
     }\r
 \r
     @Override\r
     public boolean isReadOnly(Object element) {\r
-        return errorHappened;\r
-    }\r
-\r
-    @Override\r
-    public boolean canSaveDocument(Object element) {\r
-        return !errorHappened && !getDocument(element).get().equals(currentText);\r
+        return errorHappened || immutable;\r
     }\r
 \r
 }\r