/**
*
*/
package org.nightlabs.jfire.trade.ui.transfer.error;
import java.util.List;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;
import org.nightlabs.base.ui.editor.Editor2PerspectiveRegistry;
import org.nightlabs.jfire.accounting.id.InvoiceID;
import org.nightlabs.jfire.accounting.pay.PaymentData;
import org.nightlabs.jfire.accounting.pay.id.PayableObjectID;
import org.nightlabs.jfire.store.deliver.DeliveryData;
import org.nightlabs.jfire.store.id.DeliveryNoteID;
import org.nightlabs.jfire.trade.ui.articlecontainer.detail.ArticleContainerEditor;
import org.nightlabs.jfire.trade.ui.articlecontainer.detail.ArticleContainerEditorInput;
import org.nightlabs.jfire.trade.ui.resource.Messages;
import org.nightlabs.jfire.trade.ui.transfer.wizard.TransferWizard;
/**
* @author daniel[at]nightlabs[dot]de
*
*/
public class QuickSaleErrorDialog
extends ErrorDialog
{
protected static final int MANUAL_SOLVE_ID = IDialogConstants.CLIENT_ID + 5;
/**
* @param parentShell
* @param paymentDatas
* @param deliveryDatas
*/
public QuickSaleErrorDialog(Shell parentShell,
List<PaymentData> paymentDatas, List<DeliveryData> deliveryDatas, TransferWizard transferWizard) {
super(parentShell, paymentDatas, deliveryDatas, transferWizard);
}
@Override
protected void createButtonsForButtonBar(Composite parent)
{
createButton(parent, MANUAL_SOLVE_ID, Messages.getString("org.nightlabs.jfire.trade.ui.transfer.error.QuickSaleErrorDialog.button.solveManual.text"), false); //$NON-NLS-1$
super.createButtonsForButtonBar(parent);
}
@Override
protected void buttonPressed(int buttonId)
{
switch(buttonId) {
case MANUAL_SOLVE_ID:
solveManualPressed();
break;
default:
super.buttonPressed(buttonId);
}
}
protected void solveManualPressed()
{
okPressed();
if (getPaymentDatas() != null) {
for (PaymentData pd : getPaymentDatas()) {
for (PayableObjectID objectID : pd.getPayment().getPayableObjectIDs()) {
try {
Editor2PerspectiveRegistry.sharedInstance().openEditor(
new ArticleContainerEditorInput((InvoiceID)objectID), ArticleContainerEditor.ID_EDITOR);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
}
if (getDeliveryDatas() != null) {
for (DeliveryData dd : getDeliveryDatas()) {
for (DeliveryNoteID deliveryNoteID : dd.getDelivery().getDeliveryNoteIDs()) {
try {
Editor2PerspectiveRegistry.sharedInstance().openEditor(
new ArticleContainerEditorInput(deliveryNoteID), ArticleContainerEditor.ID_EDITOR);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
}
}
}