// Path: src/com/equadon/intellij/mips/lang/psi/MipsFile.java
// public interface MipsFile extends PsiFile {
//   Collection<MipsLabelDefinition> getLabelDefinitions();
// }


import javax.swing.*;
import com.equadon.intellij.mips.lang.psi.MipsFile;
import com.equadon.intellij.mips.lang.psi.MipsLabelDefinition;
import com.intellij.ide.structureView.StructureViewTreeElement;
import com.intellij.ide.util.treeView.smartTree.TreeElement;
import com.intellij.navigation.ItemPresentation;
import com.intellij.navigation.NavigationItem;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
      ((NavigationItem) element).navigate(requestFocus);
    }
  }

  @Override
  public boolean canNavigate() {
    return element instanceof NavigationItem &&
        ((NavigationItem) element).canNavigate();
  }

  @Override
  public boolean canNavigateToSource() {
    return element instanceof NavigationItem &&
        ((NavigationItem) element).canNavigateToSource();
  }

  @Nullable
  @Override
  public String getPresentableText() {
    if (element instanceof MipsFile)
      return ((MipsFile) element).getName();
    if (element instanceof MipsLabelDefinition)
      return ((MipsLabelDefinition) element).getName();

    throw new AssertionError(element.getClass().getName());
  }

  @Nullable
  @Override
  public String getLocationString() {
// Path: src/com/equadon/intellij/mips/lang/psi/MipsFile.java
// public interface MipsFile extends PsiFile {
//   Collection<MipsLabelDefinition> getLabelDefinitions();
// }


// Path: src/com/equadon/intellij/mips/structure/MipsStructureViewElement.java
import javax.swing.*;
import com.equadon.intellij.mips.lang.psi.MipsFile;
import com.equadon.intellij.mips.lang.psi.MipsLabelDefinition;
import com.intellij.ide.structureView.StructureViewTreeElement;
import com.intellij.ide.util.treeView.smartTree.TreeElement;
import com.intellij.navigation.ItemPresentation;
import com.intellij.navigation.NavigationItem;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;

      ((NavigationItem) element).navigate(requestFocus);
    }
  }

  @Override
  public boolean canNavigate() {
    return element instanceof NavigationItem &&
        ((NavigationItem) element).canNavigate();
  }

  @Override
  public boolean canNavigateToSource() {
    return element instanceof NavigationItem &&
        ((NavigationItem) element).canNavigateToSource();
  }

  @Nullable
  @Override
  public String getPresentableText() {
    if (element instanceof MipsFile)
      return ((MipsFile) element).getName();
    if (element instanceof MipsLabelDefinition)
      return ((MipsLabelDefinition) element).getName();

    throw new AssertionError(element.getClass().getName());
  }

  @Nullable
  @Override
  public String getLocationString() {
    if (element instanceof MipsFile)