/** * */ package org.nightlabs.jfire.trade.ui.articlecontainer.detail.action.reverse; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.nightlabs.base.ui.composite.XComposite; import org.nightlabs.base.ui.progress.ProgressMonitorWrapper; import org.nightlabs.base.ui.wizard.DynamicPathWizardDialog; import org.nightlabs.base.ui.wizard.DynamicPathWizardPage; import org.nightlabs.jfire.store.id.ProductID; import org.nightlabs.jfire.trade.ui.resource.Messages; import org.nightlabs.progress.NullProgressMonitor; import org.nightlabs.progress.ProgressMonitor; /** * @author daniel[at]nightlabs[dot]de * */ public class ReverseProductWizardPage extends DynamicPathWizardPage { public static final String PAGE_NAME = ReverseProductWizardPage.class.getName(); private ReverseProductComposite reverseProductComposite; /** * Creates a ReverseProductWizardPage. */ public ReverseProductWizardPage() { super(PAGE_NAME, Messages.getString("org.nightlabs.jfire.trade.ui.articlecontainer.detail.action.reverse.ReverseProductWizardPage.page.name")); //$NON-NLS-1$ setDescription(Messages.getString("org.nightlabs.jfire.trade.ui.articlecontainer.detail.action.reverse.ReverseProductWizardPage.page.description")); //$NON-NLS-1$ setPageComplete(false); } /* (non-Javadoc) * @see org.nightlabs.base.ui.wizard.DynamicPathWizardPage#createPageContents(org.eclipse.swt.widgets.Composite) */ @Override public Control createPageContents(Composite parent) { Composite wrapper = new XComposite(parent, SWT.NONE); reverseProductComposite = new ReverseProductComposite(wrapper, SWT.NONE); reverseProductComposite.getProductIDText().addDelayedModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { Display.getDefault().asyncExec(new Runnable(){ @Override public void run() { String errorMessage = null; ProductID productID = reverseProductComposite.getProductID(getProgressMonitor()); if (productID == null) { errorMessage = Messages.getString("org.nightlabs.jfire.trade.ui.articlecontainer.detail.action.reverse.ReverseProductDialog.errorMessage"); //$NON-NLS-1$ } setErrorMessage(errorMessage); setPageComplete(errorMessage == null); getContainer().updateButtons(); } }); } }); GridData gd = new GridData(GridData.CENTER, GridData.BEGINNING, true, false); reverseProductComposite.setLayoutData(gd); return wrapper; } public ReverseProductComposite getReverseProductComposite() { return reverseProductComposite; } protected ProgressMonitor getProgressMonitor() { if (getContainer() instanceof DynamicPathWizardDialog) { DynamicPathWizardDialog dlg = (DynamicPathWizardDialog) getContainer(); return new ProgressMonitorWrapper(dlg.getProgressMonitor()); } return new NullProgressMonitor(); } }