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
\r
protected Resource resource;\r
protected String currentText;\r
+ protected boolean immutable;\r
protected boolean errorHappened;\r
\r
protected AnnotationModel annotationModel = new AnnotationModel();\r
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
\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