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=acaffd0f565103cd2301e006794f84304961a574;hb=94a2993bfc6477c4beeb8f7009c210865457db38;hpb=0659830f76d64f2376fdb39666a5e5ff4e11c2dd 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 acaffd0f5..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,75 +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) { - if(newInput != null) - this.rootEntry = createModuleTreeEntry((Collection)newInput); - } - - @Override - public Object[] getElements(Object inputElement) { - if(rootEntry == null) - return new Object[0]; - 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); - recalculateInput(); - } - - private static ModuleNameTreeEntry createModuleTreeEntry(Collection names) { - ModuleNameTreeEntry root = new ModuleNameTreeEntry(null, "", ""); - for(String name : names) - root.addModule(name); - return root; + setInput(repository); } public void recalculateInput() { - setInput(repository.getSourceRepository().getModuleNames()); + contentProvider.update(); + refresh(); } }