]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/componentTypeEditor/ComponentTypeScriptDocumentProvider.java
Sync git svn branch with SVN repository r33153.
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / componentTypeEditor / ComponentTypeScriptDocumentProvider.java
index 0129b2bb6040fa836102b39cf950513baf4de453..b31ccb109fbedc0847c97f095f968424ef00a9ce 100644 (file)
@@ -28,6 +28,7 @@ import org.simantics.modeling.ComponentTypeScriptResult;
 import org.simantics.scl.compiler.errors.CompilationError;\r
 import org.simantics.scl.compiler.errors.Locations;\r
 import org.simantics.structural.stubs.StructuralResource2;\r
+import org.simantics.structural2.utils.StructuralUtils;\r
 import org.simantics.ui.workbench.ResourceEditorInput;\r
 import org.simantics.utils.logging.TimeLogger;\r
 \r
@@ -37,6 +38,7 @@ public class ComponentTypeScriptDocumentProvider extends AbstractDocumentProvide
     \r
     protected Resource resource;\r
     protected String currentText;\r
+    protected boolean immutable;\r
     protected boolean errorHappened;\r
     \r
     protected AnnotationModel annotationModel = new AnnotationModel();\r
@@ -57,6 +59,8 @@ public class ComponentTypeScriptDocumentProvider extends AbstractDocumentProvide
                 public Document perform(ReadGraph graph) throws DatabaseException {\r
                     StructuralResource2 STR = StructuralResource2.getInstance(graph);\r
                     currentText = graph.getRelatedValue(resource, STR.ComponentTypeScript_code, Bindings.STRING);\r
+                    Resource owner = graph.getPossibleObject(resource, STR.ComponentType_hasScript_Inverse);\r
+                    immutable = owner != null && StructuralUtils.isImmutable(graph, owner);\r
                     errorHappened = false;\r
                     return new Document(currentText != null ? currentText : "");\r
                 }\r
@@ -139,17 +143,12 @@ public class ComponentTypeScriptDocumentProvider extends AbstractDocumentProvide
     \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
+        return errorHappened || immutable;\r
     }\r
 \r
-    @Override\r
-    public boolean canSaveDocument(Object element) {\r
-        return !errorHappened && !getDocument(element).get().equals(currentText);\r
-    }\r
-    \r
 }\r