package org.nightlabs.jfire.trade.ui.store.search; import java.util.ArrayList; import java.util.Collection; import org.eclipse.jface.window.Window; import org.eclipse.swt.widgets.Shell; import org.nightlabs.base.ui.search.ISearchResultProvider; import org.nightlabs.base.ui.search.ISearchResultProviderFactory; import org.nightlabs.base.ui.util.RCPUtil; import org.nightlabs.jfire.store.ProductType; /** * @author Daniel.Mazurek [at] NightLabs [dot] de * */ public abstract class AbstractProductTypeSearchResultProvider<P extends ProductType> implements ISearchResultProvider<P> { public AbstractProductTypeSearchResultProvider(ISearchResultProviderFactory<P> factory) { this.factory = factory; } public Collection<P> getSelectedObjects() { AbstractProductTypeSearchDialog dialog = createProductTypeSearchDialog( RCPUtil.getActiveShell()); dialog.setSearchText(searchText); int returnCode = dialog.open(); if (returnCode == Window.OK) { Collection<P> productTypes = new ArrayList<P>(1); productTypes.add((P) dialog.getProductType()); return productTypes; } return null; } private String searchText = null; public void setSearchText(String text) { this.searchText = text; } private ISearchResultProviderFactory<P> factory = null; public ISearchResultProviderFactory<P> getFactory() { return factory; } protected abstract AbstractProductTypeSearchDialog createProductTypeSearchDialog(Shell shell); }