package org.nightlabs.jfire.simpletrade.admin.ui.gridpriceconfig; import java.util.Collection; import org.eclipse.swt.widgets.Composite; import org.nightlabs.base.ui.notification.IDirtyStateManager; import org.nightlabs.jdo.NLJDOHelper; import org.nightlabs.jfire.accounting.gridpriceconfig.AssignInnerPriceConfigCommand; import org.nightlabs.jfire.accounting.gridpriceconfig.GridPriceConfig; import org.nightlabs.jfire.accounting.priceconfig.IInnerPriceConfig; import org.nightlabs.jfire.accounting.priceconfig.id.PriceConfigID; import org.nightlabs.jfire.base.JFireEjb3Factory; import org.nightlabs.jfire.base.login.ui.Login; import org.nightlabs.jfire.simpletrade.SimpleTradeManagerRemote; import org.nightlabs.jfire.simpletrade.dao.FormulaPriceConfigDAO; import org.nightlabs.jfire.store.id.ProductTypeID; import org.nightlabs.jfire.trade.admin.ui.gridpriceconfig.CellReferenceProductTypeSelector; import org.nightlabs.jfire.trade.admin.ui.gridpriceconfig.wizard.AbstractChooseGridPriceConfigWizard; import org.nightlabs.progress.NullProgressMonitor; import org.nightlabs.util.CollectionUtil; /** * @author Marco Schulze - Marco at NightLabs dot de */ public class PriceConfigComposite extends org.nightlabs.jfire.trade.admin.ui.gridpriceconfig.PriceConfigComposite { public PriceConfigComposite(Composite parent) { super(parent); } public PriceConfigComposite(Composite parent, IDirtyStateManager dirtyStateManager) { super(parent, dirtyStateManager); } @Override protected <P extends GridPriceConfig> Collection<P> storePriceConfigs(Collection<P> priceConfigs, AssignInnerPriceConfigCommand assignInnerPriceConfigCommand) { try { SimpleTradeManagerRemote stm = JFireEjb3Factory.getRemoteBean(SimpleTradeManagerRemote.class, Login.getLogin().getInitialContextProperties()); Collection<GridPriceConfig> gpcs = CollectionUtil.castCollection(priceConfigs); gpcs = stm.storePriceConfigs(gpcs, true, assignInnerPriceConfigCommand); return CollectionUtil.castCollection(gpcs); } catch (Exception x) { throw new RuntimeException(x); } } @Override public AbstractChooseGridPriceConfigWizard createChoosePriceConfigWizard(ProductTypeID parentProductTypeID) { return new ChooseSimpleTradePriceConfigWizard(parentProductTypeID); } @Override protected IInnerPriceConfig retrieveInnerPriceConfigForEditing(PriceConfigID priceConfigID) { return FormulaPriceConfigDAO.sharedInstance().getFormulaPriceConfig( priceConfigID, FETCH_GROUPS_INNER_PRICE_CONFIG_FOR_EDITING, NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, new NullProgressMonitor()); } @Override public CellReferenceProductTypeSelector createCellReferenceProductTypeSelector() { return new SimpleProductTypeSelector(); } }