package org.marketcetera.photon.internal.strategy.engine.sa.ui;
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.marketcetera.photon.commons.Validate;
import org.marketcetera.photon.commons.ui.databinding.CustomWizardPageSupport;
import org.marketcetera.photon.strategy.engine.model.sa.StrategyAgentEngine;
import org.marketcetera.photon.strategy.engine.sa.ui.StrategyAgentEngineUI;
import org.marketcetera.photon.strategy.engine.ui.StrategyEngineUI;
import org.marketcetera.util.misc.ClassVersion;
/* $License$ */
/**
* The wizard page that collects strategy agent engine parameters.
*
* @author <a href="mailto:will@marketcetera.com">Will Horn</a>
* @version $Id: NewStrategyAgentWizardPage.java 16154 2012-07-14 16:34:05Z colin $
* @since 2.0.0
*/
@ClassVersion("$Id: NewStrategyAgentWizardPage.java 16154 2012-07-14 16:34:05Z colin $")
public class NewStrategyAgentWizardPage extends WizardPage {
private final StrategyAgentEngine mEngine;
private final DataBindingContext mDataBindingContext;
private CustomWizardPageSupport mWizardSupport;
/**
* Constructor.
*
* @param engine
* the model
* @throws IllegalArgumentException
* if engine is null
*/
public NewStrategyAgentWizardPage(StrategyAgentEngine engine) {
super(NewStrategyAgentWizardPage.class.getName());
Validate.notNull(engine, "engine"); //$NON-NLS-1$
setTitle(Messages.NEW_STRATEGY_AGENT_WIZARD_PAGE__TITLE.getText());
setDescription(Messages.NEW_STRATEGY_AGENT_WIZARD_PAGE__DESCRIPTION
.getText());
mEngine = engine;
mDataBindingContext = new DataBindingContext();
}
@Override
public void createControl(Composite parent) {
mWizardSupport = CustomWizardPageSupport.create(this,
mDataBindingContext);
Composite composite = new Composite(parent, SWT.NONE);
StrategyEngineUI.createStrategyEngineIdentificationComposite(composite,
mDataBindingContext, mEngine);
Group configurationGroup = new Group(composite, SWT.NONE);
GridLayoutFactory.swtDefaults().applyTo(configurationGroup);
GridDataFactory.swtDefaults().indent(5, SWT.DEFAULT).applyTo(
configurationGroup);
configurationGroup
.setText(Messages.NEW_STRATEGY_AGENT_WIZARD_PAGE_CONFIGURATION_GROUP__LABEL
.getText());
StrategyAgentEngineUI.createStrategyAgentConnectionComposite(
configurationGroup, mDataBindingContext, mEngine);
GridLayoutFactory.fillDefaults().generateLayout(composite);
setControl(composite);
}
@Override
public void dispose() {
if (mWizardSupport != null) {
mWizardSupport.dispose();
}
mDataBindingContext.dispose();
}
}