package mit.util.ui ;

public abstract class Panel
extends mit.swing.xJPanel
{
	public abstract mit.util.ui.CriteriaPanel getCriteriaPanel() ;
	public abstract mit.util.ui.ActionPanel getActionPanel() ;

	protected java.awt.GridBagConstraints gbc = new java.awt.GridBagConstraints() ;
	protected java.awt.GridBagLayout gbl = new java.awt.GridBagLayout() ;

	public void addNotify()
	{
		super.addNotify() ;
		try
		{
			removeAll() ;
			gbc.gridx = 1 ;
			gbc.gridy = 1 ;
			gbc.gridwidth = java.awt.GridBagConstraints.RELATIVE ;
			gbc.gridheight = 2 ;
			gbc.weightx = 0.8 ;
			gbc.weighty = 1.0 ;
			gbc.anchor = java.awt.GridBagConstraints.WEST ;
			gbc.fill = java.awt.GridBagConstraints.BOTH ;
			if( null != getCriteriaPanel() )
			{
				addAComponent( getCriteriaPanel() , gbl , gbc ) ;
			}

			gbc.gridx = 2 ;
			gbc.gridwidth = java.awt.GridBagConstraints.REMAINDER ;
			gbc.weightx = 0.2 ;
			if( null != getActionPanel() )
			{
				addAComponent( getActionPanel() , gbl , gbc ) ;
			}

			if( null != getCriteriaPanel() )
			{
				getCriteriaPanel().requestFocus() ;
				transferFocus() ;
			}

			invalidate() ;
			validate() ;
			repaint() ;
		}
		catch( Exception ex )
		{
			ex.printStackTrace() ;
		}
	}

	protected void addAComponent
	( javax.swing.JComponent component
	, java.awt.GridBagLayout layout
	, java.awt.GridBagConstraints constraints
	)
	{
		layout.setConstraints( component , constraints ) ;
		add( component ) ;
	}

}