package org.nightlabs.jfire.trade.admin.ui.editor; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.widgets.ExpandableComposite; import org.nightlabs.base.ui.context.UIContext; import org.nightlabs.base.ui.entity.editor.EntityEditorPageControllerModifyEvent; import org.nightlabs.base.ui.entity.editor.EntityEditorPageWithProgress; import org.nightlabs.base.ui.util.RCPUtil; import org.nightlabs.jfire.trade.admin.ui.resource.Messages; /** * @author Daniel.Mazurek [at] NightLabs [dot] de * */ public class ProductTypeMoneyFlowConfigPage extends EntityEditorPageWithProgress { // /** // * The Factory is registered to the extension-point and creates // * new instances of {@link TicketingMoneyFlowConfigPage}. // */ // public static class Factory implements IEntityEditorPageFactory { // public IFormPage createPage(FormEditor formEditor) { // return new ProductTypeMoneyFlowConfigPage(formEditor); // } // // public IEntityEditorPageController createPageController(EntityEditor editor) { // return new ProductTypeMoneyFlowConfigPageController(editor); // } // } public ProductTypeMoneyFlowConfigPage(FormEditor editor) { super(editor, ProductTypeMoneyFlowConfigPage.class.getName(), Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.ProductTypeMoneyFlowConfigPage.title")); //$NON-NLS-1$ } private ProductTypeMoneyFlowConfigSection moneyFlowSection = null; public ProductTypeMoneyFlowConfigSection getMoneyFlowSection() { return moneyFlowSection; } @Override protected void addSections(Composite parent) { moneyFlowSection = new ProductTypeMoneyFlowConfigSection(this, parent, ExpandableComposite.TITLE_BAR, Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.ProductTypeMoneyFlowConfigPage.moneyFlowSection.title")); //$NON-NLS-1$ getManagedForm().addPart(moneyFlowSection); } @Override protected void handleControllerObjectModified(EntityEditorPageControllerModifyEvent modifyEvent) { final ProductTypeMoneyFlowConfigPageController controller = (ProductTypeMoneyFlowConfigPageController) getPageController(); UIContext.getDisplay().asyncExec(new Runnable() { public void run() { // moneyFlowSection.setProductTypeID(controller.getProductTypeID()); if (isDisposed()) return; // Do nothing if UI is already disposed moneyFlowSection.setProductType(controller.getProductType()); if (controller.getProductType() != null && controller.getProductType().isClosed()) { moneyFlowSection.setMessage(Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.ProductTypeMoneyFlowConfigPage.moneyFlowSectionMessage_productTypeClosed")); //$NON-NLS-1$ RCPUtil.setControlEnabledRecursive(moneyFlowSection.getMoneyFlowConfigComposite(), false); } switchToContent(); } }); } @Override protected String getPageFormTitle() { return Messages.getString("org.nightlabs.jfire.trade.admin.ui.editor.ProductTypeMoneyFlowConfigPage.pageFormTitle"); //$NON-NLS-1$ } }