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%2FSCLModuleTree.java;h=8355c6dd3a6a642703ebd91b952bb76838593fe6;hp=43e6781d406e5d2942b83e0db7f798770d4e00a3;hb=fad36d463b75c3a9944d875fc627c3533f6da74d;hpb=e5b73a681e5035fae3b53825dceb3bbe48e921d3 diff --git a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/modulebrowser/SCLModuleTree.java b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/modulebrowser/SCLModuleTree.java index 43e6781d4..8355c6dd3 100644 --- a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/modulebrowser/SCLModuleTree.java +++ b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/modulebrowser/SCLModuleTree.java @@ -1,68 +1,28 @@ package org.simantics.scl.ui.modulebrowser; -import java.util.Collection; - -import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.widgets.Composite; import org.simantics.scl.compiler.module.repository.ModuleRepository; public class SCLModuleTree extends TreeViewer { - - private final ModuleRepository repository; - - - private ITreeContentProvider contentProvider = new ITreeContentProvider() { - ModuleNameTreeEntry rootEntry; - - @Override - public void dispose() { - } - - @Override - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - this.rootEntry = createModuleTreeEntry((Collection)newInput); - } - - @Override - public Object[] getElements(Object inputElement) { - return rootEntry.children().toArray(); - } - - @Override - public Object[] getChildren(Object parentElement) { - return ((ModuleNameTreeEntry)parentElement).children().toArray(); - } - - @Override - public Object getParent(Object element) { - return ((ModuleNameTreeEntry)element).parent; - } - - @Override - public boolean hasChildren(Object element) { - return !((ModuleNameTreeEntry)element).childMap.isEmpty(); - } - }; - private LabelProvider labelProvider = new LabelProvider(); + private LabelProvider labelProvider = new SCLModuleTreeLabelProvider(); + private SCLModuleTreeContentProvider contentProvider; public SCLModuleTree(Composite parent, int style, ModuleRepository repository) { super(parent, style); - this.repository = repository; + this.contentProvider = new SCLModuleTreeContentProvider(); + setUseHashlookup(true); setLabelProvider(labelProvider); setContentProvider(contentProvider); setAutoExpandLevel(1); - setInput(repository.getSourceRepository().getModuleNames()); + setInput(repository); } - private static ModuleNameTreeEntry createModuleTreeEntry(Collection names) { - ModuleNameTreeEntry root = new ModuleNameTreeEntry(null, "", ""); - for(String name : names) - root.addModule(name); - return root; + public void recalculateInput() { + contentProvider.update(); + refresh(); } }