package org.nightlabs.jfire.trade.ui.overview.invoice.action;
import javax.jdo.FetchPlan;
import org.nightlabs.base.ui.wizard.DynamicPathWizardDialog;
import org.nightlabs.jfire.accounting.Invoice;
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 PayInvoiceAction extends AbstractArticleContainerAction
{
public static final String ID = PayInvoiceAction.class.getName();
public PayInvoiceAction()
{
super();
setId(ID);
}
@Override
public boolean calculateEnabled() {
if (!super.calculateEnabled())
return false;
ArticleContainer articleContainer = getArticleContainer(new String[] {
FetchPlan.DEFAULT,
Invoice.FETCH_GROUP_CUSTOMER_ID,
Invoice.FETCH_GROUP_PRICE,
Invoice.FETCH_GROUP_INVOICE_LOCAL
});
if (!(articleContainer instanceof Invoice))
return true;
return ((Invoice)articleContainer).getInvoiceLocal().getAmountToPay() != 0;
}
@Override
public void run()
{
ArticleContainerID articleContainerID = getArticleContainerID();
CombiTransferArticleContainerWizard wizard = new CombiTransferArticleContainerWizard(
articleContainerID,
AbstractCombiTransferWizard.TRANSFER_MODE_PAYMENT);
DynamicPathWizardDialog dialog = new DynamicPathWizardDialog(wizard);
dialog.open();
}
@Override
public boolean calculateVisible() {
return true;
}
}