package org.nightlabs.jfire.trade.ui.overview.deliverynote; import java.util.Collection; import javax.jdo.FetchPlan; 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.jbpm.graph.def.StatableLocal; import org.nightlabs.jfire.jbpm.graph.def.State; import org.nightlabs.jfire.jbpm.graph.def.StateDefinition; import org.nightlabs.jfire.store.DeliveryNote; import org.nightlabs.jfire.trade.LegalEntity; import org.nightlabs.jfire.trade.dao.ArticleContainerDAO; import org.nightlabs.jfire.trade.query.DeliveryNoteQuery; import org.nightlabs.jfire.trade.ui.overview.ArticleContainerEntryViewer; import org.nightlabs.jfire.trade.ui.overview.deliverynote.action.EditDeliveryNoteAction; import org.nightlabs.progress.ProgressMonitor; /** * @author Daniel.Mazurek [at] NightLabs [dot] de * @author Marius Heinzmann - marius[at]nightlabs[dot]com */ public class DeliveryNoteEntryViewer extends ArticleContainerEntryViewer<DeliveryNote, DeliveryNoteQuery> { public static final String ID = DeliveryNoteEntryViewer.class.getName(); public static String[] FETCH_GROUPS_DELIVERY_NOTES = new String[] { FetchPlan.DEFAULT, DeliveryNote.FETCH_GROUP_THIS_DELIVERY_NOTE, DeliveryNote.FETCH_GROUP_DELIVERY_NOTE_LOCAL, StatableLocal.FETCH_GROUP_STATE, State.FETCH_GROUP_STATE_DEFINITION, StateDefinition.FETCH_GROUP_NAME, LegalEntity.FETCH_GROUP_PERSON }; public DeliveryNoteEntryViewer(Entry entry) { super(entry); } private DeliveryNoteListComposite list; @Override public AbstractTableComposite<DeliveryNote> createListComposite(Composite parent) { list = new DeliveryNoteListComposite(parent, SWT.NONE); return list; } @Override protected void addResultTableListeners(AbstractTableComposite<DeliveryNote> tableComposite) { super.addResultTableListeners(tableComposite); list.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { EditDeliveryNoteAction editAction = new EditDeliveryNoteAction(); editAction.setSelection(list.getSelection()); editAction.run(); } }); } public String getID() { return ID; } @Override protected Collection<DeliveryNote> doSearch( QueryCollection<? extends DeliveryNoteQuery> queryMap, ProgressMonitor monitor) { return (Collection<DeliveryNote>) ArticleContainerDAO.sharedInstance().getArticleContainersForQueries( queryMap, FETCH_GROUPS_DELIVERY_NOTES, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor ); } @Override public Class<DeliveryNote> getTargetType() { return DeliveryNote.class; } /** * The ID for the Quick search registry. */ public static final String QUICK_SEARCH_REGISTRY_ID = DeliveryNoteEntryViewer.class.getName(); @Override protected String getQuickSearchRegistryID() { return QUICK_SEARCH_REGISTRY_ID; } }