package org.nightlabs.jfire.trade.ui.account.transfer.manual; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.nightlabs.base.ui.composite.XComposite; import org.nightlabs.base.ui.wizard.WizardHopPage; import org.nightlabs.jfire.accounting.Account; import org.nightlabs.jfire.trade.ui.account.editor.AccountChooserComposite; import org.nightlabs.jfire.trade.ui.resource.Messages; import org.nightlabs.jfire.transfer.id.AnchorID; /** * @author Chairat Kongarayawetchakun - chairatk[at]nightlabs[dot]de */ class AccountChooserWizardPage extends WizardHopPage { private AnchorID selectedAccountAnchorID; private AccountChooserComposite accountChooserComposite; public AccountChooserWizardPage() { super(AccountChooserWizardPage.class.getName(), Messages.getString("org.nightlabs.jfire.trade.ui.account.transfer.manual.AccountChooserWizardPage.title")); //$NON-NLS-1$ setDescription(Messages.getString("org.nightlabs.jfire.trade.ui.account.transfer.manual.AccountChooserWizardPage.description")); //$NON-NLS-1$ } @Override public Control createPageContents(Composite parent) { XComposite mainComposite = new XComposite(parent, SWT.NONE); mainComposite.getGridLayout().numColumns = 1; accountChooserComposite = new AccountChooserComposite(mainComposite, SWT.NONE); accountChooserComposite.getAccountListComposite().addSelectionChangedListener(new ISelectionChangedListener(){ public void selectionChanged(SelectionChangedEvent e) { if(accountChooserComposite.getAccountListComposite().getFirstSelectedElement() != null){ Account selectedAccount = accountChooserComposite.getAccountListComposite().getFirstSelectedElement(); selectedAccountAnchorID = AnchorID.create(selectedAccount.getOrganisationID(), selectedAccount.getAnchorTypeID(), selectedAccount.getAnchorID()); String validationResult = ManualMoneyTransferWizard.isValidManualTransferAnchor(selectedAccountAnchorID); if (validationResult != null) { selectedAccountAnchorID = null; setErrorMessage(Messages.getString("org.nightlabs.jfire.trade.ui.account.transfer.manual.AccountChooserWizardPage.invalidSelection." + validationResult)); } else { setErrorMessage(null); } getContainer().updateButtons(); }//if } }); return mainComposite; } @Override public boolean isPageComplete() { return selectedAccountAnchorID != null ? true :false; } @Override public boolean canFlipToNextPage() { return selectedAccountAnchorID != null ? true :false; } @Override public boolean canBeLastPage() { return false; } public AnchorID getSelectedAccount() { return selectedAccountAnchorID; } public void setSelectedAccount(AnchorID selectedAccountAnchorID) { this.selectedAccountAnchorID = selectedAccountAnchorID; } }