package org.atdl4j.ui.swt.app.impl; import java.math.BigDecimal; import java.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.apache.log4j.Logger; import org.atdl4j.config.Atdl4jConfig; import org.atdl4j.config.Atdl4jOptions; import org.atdl4j.config.StrategyFilterInputData; import org.atdl4j.data.Atdl4jConstants; import org.atdl4j.ui.app.impl.AbstractAtdl4jInputAndFilterDataPanel; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; /** * Represents the SWT-specific Atdl4jOptions and InputAndFilterData GUI component. * * @author Scott Atwell * @version 1.0, Mar 1, 2010 */ public class SWTAtdl4jInputAndFilterDataPanel extends AbstractAtdl4jInputAndFilterDataPanel { public final Logger logger = Logger.getLogger(SWTAtdl4jInputAndFilterDataPanel.class); private Composite parentComposite; private Combo dropDownListStrategyFilterFixMsgType; Button checkboxInputCxlReplaceMode; private Combo dropDownListStrategyFilterRegion; private Combo dropDownListStrategyFilterCountry; private Combo dropDownListStrategyFilterMICCode; private Combo dropDownListStrategyFilterSecurityType; private Text textSelectStrategyName; private Text textAreaStrategyNameFilterList; private Button checkboxInputStrategyListAsFilter; private Combo dropDownListFixFieldOrdType; private Combo dropDownListFixFieldSide; private Combo dropDownListFixFieldOrderQty; private Combo dropDownListFixFieldPrice; private Combo dropDownListFixFieldHandlInst; private Combo dropDownListFixFieldExecInst; private Combo dropDownListFixFieldTimeInForce; private Combo dropDownListFixFieldClOrdLinkID; private Button checkboxAtd4ljShowStrategyDescription; private Button checkboxAtd4ljShowFileSelectionSection; private Button checkboxAtd4ljShowValidateOutputSection; private Button checkboxAtd4ljShowTesterPanelOkCancelButtonSection; private Button checkboxAtd4ljAccommodateMixOfStrategyPanelsAndControls; private Text textIncrementPolicyLotSize; private Text textIncrementPolicyTick; public Object buildAtdl4jInputAndFilterDataPanel(Object aParentOrShell, Atdl4jOptions aAtdl4jOptions) { return buildAtdl4jInputAndFilterDataPanel( (Composite) aParentOrShell, aAtdl4jOptions ); } public Composite buildAtdl4jInputAndFilterDataPanel(Composite aParentOrShell, Atdl4jOptions aAtdl4jOptions) { parentComposite = (Composite) aParentOrShell; // -- Delegate back to AbstractAtdl4jInputAndFilterDataPanel -- init( aParentOrShell, aAtdl4jOptions ); // -- Build the SWT.Composite from Atdl4jCompositePanel -- buildCoreAtdl4jSettingsPanel( aParentOrShell ); return parentComposite; } protected Composite buildCoreAtdl4jSettingsPanel( Composite aParentOrShell ) { Composite tempCoreAtdl4jSettingsPanel = new Composite( aParentOrShell, SWT.NONE ); GridLayout tempLayout = new GridLayout(1, false); tempCoreAtdl4jSettingsPanel.setLayout(tempLayout); tempCoreAtdl4jSettingsPanel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); buildStrategyFilterPanel( tempCoreAtdl4jSettingsPanel ); Composite tempThreeColPanel = new Composite( tempCoreAtdl4jSettingsPanel, SWT.NONE ); GridLayout tempTwoColLayout = new GridLayout(3, false); tempThreeColPanel.setLayout(tempTwoColLayout); tempThreeColPanel.setLayoutData(new GridData(SWT.NONE, SWT.FILL, false, false)); buildStandardFixFieldsPanel( tempThreeColPanel ); buildSelectStrategyPanel( tempThreeColPanel ); Composite tempThirdColumn = new Composite( tempThreeColPanel, SWT.NONE ); GridLayout tempThirdColumnLayout = new GridLayout(1, false); tempThirdColumn.setLayout(tempThirdColumnLayout); tempThirdColumn.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); buildAtdl4jOptionsSettingsPanel( tempThirdColumn ); buildIncrementPolicyPanel( tempThirdColumn ); return tempCoreAtdl4jSettingsPanel; } protected Composite buildStrategyFilterPanel( Composite aParent ) { Group tempStrategyFilterGroup = new Group( aParent, SWT.NONE ); tempStrategyFilterGroup.setText( STRATEGY_FILTER_PANEL_NAME ); RowLayout tempStrategyFilterGroupLayout = new RowLayout( SWT.VERTICAL ); tempStrategyFilterGroup.setLayout(tempStrategyFilterGroupLayout); Composite tempRowOne = new Composite( tempStrategyFilterGroup, SWT.NONE ); tempRowOne.setLayout( new RowLayout( SWT.HORIZONTAL ) ); Label tempLabelStrategyFilterFixMsgType = new Label( tempRowOne, SWT.NONE ); tempLabelStrategyFilterFixMsgType.setText( "FixMsgType:" ); dropDownListStrategyFilterFixMsgType = new Combo( tempRowOne, SWT.READ_ONLY ); List<String> tempFixMsgTypeList = new ArrayList<String>(); tempFixMsgTypeList.add( "" ); // add empty string at top tempFixMsgTypeList.addAll( Arrays.asList( Atdl4jConstants.STRATEGY_FILTER_FIX_MSG_TYPES ) ); dropDownListStrategyFilterFixMsgType.setItems( tempFixMsgTypeList.toArray( new String[0] ) ); dropDownListStrategyFilterFixMsgType.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); checkboxInputCxlReplaceMode = new Button( tempRowOne, SWT.CHECK ); checkboxInputCxlReplaceMode.setText( "Cxl Replace Mode" ); Composite tempRowTwo = new Composite( tempStrategyFilterGroup, SWT.NONE ); tempRowTwo.setLayout( new RowLayout( SWT.HORIZONTAL ) ); Label tempLabelStrategyFilterRegion = new Label( tempRowTwo, SWT.NONE ); tempLabelStrategyFilterRegion.setText( "Region:" ); dropDownListStrategyFilterRegion = new Combo( tempRowTwo, SWT.READ_ONLY ); List<String> tempRegionList = new ArrayList<String>(); tempRegionList.add( "" ); // add empty string at top tempRegionList.addAll( Arrays.asList( Atdl4jConstants.STRATEGY_FILTER_REGIONS ) ); dropDownListStrategyFilterRegion.setItems( tempRegionList.toArray( new String[0] ) ); dropDownListStrategyFilterRegion.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); Label tempLabelStrategyFilterCountry = new Label( tempRowTwo, SWT.NONE ); tempLabelStrategyFilterCountry.setText( "Country:" ); dropDownListStrategyFilterCountry = new Combo( tempRowTwo, SWT.NONE ); dropDownListStrategyFilterCountry.setItems( DEFAULT_STRATEGY_FILTER_COUNTRY_SUBSET_LIST ); dropDownListStrategyFilterCountry.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); dropDownListStrategyFilterCountry.setToolTipText( "Specify ISO 3166 (2 character) Country Code\nExample list provided." ); Label tempLabelStrategyFilterMICCode = new Label( tempRowTwo, SWT.NONE ); tempLabelStrategyFilterMICCode.setText( "MIC Code:" ); dropDownListStrategyFilterMICCode = new Combo( tempRowTwo, SWT.NONE ); dropDownListStrategyFilterMICCode.setItems( DEFAULT_STRATEGY_FILTER_MIC_CODE_SUBSET_LIST ); dropDownListStrategyFilterMICCode.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); dropDownListStrategyFilterMICCode.setToolTipText( "Specify ISO 10383 (4 character) MICCode Code\nExample list provided." ); Label tempLabelStrategyFilterSecurityType = new Label( tempRowTwo, SWT.NONE ); tempLabelStrategyFilterSecurityType.setText( "Security Type:" ); dropDownListStrategyFilterSecurityType = new Combo( tempRowTwo, SWT.NONE ); List<String> tempSecurityTypeList = new ArrayList<String>(); tempSecurityTypeList.add( "" ); // add empty string at top tempSecurityTypeList.addAll( Arrays.asList( Atdl4jConstants.STRATEGY_FILTER_SECURITY_TYPES ) ); dropDownListStrategyFilterSecurityType.setItems( tempSecurityTypeList.toArray( new String[0] ) ); dropDownListStrategyFilterSecurityType.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); dropDownListStrategyFilterSecurityType.setToolTipText( "Specify FIX (tag 167) Security Type value\nExample list provided." ); return tempStrategyFilterGroup; } protected Composite buildSelectStrategyPanel( Composite aParent ) { Group tempSelectStrategyGroup = new Group( aParent, SWT.NONE ); tempSelectStrategyGroup.setText( "Select Strategy" ); GridLayout tempSelectStrategyGroupLayout = new GridLayout( 1, true ); tempSelectStrategyGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); tempSelectStrategyGroup.setLayout(tempSelectStrategyGroupLayout); Composite tempSelectStrategyNameComposite = new Composite( tempSelectStrategyGroup, SWT.NONE ); tempSelectStrategyNameComposite.setLayout( new RowLayout( SWT.HORIZONTAL ) ); Label tempLabelSelectStrategyName = new Label( tempSelectStrategyNameComposite, SWT.NONE ); tempLabelSelectStrategyName.setText( "Pre-select Strategy:" ); textSelectStrategyName = new Text( tempSelectStrategyNameComposite, SWT.BORDER ); Group tempStrategyNameFilterGroup = new Group( tempSelectStrategyGroup, SWT.NONE ); tempStrategyNameFilterGroup.setText( "Strategy Name Sequence (Filter)" ); tempStrategyNameFilterGroup.setToolTipText( "When specified, controls the order of Strategy Name list presented to the user." ); GridLayout tempStrategyNameFilterGroupLayout = new GridLayout( 1, true ); tempStrategyNameFilterGroup.setLayout( tempStrategyNameFilterGroupLayout ); tempStrategyNameFilterGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); textAreaStrategyNameFilterList = new Text( tempStrategyNameFilterGroup, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL ); textAreaStrategyNameFilterList.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); textAreaStrategyNameFilterList.setToolTipText( "When specified, controls the order of Strategy Name list presented to the user." ); checkboxInputStrategyListAsFilter = new Button( tempStrategyNameFilterGroup, SWT.CHECK ); checkboxInputStrategyListAsFilter.setText( "Apply List as Filter" ); checkboxInputStrategyListAsFilter.setToolTipText( "When checked only the strategy names specified will be shown (any others will be excluded.)" ); return tempSelectStrategyGroup; } protected Composite buildStandardFixFieldsPanel( Composite aParent ) { Group tempStandardFixFieldsGroup = new Group( aParent, SWT.NONE ); tempStandardFixFieldsGroup.setText( STANDARD_FIX_FIELDS_PANEL_NAME ); GridLayout tempStandardFixFieldsGroupLayout = new GridLayout( 2, true ); tempStandardFixFieldsGroup.setLayout(tempStandardFixFieldsGroupLayout); Label tempLabelStrategyFilterOrdType = new Label( tempStandardFixFieldsGroup, SWT.NONE ); tempLabelStrategyFilterOrdType.setText( "OrdType:" ); dropDownListFixFieldOrdType = new Combo( tempStandardFixFieldsGroup, SWT.NONE ); dropDownListFixFieldOrdType.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) ); dropDownListFixFieldOrdType.setItems( DEFAULT_FIX_FIELD_ORD_TYPE_SUBSET_LIST ); dropDownListFixFieldOrdType.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); dropDownListFixFieldOrdType.setToolTipText( "Specify FIX Field value\nExample list provided." ); Label tempLabelStrategyFilterSide = new Label( tempStandardFixFieldsGroup, SWT.NONE ); tempLabelStrategyFilterSide.setText( "Side:" ); dropDownListFixFieldSide = new Combo( tempStandardFixFieldsGroup, SWT.NONE ); dropDownListFixFieldSide.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) ); dropDownListFixFieldSide.setItems( DEFAULT_FIX_FIELD_SIDE_SUBSET_LIST ); dropDownListFixFieldSide.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); dropDownListFixFieldSide.setToolTipText( "Specify FIX Field value\nExample list provided." ); Label tempLabelStrategyFilterOrderQty = new Label( tempStandardFixFieldsGroup, SWT.NONE ); tempLabelStrategyFilterOrderQty.setText( "OrderQty:" ); dropDownListFixFieldOrderQty = new Combo( tempStandardFixFieldsGroup, SWT.NONE ); dropDownListFixFieldOrderQty.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) ); dropDownListFixFieldOrderQty.setItems( DEFAULT_FIX_FIELD_ORDER_QTY_SUBSET_LIST ); dropDownListFixFieldOrderQty.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); dropDownListFixFieldOrderQty.setToolTipText( "Specify FIX Field value\nExample list provided." ); Label tempLabelStrategyFilterPrice = new Label( tempStandardFixFieldsGroup, SWT.NONE ); tempLabelStrategyFilterPrice.setText( "Price:" ); dropDownListFixFieldPrice = new Combo( tempStandardFixFieldsGroup, SWT.NONE ); dropDownListFixFieldPrice.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) ); dropDownListFixFieldPrice.setItems( DEFAULT_FIX_FIELD_PRICE_SUBSET_LIST ); dropDownListFixFieldPrice.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); dropDownListFixFieldPrice.setToolTipText( "Specify FIX Field value\nExample list provided." ); Label tempLabelStrategyFilterHandlInst = new Label( tempStandardFixFieldsGroup, SWT.NONE ); tempLabelStrategyFilterHandlInst.setText( "HandlInst:" ); dropDownListFixFieldHandlInst = new Combo( tempStandardFixFieldsGroup, SWT.NONE ); dropDownListFixFieldHandlInst.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) ); dropDownListFixFieldHandlInst.setItems( DEFAULT_FIX_FIELD_HANDL_INST_SUBSET_LIST ); dropDownListFixFieldHandlInst.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); dropDownListFixFieldHandlInst.setToolTipText( "Specify FIX Field value\nExample list provided." ); Label tempLabelStrategyFilterExecInst = new Label( tempStandardFixFieldsGroup, SWT.NONE ); tempLabelStrategyFilterExecInst.setText( "ExecInst:" ); dropDownListFixFieldExecInst = new Combo( tempStandardFixFieldsGroup, SWT.NONE ); dropDownListFixFieldExecInst.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) ); dropDownListFixFieldExecInst.setItems( DEFAULT_FIX_FIELD_EXEC_INST_SUBSET_LIST ); dropDownListFixFieldExecInst.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); dropDownListFixFieldExecInst.setToolTipText( "Specify FIX Field value\nExample list provided." ); Label tempLabelStrategyFilterTimeInForce = new Label( tempStandardFixFieldsGroup, SWT.NONE ); tempLabelStrategyFilterTimeInForce.setText( "TimeInForce:" ); dropDownListFixFieldTimeInForce = new Combo( tempStandardFixFieldsGroup, SWT.NONE ); dropDownListFixFieldTimeInForce.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) ); dropDownListFixFieldTimeInForce.setItems( DEFAULT_FIX_FIELD_TIME_IN_FORCE_SUBSET_LIST ); dropDownListFixFieldTimeInForce.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); dropDownListFixFieldTimeInForce.setToolTipText( "Specify FIX Field value\nExample list provided." ); Label tempLabelStrategyFilterClOrdLinkID = new Label( tempStandardFixFieldsGroup, SWT.NONE ); tempLabelStrategyFilterClOrdLinkID.setText( "ClOrdLinkID:" ); dropDownListFixFieldClOrdLinkID = new Combo( tempStandardFixFieldsGroup, SWT.NONE ); dropDownListFixFieldClOrdLinkID.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, false ) ); dropDownListFixFieldClOrdLinkID.setItems( DEFAULT_FIX_FIELD_CL_ORD_LINK_ID_SUBSET_LIST ); dropDownListFixFieldClOrdLinkID.setVisibleItemCount( DEFAULT_DROP_DOWN_VISIBLE_ITEM_COUNT ); dropDownListFixFieldClOrdLinkID.setToolTipText( "Specify FIX Field value (eg for PAIRS strategy)\nExample list provided." ); return tempStandardFixFieldsGroup; } protected Composite buildAtdl4jOptionsSettingsPanel( Composite aParent ) { Group tempAtdl4jOptionsSettingsGroup = new Group( aParent, SWT.NONE ); tempAtdl4jOptionsSettingsGroup.setText( "Atdl4j Settings" ); GridLayout tempAtdl4jOptionsSettingsGroupLayout = new GridLayout( 1, true ); tempAtdl4jOptionsSettingsGroup.setLayout(tempAtdl4jOptionsSettingsGroupLayout); tempAtdl4jOptionsSettingsGroup.setLayoutData(new GridData(SWT.TOP, SWT.FILL, false, false)); checkboxAtd4ljShowStrategyDescription = new Button( tempAtdl4jOptionsSettingsGroup, SWT.CHECK ); checkboxAtd4ljShowStrategyDescription.setText( "Show Strategy Description" ); checkboxAtd4ljShowStrategyDescription.setToolTipText( "When checked, Strategy Description panel will be shown when Strategy's Description has been specified." ); checkboxAtd4ljShowStrategyDescription.setSelection( Atdl4jConfig.getConfig().isShowStrategyDescription() ); checkboxAtd4ljShowFileSelectionSection = new Button( tempAtdl4jOptionsSettingsGroup, SWT.CHECK ); checkboxAtd4ljShowFileSelectionSection.setText( "Show File Selection" ); checkboxAtd4ljShowFileSelectionSection.setToolTipText( "When checked, File Selection panel will be shown." ); checkboxAtd4ljShowFileSelectionSection.setSelection( Atdl4jConfig.getConfig().isShowFileSelectionSection() ); checkboxAtd4ljShowValidateOutputSection = new Button( tempAtdl4jOptionsSettingsGroup, SWT.CHECK ); checkboxAtd4ljShowValidateOutputSection.setText( "Show Validation Section" ); checkboxAtd4ljShowValidateOutputSection.setToolTipText( "When checked, Validation panel will be shown providing \"Validate\" button and output text field." ); checkboxAtd4ljShowValidateOutputSection.setSelection( Atdl4jConfig.getConfig().isShowValidateOutputSection() ); checkboxAtd4ljShowTesterPanelOkCancelButtonSection = new Button( tempAtdl4jOptionsSettingsGroup, SWT.CHECK ); checkboxAtd4ljShowTesterPanelOkCancelButtonSection.setText( "Show OK/Close" ); checkboxAtd4ljShowTesterPanelOkCancelButtonSection.setToolTipText( "When checked, \"OK\" and \"Close\" buttons will be displayed and available." ); checkboxAtd4ljShowTesterPanelOkCancelButtonSection.setSelection( Atdl4jConfig.getConfig().isShowTesterPanelOkCancelButtonSection() ); checkboxAtd4ljAccommodateMixOfStrategyPanelsAndControls = new Button( tempAtdl4jOptionsSettingsGroup, SWT.CHECK ); checkboxAtd4ljAccommodateMixOfStrategyPanelsAndControls.setText( "Accommodate SP/Controls Mix" ); checkboxAtd4ljAccommodateMixOfStrategyPanelsAndControls.setToolTipText( "Accommodates StrategyPanel containing a mix of StrategyPanel and Controls.\nFIXatdl 1.1 spec recommends against vs. prohibits. Mixed list may not be displayed 'in sequence' of file." ); checkboxAtd4ljAccommodateMixOfStrategyPanelsAndControls.setSelection( getAtdl4jOptions().isAccommodateMixOfStrategyPanelsAndControls() ); return tempAtdl4jOptionsSettingsGroup; } protected Composite buildIncrementPolicyPanel( Composite aParent ) { Group tempIncrementPolicyGroup = new Group( aParent, SWT.NONE ); tempIncrementPolicyGroup.setText( "Increment Policy" ); GridLayout tempIncrementPolicyGroupLayout = new GridLayout( 2, false ); tempIncrementPolicyGroup.setLayout(tempIncrementPolicyGroupLayout); tempIncrementPolicyGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false )); Label tempLabelIncrementPolicyLotSize = new Label( tempIncrementPolicyGroup, SWT.NONE ); tempLabelIncrementPolicyLotSize.setText( "Lot Size:" ); textIncrementPolicyLotSize = new Text( tempIncrementPolicyGroup, SWT.NONE ); textIncrementPolicyLotSize.setToolTipText( "May be used in conjunction with Control/@incrementPolicy on spinner controls" ); textIncrementPolicyLotSize.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false )); setTextValue( textIncrementPolicyLotSize, getAtdl4jOptions().getInputAndFilterData().getInputIncrementPolicy_LotSize() ); Label tempLabelIncrementPolicyTick = new Label( tempIncrementPolicyGroup, SWT.NONE ); tempLabelIncrementPolicyTick.setText( "Tick Size:" ); textIncrementPolicyTick = new Text( tempIncrementPolicyGroup, SWT.NONE ); textIncrementPolicyTick.setToolTipText( "May be used in conjunction with Control/@incrementPolicy on spinner controls" ); textIncrementPolicyTick.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false )); setTextValue( textIncrementPolicyTick, getAtdl4jOptions().getInputAndFilterData().getInputIncrementPolicy_Tick() ); return tempIncrementPolicyGroup; } /* */ public boolean extractAtdl4jOptionsFromScreen() { StrategyFilterInputData tempStrategyFilterInputData = new StrategyFilterInputData(); tempStrategyFilterInputData.setFixMsgType( getDropDownItemSelected( dropDownListStrategyFilterFixMsgType ) ); tempStrategyFilterInputData.setRegion_name( getDropDownItemSelected( dropDownListStrategyFilterRegion ) ); tempStrategyFilterInputData.setCountry_CountryCode( getDropDownItemSelected( dropDownListStrategyFilterCountry ) ); if ( ( tempStrategyFilterInputData.getCountry_CountryCode() != null ) && ( tempStrategyFilterInputData.getRegion_name() == null ) ) { throw new IllegalArgumentException("Region is required when Country is specified."); } tempStrategyFilterInputData.setMarket_MICCode( getDropDownItemSelected( dropDownListStrategyFilterMICCode ) ); tempStrategyFilterInputData.setSecurityType_name( getDropDownItemSelected( dropDownListStrategyFilterSecurityType ) ); // -- Set the StrategyFilterInputData we just built -- getAtdl4jOptions().getInputAndFilterData().setStrategyFilterInputData( tempStrategyFilterInputData ); getAtdl4jOptions().getInputAndFilterData().setInputCxlReplaceMode( getCheckboxValue( checkboxInputCxlReplaceMode, null ).booleanValue() ); getAtdl4jOptions().getInputAndFilterData().setInputSelectStrategyName( getTextValue( textSelectStrategyName ) ); getAtdl4jOptions().getInputAndFilterData().setApplyInputStrategyNameListAsFilter( getCheckboxValue( checkboxInputStrategyListAsFilter, Boolean.FALSE ) ); getAtdl4jOptions().getInputAndFilterData().setInputStrategyNameList( getTextList( textAreaStrategyNameFilterList ) ); addFixFieldToInputAndFilterData( FIX_FIELD_NAME_ORD_TYPE, dropDownListFixFieldOrdType ); addFixFieldToInputAndFilterData( FIX_FIELD_NAME_SIDE, dropDownListFixFieldSide ); addFixFieldToInputAndFilterData( FIX_FIELD_NAME_ORDER_QTY, dropDownListFixFieldOrderQty ); addFixFieldToInputAndFilterData( FIX_FIELD_NAME_PRICE, dropDownListFixFieldPrice ); addFixFieldToInputAndFilterData( FIX_FIELD_NAME_HANDL_INST, dropDownListFixFieldHandlInst ); addFixFieldToInputAndFilterData( FIX_FIELD_NAME_EXEC_INST, dropDownListFixFieldExecInst ); addFixFieldToInputAndFilterData( FIX_FIELD_NAME_TIME_IN_FORCE, dropDownListFixFieldTimeInForce ); addFixFieldToInputAndFilterData( FIX_FIELD_NAME_CL_ORD_LINK_ID, dropDownListFixFieldClOrdLinkID ); Atdl4jConfig.getConfig().setShowStrategyDescription( getCheckboxValue( checkboxAtd4ljShowStrategyDescription, null ).booleanValue() ); Atdl4jConfig.getConfig().setShowFileSelectionSection( getCheckboxValue( checkboxAtd4ljShowFileSelectionSection, null ).booleanValue() ); Atdl4jConfig.getConfig().setShowValidateOutputSection( getCheckboxValue( checkboxAtd4ljShowValidateOutputSection, null ).booleanValue() ); Atdl4jConfig.getConfig().setShowTesterPanelOkCancelButtonSection( getCheckboxValue( checkboxAtd4ljShowTesterPanelOkCancelButtonSection, null ).booleanValue() ); getAtdl4jOptions().setAccommodateMixOfStrategyPanelsAndControls( getCheckboxValue( checkboxAtd4ljAccommodateMixOfStrategyPanelsAndControls, null ).booleanValue() ); getAtdl4jOptions().getInputAndFilterData().setInputIncrementPolicy_LotSize( getTextValueAsBigDecimal( textIncrementPolicyLotSize ) ); getAtdl4jOptions().getInputAndFilterData().setInputIncrementPolicy_Tick( getTextValueAsBigDecimal( textIncrementPolicyTick ) ); return true; } /* */ public boolean loadScreenWithAtdl4jOptions() { if ( getAtdl4jOptions().getInputAndFilterData() != null ) { StrategyFilterInputData tempStrategyFilterInputData = null; if ( ( getAtdl4jOptions().getInputAndFilterData().getStrategyFilterInputDataList() != null ) && ( getAtdl4jOptions().getInputAndFilterData().getStrategyFilterInputDataList().size() > 0 ) ) { tempStrategyFilterInputData = getAtdl4jOptions().getInputAndFilterData().getStrategyFilterInputDataList().get( 0 ); } String tempFixMsgType = null; String tempRegion_name = null; String tempCountry_CountryCode = null; String tempMarket_MICCode = null; String tempSecurityType_name = null; if ( tempStrategyFilterInputData != null ) { tempFixMsgType = tempStrategyFilterInputData.getFixMsgType(); tempRegion_name = tempStrategyFilterInputData.getRegion_name(); tempCountry_CountryCode = tempStrategyFilterInputData.getCountry_CountryCode(); tempMarket_MICCode = tempStrategyFilterInputData.getMarket_MICCode(); tempSecurityType_name = tempStrategyFilterInputData.getSecurityType_name(); } selectDropDownItem( dropDownListStrategyFilterFixMsgType, tempFixMsgType ); selectDropDownItem( dropDownListStrategyFilterRegion, tempRegion_name ); selectDropDownItem( dropDownListStrategyFilterCountry, tempCountry_CountryCode ); selectDropDownItem( dropDownListStrategyFilterMICCode, tempMarket_MICCode ); selectDropDownItem( dropDownListStrategyFilterSecurityType, tempSecurityType_name ); setCheckboxValue( checkboxInputCxlReplaceMode, getAtdl4jOptions().getInputAndFilterData().getInputCxlReplaceMode(), Boolean.FALSE ); setTextValue( textSelectStrategyName, getAtdl4jOptions().getInputAndFilterData().getInputSelectStrategyName() ); setCheckboxValue( checkboxInputStrategyListAsFilter, getAtdl4jOptions().getInputAndFilterData().getApplyInputStrategyNameListAsFilter(), Boolean.FALSE ); setTextList( textAreaStrategyNameFilterList, getAtdl4jOptions().getInputAndFilterData().getInputStrategyNameList() ); selectDropDownItem( dropDownListFixFieldOrdType, getAtdl4jOptions().getInputAndFilterData().getInputHiddenFieldValue( FIX_FIELD_NAME_ORD_TYPE ) ); selectDropDownItem( dropDownListFixFieldSide, getAtdl4jOptions().getInputAndFilterData().getInputHiddenFieldValue( FIX_FIELD_NAME_SIDE ) ); selectDropDownItem( dropDownListFixFieldOrderQty, getAtdl4jOptions().getInputAndFilterData().getInputHiddenFieldValue( FIX_FIELD_NAME_ORDER_QTY ) ); selectDropDownItem( dropDownListFixFieldPrice, getAtdl4jOptions().getInputAndFilterData().getInputHiddenFieldValue( FIX_FIELD_NAME_PRICE ) ); selectDropDownItem( dropDownListFixFieldHandlInst, getAtdl4jOptions().getInputAndFilterData().getInputHiddenFieldValue( FIX_FIELD_NAME_HANDL_INST ) ); selectDropDownItem( dropDownListFixFieldExecInst, getAtdl4jOptions().getInputAndFilterData().getInputHiddenFieldValue( FIX_FIELD_NAME_EXEC_INST ) ); selectDropDownItem( dropDownListFixFieldTimeInForce, getAtdl4jOptions().getInputAndFilterData().getInputHiddenFieldValue( FIX_FIELD_NAME_TIME_IN_FORCE ) ); selectDropDownItem( dropDownListFixFieldClOrdLinkID, getAtdl4jOptions().getInputAndFilterData().getInputHiddenFieldValue( FIX_FIELD_NAME_CL_ORD_LINK_ID ) ); return true; } else { return false; } } public static List<String> getTextList( Text aText ) { String tempText = aText.getText(); if ( "".equals( tempText ) ) { return null; } else { // -- Split each line based upon '\n' -- return Arrays.asList( tempText.split( "\\r\\n" ) ); } } public static void setTextList( Text aText, List<String> aList ) { if ( aList == null ) { aText.setText( "" ); } else { StringBuffer tempBuffer = new StringBuffer(); for (String tempString : aList ) { if ( tempBuffer.length() > 0 ) { tempBuffer.append( '\n' ); } tempBuffer.append( tempString ); } aText.setText( tempBuffer.toString() ); } } public static String getTextValue( Text aText ) { String tempText = aText.getText(); if ( "".equals( tempText ) ) { return null; } else { return tempText; } } public static void setTextValue( Text aText, String aValue ) { if ( aValue == null ) { aText.setText( "" ); } else { aText.setText( aValue ); } } public static BigInteger getTextValueAsBigInteger( Text aText ) { String tempText = aText.getText(); if ( "".equals( tempText ) ) { return null; } else { return new BigInteger( tempText ); } } public static void setTextValue( Text aText, BigInteger aValue ) { if ( aValue == null ) { aText.setText( "" ); } else { aText.setText( aValue.toString() ); } } public static BigDecimal getTextValueAsBigDecimal( Text aText ) { String tempText = aText.getText(); if ( "".equals( tempText ) ) { return null; } else { return new BigDecimal( tempText ); } } public static void setTextValue( Text aText, BigDecimal aValue ) { if ( aValue == null ) { aText.setText( "" ); } else { aText.setText( aValue.toString() ); } } public static Boolean getCheckboxValue( Button aCheckbox, Boolean aNullIfState ) { boolean tempBool = aCheckbox.getSelection(); if ( ( aNullIfState != null ) && ( aNullIfState.booleanValue() == tempBool ) ) { return null; } else { return new Boolean( tempBool ); } } public static void setCheckboxValue( Button aCheckbox, Boolean aValue, boolean aStateIfNull ) { if ( aValue == null ) { aCheckbox.setSelection( aStateIfNull ); } else { aCheckbox.setSelection( aValue.booleanValue() ); } } public static String getDropDownItemSelected( Combo aDropDown ) { String tempText = aDropDown.getText(); if ( "".equals( tempText ) ) { return null; } else { return tempText; } } /** * @param aDropDown * @param aItem */ public static void selectDropDownItem( Combo aDropDown, String aItem ) { if ( aItem != null ) { aDropDown.setText( aItem ); } else { aDropDown.deselectAll(); } } protected void addFixFieldToInputAndFilterData( String aFieldName, Combo aDropDown ) { String tempFieldValue = getDropDownItemSelected( aDropDown ); if ( tempFieldValue != null ) { // -- Add/update it -- getAtdl4jOptions().getInputAndFilterData().setInputHiddenFieldNameValuePair( aFieldName, tempFieldValue ); } else { if ( ( getAtdl4jOptions() != null ) && ( getAtdl4jOptions().getInputAndFilterData() != null ) && ( getAtdl4jOptions().getInputAndFilterData().getInputHiddenFieldNameValueMap() != null ) ) { // -- Attempt to remove it if it exists -- getAtdl4jOptions().getInputAndFilterData().getInputHiddenFieldNameValueMap().remove( aFieldName ); } } } }