package org.atdl4j.ui.swing.impl;
import javax.swing.JPanel;
import org.apache.log4j.Logger;
import org.atdl4j.data.Atdl4jHelper;
import org.atdl4j.fixatdl.core.StrategyT;
import org.atdl4j.ui.StrategyUI;
import org.atdl4j.ui.impl.BaseStrategyUIFactory;
/**
*
* This class contains the data associated with the <code>SwingStrategyUIFactory</code>.
*
* Creation date: (Oct 4, 2010 9:05:33 PM)
* @author Scott Atwell
*/
public class SwingStrategyUIFactory extends BaseStrategyUIFactory
{
protected static final Logger logger = Logger.getLogger( SwingStrategyUIFactory.class );
public static StrategyUI createStrategyUIAndContainer(SwingStrategiesUI aStrategiesUI, StrategyT aStrategy)
{
// create composite
JPanel strategyParent = aStrategiesUI.getStrategiesPanel();
StrategyUI ui;
// build strategy and catch strategy-specific errors
try
{
ui = createStrategyUI( aStrategy, aStrategiesUI.getStrategies(), aStrategiesUI.getStrategiesRules(), strategyParent, aStrategiesUI.getAtdl4jOptions() );
}
catch (Throwable e)
{
getAtdl4jUserMessageHandler().displayException( "Strategy Load Error",
"Error in Strategy: " + Atdl4jHelper.getStrategyUiRepOrName( aStrategy ), e );
// rollback changes
strategyParent.removeAll();
// skip to next strategy
return null;
}
ui.setCxlReplaceMode( aStrategiesUI.getAtdl4jOptions().getInputAndFilterData().getInputCxlReplaceMode() );
return ui;
}
}