package ee.edio.garmin.structure;
import com.intellij.ide.structureView.StructureViewBuilder;
import com.intellij.ide.structureView.StructureViewModel;
import com.intellij.ide.structureView.StructureViewModelBase;
import com.intellij.ide.structureView.TreeBasedStructureViewBuilder;
import com.intellij.lang.PsiStructureViewFactory;
import com.intellij.openapi.editor.Editor;
import com.intellij.psi.PsiFile;
import ee.edio.garmin.psi.MonkeyFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class MonkeyStructureViewBuilderFactory implements PsiStructureViewFactory {
@Nullable
@Override
public StructureViewBuilder getStructureViewBuilder(final PsiFile psiFile) {
if (!(psiFile instanceof MonkeyFile)) return null;
return new TreeBasedStructureViewBuilder() {
@Override
@NotNull
public StructureViewModel createStructureViewModel(@Nullable Editor editor) {
final MonkeyFileTreeElement monkeyFileTreeElement = new MonkeyFileTreeElement(psiFile);
final StructureViewModelBase structureViewModelBase = new StructureViewModelBase(psiFile, editor, monkeyFileTreeElement);
return structureViewModelBase;
//return new JavaFileTreeModel((PsiJavaFile)psiFile, editor);
}
@Override
public boolean isRootNodeShown() {
return false;
}
};
}
}