package org.limewire.ui.swing.search.model; import static org.limewire.ui.swing.search.model.VisualSearchResult.NEW_SOURCES; /** * A listener to handle updates to the list of visual search results. This * listener applies a SimilarResultsDetector to each VisualSearchResult to * allow similar results to be grouped. */ class GroupingListEventListener implements VisualSearchResultStatusListener { private final SimilarResultsDetector similarResultsDetector; /** * Constructs a GroupingListEventListener with the specified similar * results detector. */ public GroupingListEventListener(SimilarResultsDetector similarResultsDetector) { this.similarResultsDetector = similarResultsDetector; } @Override public void resultCreated(VisualSearchResult vsr) { similarResultsDetector.detectSimilarResult(vsr); } @Override public void resultChanged(VisualSearchResult vsr, String propertyName, Object oldValue, Object newValue) { if (NEW_SOURCES.equals(propertyName)) { similarResultsDetector.detectSimilarResult(vsr); } } @Override public void resultsCleared() { similarResultsDetector.clear(); } }