package org.limewire.ui.swing.search; import java.awt.BorderLayout; import java.awt.Component; import javax.swing.Scrollable; import org.jdesktop.swingx.JXPanel; import org.limewire.core.api.search.SearchCategory; import org.limewire.ui.swing.search.model.SearchResultsModel; import org.limewire.ui.swing.search.resultpanel.BaseResultPanel; import org.limewire.ui.swing.search.resultpanel.BaseResultPanelFactory; import org.limewire.ui.swing.settings.SwingUiSettings; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted; /** * ResultsContainer is a display panel that contains the search results tables * for all media categories. * * @see org.limewire.ui.swing.search.SearchResultsPanel */ public class ResultsContainer extends JXPanel { /** Results panel containing display tables. */ private final BaseResultPanel baseResultPanel; /** * Constructs a ResultsContainer with the specified search results data * model and factories. * @see org.limewire.ui.swing.search.ResultsContainerFactory */ @Inject ResultsContainer( @Assisted SearchResultsModel searchResultsModel, BaseResultPanelFactory baseFactory) { // Create result panel. baseResultPanel = baseFactory.create(searchResultsModel); // set the default view type. baseResultPanel.setViewType(SearchViewType.forId(SwingUiSettings.SEARCH_VIEW_TYPE_ID.getValue())); setLayout(new BorderLayout()); // Add result panel to the container. add(baseResultPanel, BorderLayout.CENTER); } /** * Changes whether the list view or table view is displayed. * @param mode LIST or TABLE */ public void setViewType(SearchViewType mode) { baseResultPanel.setViewType(mode); } /** * Displays the search results tables for the specified search category. */ public void showCategory(SearchCategory category) { baseResultPanel.showCategory(category); } /** * Returns the header component for the category results currently * displayed. The method returns null if no header is displayed. */ public Component getScrollPaneHeader() { return baseResultPanel.getScrollPaneHeader(); } /** * Returns the results view component currently being displayed. */ public Scrollable getScrollable() { return baseResultPanel.getScrollable(); } }