package org.nightlabs.jfire.trade.ui.overview.deliverynote.action; import javax.jdo.FetchPlan; import org.nightlabs.base.ui.wizard.DynamicPathWizardDialog; import org.nightlabs.jfire.store.DeliveryNote; import org.nightlabs.jfire.trade.Article; import org.nightlabs.jfire.trade.ArticleContainer; import org.nightlabs.jfire.trade.id.ArticleContainerID; import org.nightlabs.jfire.trade.ui.overview.action.AbstractArticleContainerAction; import org.nightlabs.jfire.trade.ui.transfer.wizard.AbstractCombiTransferWizard; import org.nightlabs.jfire.trade.ui.transfer.wizard.CombiTransferArticleContainerWizard; /** * @author Fitas. [at] NightLabs [dot] de * */ public class DeliverAction extends AbstractArticleContainerAction { public static final String ID = DeliverAction.class.getName(); public DeliverAction() { super(); setId(ID); } @Override public boolean calculateEnabled() { if (!super.calculateEnabled()) return false; ArticleContainer articleContainer = getArticleContainer(new String[] { FetchPlan.DEFAULT, DeliveryNote.FETCH_GROUP_CUSTOMER_ID, DeliveryNote.FETCH_GROUP_ARTICLES, DeliveryNote.FETCH_GROUP_DELIVERY_NOTE_LOCAL, Article.FETCH_GROUP_ARTICLE_LOCAL }); if (!(articleContainer instanceof DeliveryNote)) return true; DeliveryNote deliveryNote = (DeliveryNote)articleContainer; for (Article article : deliveryNote.getArticles()) if (!article.getArticleLocal().isDelivered()) return true; return false; } @Override public void run() { ArticleContainerID articleContainerID = getArticleContainerID(); CombiTransferArticleContainerWizard wizard = new CombiTransferArticleContainerWizard( articleContainerID, AbstractCombiTransferWizard.TRANSFER_MODE_DELIVERY); DynamicPathWizardDialog dialog = new DynamicPathWizardDialog(wizard); dialog.open(); } @Override public boolean calculateVisible() { return true; } }