package org.nightlabs.jfire.trade.admin.ui.overview; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ui.INewWizard; import org.eclipse.ui.IWorkbench; import org.nightlabs.base.ui.job.Job; import org.nightlabs.base.ui.wizard.DynamicPathWizard; import org.nightlabs.jdo.NLJDOHelper; import org.nightlabs.jfire.idgenerator.IDGenerator; import org.nightlabs.jfire.store.Unit; import org.nightlabs.jfire.store.dao.UnitDAO; import org.nightlabs.progress.ProgressMonitor; public class UnitCreateWizard extends DynamicPathWizard implements INewWizard { private UnitCreateWizardPage unitCreateWizardPage; public UnitCreateWizard() { setWindowTitle("Create new unit wizard"); } @Override public void addPages() { unitCreateWizardPage = new UnitCreateWizardPage(); addPage(unitCreateWizardPage); } private Unit newUnit; @Override public boolean performFinish() { newUnit = new Unit(IDGenerator.getOrganisationID(), unitCreateWizardPage.getUnitID(), unitCreateWizardPage.getDecimalDigits()); newUnit.getSymbol().copyFrom(unitCreateWizardPage.getUnitSymbolTextEditor().getI18nText()); newUnit.getName().copyFrom(unitCreateWizardPage.getUnitNameTextEditor().getI18nText()); Job job = new Job("Storing Unit...") { @Override protected IStatus run(ProgressMonitor monitor) throws Exception { monitor.beginTask("Storing Unit...", 1); UnitDAO.sharedInstance().storeUnit(newUnit, false, null, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, monitor); monitor.done(); return Status.OK_STATUS; } }; job.schedule(); return true; } @Override public void init(IWorkbench workbench, IStructuredSelection selection) { } }