package org.fandev.lang.fan.structure.elements;
import com.intellij.ide.structureView.TextEditorBasedStructureViewModel;
import com.intellij.ide.structureView.StructureViewTreeElement;
import com.intellij.ide.util.treeView.smartTree.Grouper;
import com.intellij.ide.util.treeView.smartTree.Sorter;
import com.intellij.ide.util.treeView.smartTree.Filter;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiElement;
import com.intellij.openapi.editor.Editor;
import org.jetbrains.annotations.NotNull;
import org.fandev.lang.fan.structure.elements.impl.FanFileStructureViewElement;
/**
*
* @author Dror Bereznitsky
* @date Jan 7, 2009 4:25:13 PM
*/
public class FanStructureViewModel extends TextEditorBasedStructureViewModel {
private PsiElement myRoot;
public FanStructureViewModel(@NotNull final PsiFile psiFile) {
super(psiFile);
myRoot = psiFile;
}
public FanStructureViewModel(final PsiElement psiFile, final Editor editor) {
super(editor);
myRoot = psiFile;
}
protected PsiFile getPsiFile() {
return myRoot.getContainingFile();
}
@NotNull
public StructureViewTreeElement getRoot() {
return new FanFileStructureViewElement(myRoot);
}
@NotNull
public Grouper[] getGroupers() {
return Grouper.EMPTY_ARRAY;
}
@NotNull
public Sorter[] getSorters() {
return new Sorter[]{Sorter.ALPHA_SORTER};
}
@NotNull
public Filter[] getFilters() {
return Filter.EMPTY_ARRAY;
}
}