package org.atdl4j.ui.app.impl; import java.util.List; import java.util.Vector; import org.apache.log4j.Logger; import org.atdl4j.config.Atdl4jConfig; import org.atdl4j.config.Atdl4jOptions; import org.atdl4j.data.exception.FIXatdlFormatException; import org.atdl4j.ui.app.FixatdlFileSelectionPanel; import org.atdl4j.ui.app.FixatdlFileSelectionPanelListener; /** * Represents the base, non-GUI system-specific FIXatdl file selection component. * * @author Scott Atwell * @version 1.0, Feb 28, 2010 */ public abstract class AbstractFixatdlFileSelectionPanel implements FixatdlFileSelectionPanel { private final Logger logger = Logger.getLogger(AbstractFixatdlFileSelectionPanel.class); private Atdl4jOptions atdl4jOptions = null; private List<FixatdlFileSelectionPanelListener> listenerList = new Vector<FixatdlFileSelectionPanelListener>(); /** * @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( FixatdlFileSelectionPanelListener aFixatdlFileSelectionPanelListener ) { listenerList.add( aFixatdlFileSelectionPanelListener ); } public void removeListener( FixatdlFileSelectionPanelListener aFixatdlFileSelectionPanelListener ) { listenerList.remove( aFixatdlFileSelectionPanelListener ); } protected void fireFixatdlFileSelectedEvent( String aFilename ) { try { for ( FixatdlFileSelectionPanelListener tempListener : listenerList ) { tempListener.fixatdlFileSelected( aFilename ); } } catch (FIXatdlFormatException ex) { logger.info( "FIXatdlFormatException occured while loading file: " + aFilename ); if (Atdl4jConfig.getConfig().isThrowEventRuntimeExceptions()) throw new RuntimeException("FIXatdlFormatException while loading file: " + aFilename, ex); } } }