package org.atdl4j.ui.swt.app.impl;
import org.atdl4j.config.Atdl4jOptions;
import org.atdl4j.ui.app.impl.AbstractStrategyDescriptionPanel;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Text;
/**
* Represents the SWT-specific Strategy Description GUI component.
*
* @author Scott Atwell
* @version 1.0, Mar 1, 2010
*/
public class SWTStrategyDescriptionPanel
extends AbstractStrategyDescriptionPanel
{
private Composite composite;
private Text strategyDescription;
private int DEFAULT_COMPOSITE_HEIGHT_HINT = 45;
private int DEFAULT_STRATEGY_DESCRIPTION_HEIGHT_HINT = 35;
public Object buildStrategyDescriptionPanel(Object parentOrShell, Atdl4jOptions atdl4jOptions)
{
return buildStrategyDescriptionPanel( (Composite) parentOrShell, atdl4jOptions );
}
public Composite buildStrategyDescriptionPanel(Composite aParentComposite, Atdl4jOptions atdl4jOptions)
{
setAtdl4jOptions( atdl4jOptions );
composite = new SWTVisibleGroup(aParentComposite, SWT.NONE);
((Group) composite).setText("Strategy Description");
composite.setLayout(new GridLayout(1, false));
composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
strategyDescription = new Text(composite, SWT.WRAP | SWT.BORDER | SWT.V_SCROLL );
strategyDescription.setBackground(composite.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
strategyDescription.setForeground(composite.getDisplay().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
GridData descData = new GridData(SWT.FILL, SWT.FILL, true, false);
descData.heightHint = DEFAULT_STRATEGY_DESCRIPTION_HEIGHT_HINT;
strategyDescription.setLayoutData(descData);
return composite;
}
/* (non-Javadoc)
* @see org.atdl4j.ui.app.AbstractStrategyDescriptionPanel#setStrategyDescriptionText(java.lang.String)
*/
protected void setStrategyDescriptionText(String aText)
{
if ( strategyDescription != null )
{
strategyDescription.setText( aText );
}
}
/* (non-Javadoc)
* @see org.atdl4j.ui.app.StrategyDescriptionPanel#setVisible(boolean)
*/
@Override
public void setVisible(boolean aVisible)
{
// -- Note that SWTVisibleGroup vs. Group as this handles setVisible() better (without consuming vertical space in GridLayout) --
if ( ( composite != null ) && ( ! composite.isDisposed() ) )
{
composite.setVisible( aVisible );
}
}
}