]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.debug.ui/src/org/simantics/debug/ui/internal/DebugUtils.java
Fixed labels for search results restored from previous search memento
[simantics/platform.git] / bundles / org.simantics.debug.ui / src / org / simantics / debug / ui / internal / DebugUtils.java
index c65517c744e5787b9419f1ed4ee10282e5b00855..c1f9afd228124485eadcbf5292da0175958d01c6 100644 (file)
  *******************************************************************************/\r
 package org.simantics.debug.ui.internal;\r
 \r
+import java.util.Set;\r
+\r
 import org.eclipse.swt.widgets.Shell;\r
+import org.simantics.databoard.util.URIStringUtils;\r
 import org.simantics.db.ReadGraph;\r
 import org.simantics.db.Resource;\r
 import org.simantics.db.Session;\r
 import org.simantics.db.Statement;\r
 import org.simantics.db.WriteGraph;\r
+import org.simantics.db.common.request.PossibleIndexRoot;\r
 import org.simantics.db.common.request.WriteRequest;\r
 import org.simantics.db.common.utils.NameUtils;\r
 import org.simantics.db.exception.DatabaseException;\r
@@ -53,6 +57,25 @@ public class DebugUtils {
         return name;\r
     }\r
 \r
+    public static String getPossibleRootRelativePath(ReadGraph graph, Resource r) throws DatabaseException {\r
+        Resource indexRoot = graph.syncRequest(new PossibleIndexRoot(r));\r
+        String uri = graph.getPossibleURI(r);\r
+        if (indexRoot != null && uri != null) {\r
+            Layer0 L0 = Layer0.getInstance(graph);\r
+            Set<Resource> types = graph.getTypes(indexRoot);\r
+            if (!types.contains(L0.Ontology)) {\r
+                Resource indexRootParent = graph.getPossibleObject(indexRoot, L0.PartOf);\r
+                if (indexRootParent != null) {\r
+                    String rootParentUri = graph.getPossibleURI(indexRootParent);\r
+                    if (rootParentUri != null) {\r
+                        return URIStringUtils.unescape( uri.substring(rootParentUri.length()+1) );\r
+                    }\r
+                }\r
+            }\r
+        }\r
+        return uri;\r
+    }\r
+\r
     @SuppressWarnings("unchecked")\r
     public static void addResource(Session s, GraphDebugger debugger) throws DatabaseException {\r
         Shell shell = debugger.getShell();\r