X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.ui%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fui%2Fmodulebrowser%2FModuleNameTreeEntry.java;h=4c3bf1a2c9df1495da8bc101922c957f6fea9003;hp=6f657b35134859abc3b6285c468e906047fae908;hb=94a2993bfc6477c4beeb8f7009c210865457db38;hpb=0659830f76d64f2376fdb39666a5e5ff4e11c2dd 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 6f657b351..4c3bf1a2c 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 @@ -1,8 +1,8 @@ package org.simantics.scl.ui.modulebrowser; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; +import java.util.Arrays; +import java.util.Iterator; +import java.util.Map.Entry; import gnu.trove.map.hash.THashMap; @@ -44,10 +44,16 @@ public class ModuleNameTreeEntry implements Comparable { return entry; } - public Collection children() { - ArrayList children = new ArrayList(childMap.values()); - Collections.sort(children); - return children; + public Object[] children() { + Object[] result = childMap.values().toArray(); + Arrays.sort(result); + return result; + } + + public void clearModuleFlags() { + isModule = false; + for(ModuleNameTreeEntry child : childMap.values()) + child.clearModuleFlags(); } @Override @@ -55,8 +61,13 @@ public class ModuleNameTreeEntry implements Comparable { return name.compareTo(o.name); } - @Override - public String toString() { - return name; + public boolean prune() { + Iterator it = childMap.values().iterator(); + while(it.hasNext()) { + ModuleNameTreeEntry entry = it.next(); + if(!entry.prune()) + it.remove(); + } + return isModule || !childMap.isEmpty(); } }