/*
* Created on Feb 26, 2010
*
*/
package org.atdl4j.ui.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import org.apache.log4j.Logger;
import org.atdl4j.config.Atdl4jOptions;
import org.atdl4j.data.ValidationRule;
import org.atdl4j.fixatdl.core.StrategiesT;
import org.atdl4j.fixatdl.core.StrategyT;
import org.atdl4j.ui.Atdl4jWidget;
import org.atdl4j.ui.AtdlWidgetListener;
import org.atdl4j.ui.StrategiesUI;
import org.atdl4j.ui.StrategyUI;
import org.atdl4j.ui.app.Atdl4jUserMessageHandler;
import org.atdl4j.ui.app.StrategiesUIListener;
/**
* Represents the base, non-GUI system-specific display panel of availabel FIXatdl strategies (StrategiesUI).
*
* Creation date: (Feb 26, 2010 11:09:19 PM)
* @author Scott Atwell
* @version 1.0, Feb 26, 2010
*/
public abstract class AbstractStrategiesUI
implements StrategiesUI
{
protected static final Logger logger = Logger.getLogger( AbstractStrategiesUI.class );
private Atdl4jOptions atdl4jOptions = null;
private List<StrategiesUIListener> listenerList = new Vector<StrategiesUIListener>();
private List<AtdlWidgetListener> widgetListeners = new ArrayList<AtdlWidgetListener>();
private boolean preCached = false;
private Atdl4jUserMessageHandler atdl4jUserMessageHandler = null;
private StrategyUI currentlyDisplayedStrategyUI = null;
private Map<String, ValidationRule> strategiesRules;
private StrategiesT strategies;
/**
* @param atdl4jOptions the atdl4jOptions to set
*/
protected void setAtdl4jOptions(Atdl4jOptions atdl4jOptions)
{
this.atdl4jOptions = atdl4jOptions;
}
/**
* @return the atdl4jOptions
*/
public Atdl4jOptions getAtdl4jOptions()
{
return atdl4jOptions;
}
public void addListener( StrategiesUIListener aStrategiesUIListener )
{
listenerList.add( aStrategiesUIListener );
}
public void removeListener( StrategiesUIListener aStrategiesUIListener )
{
listenerList.remove( aStrategiesUIListener );
}
protected void fireStrategySelectedEvent( StrategyT aStrategy, int index )
{
for ( StrategiesUIListener tempListener : listenerList )
{
tempListener.strategySelected( aStrategy, index );
}
}
/**
* @return the preCached
*/
public boolean isPreCached()
{
return this.preCached;
}
/**
* @param aPreCached the preCached to set
*/
public void setPreCached(boolean aPreCached)
{
this.preCached = aPreCached;
}
public StrategyT getCurrentlyDisplayedStrategy()
{
StrategyUI tempStrategyUI = getCurrentlyDisplayedStrategyUI();
if ( tempStrategyUI != null )
{
return tempStrategyUI.getStrategy();
}
else
{
return null;
}
}
/**
* @param atdl4jUserMessageHandler the atdl4jUserMessageHandler to set
*/
public void setAtdl4jUserMessageHandler(Atdl4jUserMessageHandler atdl4jUserMessageHandler)
{
this.atdl4jUserMessageHandler = atdl4jUserMessageHandler;
}
/**
* @return the atdl4jUserMessageHandler
*/
public Atdl4jUserMessageHandler getAtdl4jUserMessageHandler()
{
return atdl4jUserMessageHandler;
}
/**
* @return the currentlyDisplayedStrategyUI
*/
public StrategyUI getCurrentlyDisplayedStrategyUI()
{
return this.currentlyDisplayedStrategyUI;
}
/**
* @param aCurrentlyDisplayedStrategyUI the currentlyDisplayedStrategyUI to set
*/
protected void setCurrentlyDisplayedStrategyUI(StrategyUI aCurrentlyDisplayedStrategyUI)
{
this.currentlyDisplayedStrategyUI = aCurrentlyDisplayedStrategyUI;
}
/**
* @return the strategiesRules
*/
public Map<String, ValidationRule> getStrategiesRules()
{
return this.strategiesRules;
}
/**
* @param aStrategiesRules the strategiesRules to set
*/
protected void setStrategiesRules(Map<String, ValidationRule> aStrategiesRules)
{
this.strategiesRules = aStrategiesRules;
}
/**
* @return the strategies
*/
public StrategiesT getStrategies()
{
return this.strategies;
}
/**
* @param aStrategies the strategies to set
*/
protected void setStrategies(StrategiesT aStrategies)
{
this.strategies = aStrategies;
}
@Override
public void addWidgetListener(AtdlWidgetListener listener) {
widgetListeners.add(listener);
}
@Override
public void removeWidgetListener(AtdlWidgetListener listener) {
widgetListeners.remove(listener);
}
protected void fireWidgetChanged(Atdl4jWidget w)
{
for (AtdlWidgetListener listener: widgetListeners)
{
listener.widgetChanged(w);
}
}
}