package org.marketcetera.photon.internal.strategy.engine.ui;
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.marketcetera.photon.commons.ui.databinding.DataBindingUtils;
import org.marketcetera.photon.commons.ui.databinding.ObservingComposite;
import org.marketcetera.photon.strategy.engine.model.core.StrategyEngine;
import org.marketcetera.photon.strategy.engine.model.core.StrategyEngineCorePackage;
import org.marketcetera.util.misc.ClassVersion;
/* $License$ */
/**
* A control for capturing strategy engine name and description. The UI is bound
* to model objects passed in the constructor.
*
* @author <a href="mailto:will@marketcetera.com">Will Horn</a>
* @version $Id: StrategyEngineIdentificationComposite.java 16154 2012-07-14 16:34:05Z colin $
* @since 2.0.0
*/
@ClassVersion("$Id: StrategyEngineIdentificationComposite.java 16154 2012-07-14 16:34:05Z colin $")
public class StrategyEngineIdentificationComposite extends ObservingComposite {
/**
* Constructor.
*
* @param parent
* parent composite in which to create the widgets
* @param dataBindingContext
* the data binding context to use for model-UI bindings
* @param strategyEngine
* the strategy engine model object
*/
public StrategyEngineIdentificationComposite(Composite parent,
DataBindingContext dataBindingContext, StrategyEngine strategyEngine) {
super(parent);
GridLayoutFactory.swtDefaults().spacing(10, 5).numColumns(2).applyTo(
this);
int textStyle = strategyEngine.isReadOnly() ? SWT.READ_ONLY
: SWT.BORDER;
Messages.STRATEGY_ENGINE_IDENTIFICATION_COMPOSITE_NAME
.createLabel(this);
{
Text nameText = new Text(this, textStyle);
GridDataFactory.swtDefaults().align(SWT.LEFT, SWT.CENTER).hint(200,
SWT.DEFAULT).applyTo(nameText);
DataBindingUtils
.bindRequiredField(
dataBindingContext,
SWTObservables.observeText(nameText, SWT.Modify),
DataBindingUtils
.observeAndTrack(
getObservablesManager(),
strategyEngine,
StrategyEngineCorePackage.Literals.STRATEGY_ENGINE__NAME),
Messages.STRATEGY_ENGINE_IDENTIFICATION_COMPOSITE_NAME
.getRawLabel());
}
Messages.STRATEGY_ENGINE_IDENTIFICATION_COMPOSITE_DESCRIPTION
.createLabel(this);
{
Text descriptionText = new Text(this, textStyle);
GridDataFactory.swtDefaults().align(SWT.LEFT, SWT.CENTER).hint(200,
SWT.DEFAULT).applyTo(descriptionText);
DataBindingUtils
.bindValue(
dataBindingContext,
SWTObservables.observeText(descriptionText,
SWT.Modify),
DataBindingUtils
.observeAndTrack(
getObservablesManager(),
strategyEngine,
StrategyEngineCorePackage.Literals.STRATEGY_ENGINE__DESCRIPTION));
}
}
}