package org.marketcetera.photon.internal.strategy.engine.ui.workbench; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.marketcetera.photon.commons.ui.workbench.DataBindingPropertyPage; import org.marketcetera.photon.strategy.engine.model.core.StrategyEngine; import org.marketcetera.photon.strategy.engine.ui.StrategyEngineImage; import org.marketcetera.photon.strategy.engine.ui.StrategyEngineUI; import org.marketcetera.util.misc.ClassVersion; /* $License$ */ /** * Property page for configuring a {@link StrategyEngine}. * * @author <a href="mailto:will@marketcetera.com">Will Horn</a> * @version $Id: StrategyEngineIdentificationPropertyPage.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.0.0 */ @ClassVersion("$Id: StrategyEngineIdentificationPropertyPage.java 16154 2012-07-14 16:34:05Z colin $") public class StrategyEngineIdentificationPropertyPage extends DataBindingPropertyPage { private StrategyEngine mOriginalEngine; private StrategyEngine mNewEngine; /** * Constructor. */ public StrategyEngineIdentificationPropertyPage() { setImageDescriptor(StrategyEngineImage.ENGINE_OBJ.getImageDescriptor()); noDefaultAndApplyButton(); } @Override protected Control createContents(Composite parent) { mOriginalEngine = (StrategyEngine) getElement().getAdapter( StrategyEngine.class); // make a copy so cancel works as expected mNewEngine = (StrategyEngine) EcoreUtil.copy(mOriginalEngine); Composite composite = StrategyEngineUI .createStrategyEngineIdentificationComposite(parent, getDataBindingContext(), mNewEngine); return composite; } @Override public boolean performOk() { if (!mOriginalEngine.isReadOnly()) { mOriginalEngine.setName(mNewEngine.getName()); mOriginalEngine.setDescription(mNewEngine.getDescription()); } return true; } }