package org.limewire.ui.swing.search; import org.limewire.core.api.search.SearchCategory; import org.limewire.core.settings.LibrarySettings; import org.limewire.ui.swing.mainframe.MainPanel; import com.google.inject.Inject; import com.google.inject.Singleton; import com.google.inject.name.Named; /** * The primary implementation of SearchHandler used to start a new search. * SearchHandlerImpl actually uses secondary search handlers to process search * requests based on the format of the search query. */ @Singleton class SearchHandlerImpl implements SearchHandler { private final SearchHandler textSearch; private final MainPanel mainPanel; /** * Constructs a SearchHandlerImpl with the specified secondary search * handlers for p2p and text searches, and main window panel. */ @Inject public SearchHandlerImpl( @Named("text") SearchHandler textSearch, MainPanel mainPanel) { this.textSearch = textSearch; this.mainPanel = mainPanel; } /** * Performs a search operation using the specified SearchInfo object. The * task is forwarded to a secondary search handler based on the format of * the search query. Returns true if the search request is accepted. */ @Override public boolean doSearch(SearchInfo info) { if(info.getSearchCategory() == SearchCategory.PROGRAM && !LibrarySettings.ALLOW_PROGRAMS.getValue()) { mainPanel.showTemporaryPanel(new ProgramsNotAllowedPanel()); return false; } else { // String q = info.getSearchQuery(); // if(q != null && q.toLowerCase(Locale.US).startsWith("p2p://")) { // return p2pLinkSearch.doSearch(info); // } else { return textSearch.doSearch(info); // } } } }