package com.intellij.perlplugin.extensions.contributors; import com.intellij.navigation.ChooseByNameContributor; import com.intellij.navigation.NavigationItem; import com.intellij.openapi.project.Project; import com.intellij.perlplugin.ModulesContainer; import com.intellij.perlplugin.bo.Package; import com.intellij.perlplugin.extensions.navigation.PerlGoToClassFileNavigationItem; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.HashSet; /** * Created by ELI-HOME on 28-Feb-15. */ public class PerlFileChooseByNameContributor implements ChooseByNameContributor { @NotNull @Override public String[] getNames(Project project, boolean b) { ArrayList<Package> packages = ModulesContainer.getAllPackages(); HashSet<String> paths = new HashSet<String>(); for (int i = 0; i < packages.size(); i++) { paths.add(packages.get(i).getOriginFile()); } String[] packagesResult = new String[paths.size()]; int i=0; for (String path : paths) { packagesResult[i++] = path; } return packagesResult; } @NotNull @Override public NavigationItem[] getItemsByName(String filePath, String searchTerm, Project project, boolean b) { ArrayList<Package> packages = ModulesContainer.getPackageListFromFile(filePath); NavigationItem[] navigationItems; if(packages.size() > 0){ navigationItems = new NavigationItem[1]; navigationItems[0] = new PerlGoToClassFileNavigationItem(project,packages.get(0).getOriginFile()); }else{ return new NavigationItem[0]; } return navigationItems; } }