package net.bitpot.railways.navigation; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; import net.bitpot.railways.routesView.RoutesManager; import java.util.ArrayList; import java.util.List; /** * @author Basil Gren * on 12.02.14. */ public class ChooseByRouteRegistry { private List<RouteItemsContributor> myContributors = new ArrayList<RouteItemsContributor>(); public static ChooseByRouteRegistry getInstance(Project project) { return ServiceManager.getService(project, ChooseByRouteRegistry.class); } /** * Creates and adds to the list a new contributor linked with specified * RouteManager. * * @param routesManager Route manager which will be used by new contributor. */ public void addContributorFor(RoutesManager routesManager) { RouteItemsContributor contributor = new RouteItemsContributor(routesManager); myContributors.add(contributor); } /** * Removes contributor linked with specified RoutesManager. * * @param routesManager Routes manger */ public void removeContributor(RoutesManager routesManager) { for(int i = myContributors.size() - 1; i >= 0; i--) if (myContributors.get(i).getRoutesManager() == routesManager) myContributors.remove(i); } public RouteItemsContributor[] getRouteContributors() { return myContributors.toArray( new RouteItemsContributor[myContributors.size()]); } }