import org.simantics.db.ReadGraph;
import org.simantics.db.Resource;
import org.simantics.db.common.procedure.adapter.TransientCacheListener;
+import org.simantics.db.common.request.PossibleIndexRoot;
import org.simantics.db.common.utils.NameUtils;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.layer0.variable.StandardGraphChildVariable;
@Override
public Variable buildChild(ReadGraph graph, Variable parent, VariableNode<Node> node, Resource child) throws DatabaseException {
- if(graph.isImmutable(child)) {
+ boolean isImmutable = graph.isImmutable(child);
+ Resource possibleIndexRoot = graph.syncRequest(new PossibleIndexRoot(child));
+ if(possibleIndexRoot != null) {
+// String puri = graph.getURI(possibleIndexRoot);
+// if(puri.contains("ModelBroker"))
+// isImmutable = true;
+// if(NameUtils.getSafeName(graph, child).equals("Project"))
+// isImmutable = false;
+ }
+ if(isImmutable) {
+// System.err.println("ImmutableComponentVariableContentRequest " + parent.getURI(graph) + " " + NameUtils.getSafeName(graph, child));
ImmutableComponentVariableContent content = graph.syncRequest(new ImmutableComponentVariableContentRequest(child), TransientCacheListener.instance());
return new ImmutableComponentVariable(parent, content);
} else {