package org.limewire.ui.swing.search.resultpanel.list; import org.limewire.ui.swing.search.model.VisualSearchResult; public interface ListViewRowHeightRule { enum RowDisplayConfig { HeadingOnly(36), HeadingAndSubheading(44), HeadingAndMetadata(44), HeadingSubHeadingAndMetadata(56); private final int height; RowDisplayConfig(int height) { this.height = height; } public int getRowHeight() { return height; } } /** Initializes this rule with a search. */ void initializeWithSearch(String search); /** * Determines which combination of heading, subheading, and metadata should display * in the list view of the search results, given a specific VisualSearchResult. */ RowDisplayResult getDisplayResult(VisualSearchResult vsr); public static interface RowDisplayResult { String getHeading(); String getSubheading(); PropertyMatch getMetadata(); RowDisplayConfig getConfig(); boolean isSpam(); boolean isStale(VisualSearchResult vsr); } public static interface PropertyMatch { String getKey(); String getHighlightedValue(); } }