X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.ui%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fui%2Fmodulebrowser%2FModuleNameTreeEntry.java;h=ec5050815251a22da54496703e7d7a905cd722df;hb=d971cb77af378e93db25a568319525bd86bf9660;hp=4c3bf1a2c9df1495da8bc101922c957f6fea9003;hpb=d5c76b143c0000994bb76c40f0ea74354eb5ce8a;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/modulebrowser/ModuleNameTreeEntry.java b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/modulebrowser/ModuleNameTreeEntry.java index 4c3bf1a2c..ec5050815 100644 --- a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/modulebrowser/ModuleNameTreeEntry.java +++ b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/modulebrowser/ModuleNameTreeEntry.java @@ -2,11 +2,13 @@ package org.simantics.scl.ui.modulebrowser; import java.util.Arrays; import java.util.Iterator; -import java.util.Map.Entry; import gnu.trove.map.hash.THashMap; public class ModuleNameTreeEntry implements Comparable { + public static final String STANDARD_LIBRARY = "StandardLibrary"; //$NON-NLS-1$ + public static final String HTTP_PREFIX = "http://"; //$NON-NLS-1$ + public final ModuleNameTreeEntry parent; public final String fullName; public final String name; @@ -21,11 +23,20 @@ public class ModuleNameTreeEntry implements Comparable { public void addModule(String moduleFullName) { int startingPos = fullName.isEmpty() ? 0 : fullName.length()+1; - int p = moduleFullName.indexOf('/', startingPos); + int p; + if(parent == null && moduleFullName.startsWith(HTTP_PREFIX)) + p = moduleFullName.indexOf('/', HTTP_PREFIX.length()); + else + p = moduleFullName.indexOf('/', startingPos); if(p == -1) { - String name = moduleFullName.substring(startingPos); - ModuleNameTreeEntry entry = getOrCreateChildMapEntry(name); - entry.isModule = true; + if(parent == null) { + getOrCreateChildMapEntry(STANDARD_LIBRARY).addModule(name); + } + else { + String name = moduleFullName.substring(startingPos); + ModuleNameTreeEntry entry = getOrCreateChildMapEntry(name); + entry.isModule = true; + } } else { String name = moduleFullName.substring(startingPos, p); @@ -37,7 +48,15 @@ public class ModuleNameTreeEntry implements Comparable { private ModuleNameTreeEntry getOrCreateChildMapEntry(String name) { ModuleNameTreeEntry entry = childMap.get(name); if(entry == null) { - String newFullName = fullName.isEmpty() ? name : fullName + "/" + name; + String newFullName; + if(parent == null) { + if(name.equals(STANDARD_LIBRARY)) + newFullName = ""; //$NON-NLS-1$ + else + newFullName = name; + } + else + newFullName = fullName + "/" + name; //$NON-NLS-1$ entry = new ModuleNameTreeEntry(this, newFullName, name); childMap.put(name, entry); }