package org.atdl4j.ui.swt.widget; import java.util.ArrayList; import java.util.List; import org.atdl4j.ui.impl.AbstractLabelWidget; import org.atdl4j.ui.impl.ControlHelper; import org.atdl4j.ui.swt.SWTWidget; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Widget; public class SWTLabelWidget extends AbstractLabelWidget implements SWTWidget<String> { private Label label; /** * 2/9/2010 Scott Atwell @see AbstractAtdl4jWidget.init(ControlT aControl, * ParameterT aParameter, Atdl4jOptions aAtdl4jOptions) throws JAXBException * public SWTLabelWidget(LabelT control) { super(control); } **/ public Widget createWidget(Composite parent, int style) { // label label = new Label( parent, SWT.NONE ); /*** initValue should take precedence over label property on Label control per JIRA item ATDL-146 and FPL Algo Trading Working Group meeting held 10/13/2010 if ( control.getLabel() != null ) { label.setText( control.getLabel() ); } else if ( ControlHelper.getInitValue( control, getAtdl4jOptions() ) != null ) { label.setText( (String) ControlHelper.getInitValue( control, getAtdl4jOptions() ) ); } ***/ // -- initValue should take precedence over label property on Label control per JIRA item ATDL-146 and FPL Algo Trading Working Group meeting held 10/13/2010 -- if ( ControlHelper.getInitValue( control, getAtdl4jOptions() ) != null ) { label.setText( (String) ControlHelper.getInitValue( control, getAtdl4jOptions() ) ); } else if ( control.getLabel() != null ) { label.setText( control.getLabel() ); } else { label.setText( "" ); } GridData gd = new GridData( SWT.LEFT, SWT.TOP, false, false ); gd.horizontalSpan = 2; label.setLayoutData( gd ); // tooltip String tooltip = getTooltip(); if ( tooltip != null ) label.setToolTipText( tooltip ); return parent; } public void generateStateRuleListener(Listener listener) { // do nothing } public List<Control> getControls() { List<Control> widgets = new ArrayList<Control>(); widgets.add( label ); return widgets; } public List<Control> getControlsExcludingLabel() { return getControls(); } public void addListener(Listener listener) { // do nothing } public void removeListener(Listener listener) { // do nothing } public void setVisible(boolean visible) { for ( Control control : getControls() ) { control.setVisible( visible ); } } public void setEnabled(boolean enabled) { for ( Control control : getControls() ) { control.setEnabled( enabled ); } } public boolean isVisible() { for ( Control control : getControls() ) { if ( control.isVisible() ) { return true; } } return false; } public boolean isEnabled() { for ( Control control : getControls() ) { if ( control.isEnabled() ) { return true; } } return false; } /* (non-Javadoc) * @see org.atdl4j.ui.Atdl4jWidget#reinit() */ @Override public void processReinit( Object aControlInitValue ) { if ( ( label != null ) && ( ! label.isDisposed() ) ) { label.setText( (aControlInitValue != null ) ? (String) aControlInitValue : "" ); } } }