/*
* Created on Feb 28, 2010
*
*/
package org.atdl4j.ui.app.impl;
import java.util.List;
import java.util.Vector;
import org.atdl4j.config.Atdl4jConfig;
import org.atdl4j.config.Atdl4jOptions;
import org.atdl4j.config.InputAndFilterData;
import org.atdl4j.data.exception.Atdl4jClassLoadException;
import org.atdl4j.ui.app.Atdl4jInputAndFilterDataPanel;
import org.atdl4j.ui.app.Atdl4jInputAndFilterDataPanelListener;
import org.atdl4j.ui.app.Atdl4jInputAndFilterDataSelectionPanel;
import org.atdl4j.ui.app.Atdl4jUserMessageHandler;
/**
* Represents the base, non-GUI specific component used to invoke Atdl4jInputAndFilterDataPanel pop-up.
*
* @author Scott Atwell
* @version 1.0, Mar 1, 2010
*/
public abstract class AbstractAtdl4jInputAndFilterDataSelectionPanel
implements Atdl4jInputAndFilterDataSelectionPanel,
Atdl4jInputAndFilterDataPanelListener
{
Atdl4jOptions atdl4jOptions;
Object parentOrShell; // SWT: Shell, Swing: JFrame, JDialog, etc
private Atdl4jInputAndFilterDataPanel atdl4jInputAndFilterDataPanel;
private List<Atdl4jInputAndFilterDataPanelListener> listenerList = new Vector<Atdl4jInputAndFilterDataPanelListener>();
private Atdl4jUserMessageHandler atdl4jUserMessageHandler;
protected void init( Object aParentOrShell, Atdl4jOptions aAtdl4jOptions, Atdl4jUserMessageHandler aAtdl4jUserMessageHandler )
{
setAtdl4jOptions( aAtdl4jOptions );
setParentOrShell( aParentOrShell );
setAtdl4jUserMessageHandler( aAtdl4jUserMessageHandler );
// -- FixMsgLoadPanel (Load Message button/text field) - build() method called via concrete class --
setAtdl4jInputAndFilterDataPanel( getAtdl4jInputAndFilterDataPanel() );
getAtdl4jInputAndFilterDataPanel().addListener( this );
}
/**
* @return the atdl4jOptions
*/
public Atdl4jOptions getAtdl4jOptions()
{
return this.atdl4jOptions;
}
/**
* @param aAtdl4jOptions the atdl4jOptions to set
*/
private void setAtdl4jOptions(Atdl4jOptions aAtdl4jOptions)
{
this.atdl4jOptions = aAtdl4jOptions;
}
/**
* @return the parentOrShell
*/
public Object getParentOrShell()
{
return this.parentOrShell;
}
/**
* @param aParentOrShell the parentOrShell to set
*/
private void setParentOrShell(Object aParentOrShell)
{
this.parentOrShell = aParentOrShell;
}
public void addListener( Atdl4jInputAndFilterDataPanelListener aAtdl4jInputAndFilterCriteriaPanelListener )
{
listenerList.add( aAtdl4jInputAndFilterCriteriaPanelListener );
}
public void removeListener( Atdl4jInputAndFilterDataPanelListener aAtdl4jInputAndFilterCriteriaPanelListener )
{
listenerList.remove( aAtdl4jInputAndFilterCriteriaPanelListener );
}
protected void fireInputAndFilterDataSpecifiedEvent( InputAndFilterData aInputAndFilterData )
{
for ( Atdl4jInputAndFilterDataPanelListener tempListener : listenerList )
{
tempListener.inputAndFilterDataSpecified( aInputAndFilterData );
}
}
/**
* @param atdl4jInputAndFilterDataPanel the atdl4jInputAndFilterDataPanel to set
*/
public void setAtdl4jInputAndFilterDataPanel(Atdl4jInputAndFilterDataPanel atdl4jInputAndFilterDataPanel)
{
this.atdl4jInputAndFilterDataPanel = atdl4jInputAndFilterDataPanel;
}
/*
* Re-fire to listeners who have registered with us.
*/
public void inputAndFilterDataSpecified(InputAndFilterData aInputAndFilterData)
{
fireInputAndFilterDataSpecifiedEvent( aInputAndFilterData );
}
/**
* @return the Atdl4jInputAndFilterDataPanel
* @throws Atdl4jClassLoadException
*/
public Atdl4jInputAndFilterDataPanel getAtdl4jInputAndFilterDataPanel()
{
if ( atdl4jInputAndFilterDataPanel == null )
{
atdl4jInputAndFilterDataPanel = Atdl4jConfig.getConfig().createAtdl4jInputAndFilterDataPanel();
}
return atdl4jInputAndFilterDataPanel;
}
/**
* @return the atdl4jUserMessageHandler
*/
protected Atdl4jUserMessageHandler getAtdl4jUserMessageHandler()
{
return this.atdl4jUserMessageHandler;
}
/**
* @param aAtdl4jUserMessageHandler the atdl4jUserMessageHandler to set
*/
protected void setAtdl4jUserMessageHandler(Atdl4jUserMessageHandler aAtdl4jUserMessageHandler)
{
this.atdl4jUserMessageHandler = aAtdl4jUserMessageHandler;
}
}