package org.nightlabs.jfire.trade.ui.articlecontainer.detail.action.changetariff; import java.util.Set; import javax.jdo.JDOHelper; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.nightlabs.base.ui.job.Job; import org.nightlabs.base.ui.wizard.DynamicPathWizard; import org.nightlabs.jfire.accounting.id.TariffID; import org.nightlabs.jfire.base.JFireEjb3Factory; import org.nightlabs.jfire.trade.TradeManagerRemote; import org.nightlabs.jfire.trade.id.ArticleID; import org.nightlabs.jfire.trade.ui.resource.Messages; import org.nightlabs.progress.ProgressMonitor; public class ChangeTariffWizard extends DynamicPathWizard { private Set<ArticleID> selectedArticleIDs; private ChangeTariffPage changeTariffPage; public ChangeTariffWizard(Set<ArticleID> selectedArticleIDs) { assert selectedArticleIDs != null : "selectedArticleIDs != null"; //$NON-NLS-1$ this.selectedArticleIDs = selectedArticleIDs; } @Override public void addPages() { changeTariffPage = new ChangeTariffPage(selectedArticleIDs); addPage(changeTariffPage); } @Override public boolean performFinish() { final TariffID selectedTariffID = (TariffID) JDOHelper.getObjectId(changeTariffPage.getSelectedTariff()); Job setSelectedTariffJob = new Job(Messages.getString("org.nightlabs.jfire.trade.ui.articlecontainer.detail.action.changetariff.ChangeTariffWizard.job.setTariff")) { //$NON-NLS-1$ @Override protected IStatus run(ProgressMonitor monitor) throws Exception { TradeManagerRemote tm = JFireEjb3Factory.getRemoteBean(TradeManagerRemote.class, org.nightlabs.jfire.base.login.ui.Login.getLogin().getInitialContextProperties()); tm.assignTariff(selectedArticleIDs, selectedTariffID, false, null, 1); return Status.OK_STATUS; } }; setSelectedTariffJob.setPriority(org.eclipse.core.runtime.jobs.Job.INTERACTIVE); setSelectedTariffJob.setUser(true); setSelectedTariffJob.schedule(); return true; } }