package org.nightlabs.jfire.trade.ui.overview.offer; import java.util.Collection; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.nightlabs.base.ui.table.AbstractTableComposite; import org.nightlabs.jdo.NLJDOHelper; import org.nightlabs.jdo.query.QueryCollection; import org.nightlabs.jfire.base.ui.overview.Entry; import org.nightlabs.jfire.trade.Offer; import org.nightlabs.jfire.trade.dao.OfferDAO; import org.nightlabs.jfire.trade.query.OfferQuery; import org.nightlabs.jfire.trade.ui.overview.ArticleContainerEntryViewer; import org.nightlabs.jfire.trade.ui.overview.offer.action.EditOfferAction; import org.nightlabs.progress.ProgressMonitor; /** * @author Daniel.Mazurek [at] NightLabs [dot] de * @author Marius Heinzmann - marius[at]nightlabs[dot]com */ public class OfferEntryViewer extends ArticleContainerEntryViewer<Offer, OfferQuery> { public static final String ID = OfferEntryViewer.class.getName(); // public static final String[] FETCH_GROUPS_OFFERS = new String[] { // FetchPlan.DEFAULT, //// Offer.FETCH_GROUP_ARTICLES, //// Offer.FETCH_GROUP_CREATE_USER, //// Offer.FETCH_GROUP_PRICE, //// Offer.FETCH_GROUP_STATES // Offer.FETCH_GROUP_THIS_OFFER, // Offer.FETCH_GROUP_OFFER_LOCAL, // StatableLocal.FETCH_GROUP_STATE, // State.FETCH_GROUP_STATE_DEFINITION, // StateDefinition.FETCH_GROUP_NAME, // LegalEntity.FETCH_GROUP_PERSON // }; public OfferEntryViewer(Entry entry) { super(entry); } private OfferListComposite list; @Override public AbstractTableComposite<Offer> createListComposite(Composite parent) { list = new OfferListComposite(parent, SWT.NONE); return list; } @Override protected void addResultTableListeners(AbstractTableComposite<Offer> tableComposite) { super.addResultTableListeners(tableComposite); list.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { EditOfferAction editAction = new EditOfferAction(); editAction.setSelection(list.getSelection()); editAction.run(); } }); } public String getID() { return ID; } @Override protected Collection<Offer> doSearch( QueryCollection<? extends OfferQuery> queryMap, ProgressMonitor monitor) { return OfferDAO.sharedInstance().getOffersByQuery( queryMap, OfferListComposite.FETCH_GROUPS_OFFER, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor); } @Override public Class<Offer> getTargetType() { return Offer.class; } /** * The ID for the Quick search registry. */ public static final String QUICK_SEARCH_REGISTRY_ID = OfferEntryViewer.class.getName(); @Override protected String getQuickSearchRegistryID() { return QUICK_SEARCH_REGISTRY_ID; } }