package org.atdl4j.ui.app;
import java.util.List;
import org.atdl4j.config.Atdl4jOptions;
import org.atdl4j.data.exception.Atdl4jClassLoadException;
import org.atdl4j.data.exception.FIXatdlFormatException;
import org.atdl4j.data.exception.ValidationException;
import org.atdl4j.fixatdl.core.StrategiesT;
import org.atdl4j.fixatdl.core.StrategyT;
import org.atdl4j.ui.StrategiesUI;
import org.atdl4j.ui.impl.SelectedStrategyDetails;
/**
* Represents the core strategy selection and display GUI component.
*
*
* [as of March 4, 2010 @author Scott Atwell] "SWTApplication" refactoring - rename, overhaul, and layered
*
* Interfaces:
* -----------
* - org.atdl4j.ui.app.Atdl4jTesterPanel
* - org.atdl4j.ui.app.Atdl4jInputAndFilterDataSelectionPanel
* - org.atdl4j.ui.app.Atdl4jInputAndFilterDataPanel
* - org.atdl4j.ui.app.FixMsgLoadPanel
* - org.atdl4j.ui.app.Atdl4jCompositePanel
* - org.atdl4j.ui.app.FixatdlFileSelectionPanel
* - org.atdl4j.ui.app.StrategySelectionPanel
* - org.atdl4j.ui.app.StrategyDescriptionPanel
* - org.atdl4j.ui.app.StrategiesPanel
*
* Non-UI-specific abstract base implementation:
* ---------------------------------------------
* org.atdl4j.ui.app.AbstractAtdl4jTesterApp
* - org.atdl4j.ui.app.AbstractAtdl4jTesterPanel
* - org.atdl4j.ui.app.AbstractAtdl4jInputAndFilterDataSelectionPanel
* - org.atdl4j.ui.app.AbstractAtdl4jInputAndFilterDataPanel
* - org.atdl4j.ui.app.AbstractFixMsgLoadPanel
* - org.atdl4j.ui.app.AbstractAtdl4jCompositePanel
* - org.atdl4j.ui.app.AbstractFixatdlFileSelectionPanel
* - org.atdl4j.ui.app.AbstractStrategySelectionPanel
* - org.atdl4j.ui.app.AbstractStrategyDescriptionPanel
* - org.atdl4j.ui.app.AbstractStrategiesUI
*
* SWT-specific implementation:
* ----------------------------
* org.atdl4j.ui.swt.app.SWTAtdl4jTesterApp
* - org.atdl4j.ui.swt.app.SWTAtdl4jTesterPanel
* - org.atdl4j.ui.swt.app.SWTAtdl4jInputAndFilterDataSelectionPanel
* - org.atdl4j.ui.swt.app.SWTAtdl4jInputAndFilterDataPanel
* - org.atdl4j.ui.swt.app.SWTFixMsgLoadPanel
* - org.atdl4j.ui.swt.app.SWTAtdl4jCompositePanel
* - org.atdl4j.ui.swt.app.SWTFixatdlFileSelectionPanel
* - org.atdl4j.ui.swt.app.SWTStrategySelectionPanel
* - org.atdl4j.ui.swt.app.SWTStrategyDescriptionPanel
* - org.atdl4j.ui.swt.app.SWTStrategiesPanel
*
* Listeners:
* ----------
* - org.atdl4j.ui.app.Atdl4jInputAndFilterDataPanelListener
* - org.atdl4j.ui.app.FixMsgLoadPanelListener
* - org.atdl4j.ui.app.FixatdlFileSelectionPanelListener
* - org.atdl4j.ui.app.StrategySelectionPanelListener
* - org.atdl4j.ui.app.StrategiesUIListener
*
* Pop-up message handler:
* -----------------------
* - org.atdl4j.ui.app.Atdl4jUserMessageHandler
* - org.atdl4j.ui.app.AbstractAtdl4jUserMessageHandler
* - org.atdl4j.ui.swt.app.SWTAtdl4jUserMessageHandler
*
* Config:
* -------
* - org.atdl4j.config.Atdl4jOptions
* - org.atdl4j.config.AbstractAtdl4jOptions
* - org.atdl4j.ui.swt.config.SWTAtdl4jOptions
* - org.atdl4j.config.InputAndFilterData
*
*
* @author Scott Atwell
* @version 1.0, Feb 28, 2010
*/
public interface Atdl4jCompositePanel
{
public Object buildAtdl4jCompositePanel(Object aParentOrShell, Atdl4jOptions aAtdl4jOptions);
public Atdl4jOptions getAtdl4jOptions();
/*
* Parses the FIXatdl file aFilename into StrategiesT storing the result via Atdl4jOptions().setStrategies().
*/
public void parseFixatdlFile( String aFilename )
throws FIXatdlFormatException;
/**
* Can be invoked/re-invoked at anytime provided that parseFixatdlFile() has successfully parsed the
* FIXatdl file contents into Atdl4jOptions().setStrategies(). Re-generates the display.
* @throws Atdl4jClassLoadException
* @throws FIXatdlFormatException
*/
public void loadScreenWithFilteredStrategies() throws FIXatdlFormatException;
public boolean loadFixMessage( String aFixMessage );
public boolean loadScreenWithFilteredStrategiesAndLoadFixMessage( String aFixMessage );
public boolean loadScreenWithFilteredStrategiesAndLoadFixMessage( String aFixMessage, String aInputSelectStrategyName ) throws FIXatdlFormatException;
/*
* @return StrategyT (non-null only if passes all validation)
*/
public StrategyT validateStrategy() throws ValidationException;
public void setVisibleOkCancelButtonSection( boolean aVisible );
public void addListener(Atdl4jCompositePanelListener aAtdl4jCompositePanelListener);
public void removeListener(Atdl4jCompositePanelListener aAtdl4jCompositePanelListener);
public StrategiesT getStrategies();
public void setStrategies(StrategiesT strategies);
public List<StrategyT> getStrategiesFilteredStrategyList();
public StrategyT getSelectedStrategy();
public void setSelectedStrategy(StrategyT selectedStrategy);
public boolean isSelectedStrategyValidated();
public void setSelectedStrategyValidated(boolean aSelectedStrategyValidated);
public StrategiesUI getStrategiesUI();
public Atdl4jUserMessageHandler getAtdl4jUserMessageHandler();
public void initAtdl4jUserMessageHandler( Object parentOrShell );
public void setStrategyEventListener(StrategyEventListener aStrategyEventListener);
public SelectedStrategyDetails getSelectedStrategyDetails( boolean aPerformValidationFlag )
throws ValidationException;
public void setEditable(boolean editable);
}