/*
 * PresencasActionFactory.java
 *
 * Created on January 31, 2007, 6:37 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package siprp.medicina.presencas;

import com.evolute.utils.data.IDObject;
import com.evolute.utils.ui.panel.multipleactionlist.ActionFactory;
import javax.swing.Action;
import siprp.medicina.presencas.actions.DesmarcadoSHSTAction;
import siprp.medicina.presencas.actions.DesmarcadoTrabalhadorAction;
import siprp.medicina.presencas.actions.FaltouAction;
import siprp.medicina.presencas.actions.RealizouAction;
import siprp.medicina.presencas.actions.RealizouParcialmenteAction;

/**
 *
 * @author fpalma
 */
public class PresencasActionFactory implements ActionFactory<Presenca>
{
	public static final int REALIZOU = 0;
	public static final int REALIZOU_PARCIALMENTE = 1;
	public static final int TRABALHADOR_DESMARCOU = 2;
	public static final int SHST_DESMARCOU = 3;
	public static final int FALTOU = 4;
	
	protected final int TIPO;
	
	/** Creates a new instance of PresencasActionFactory */
	public PresencasActionFactory( int tipo )
	{
		TIPO = tipo;
	}

	public Action createAction(Presenca[] objects)
	{
		switch( TIPO )
		{
			case SHST_DESMARCOU:
				return new DesmarcadoSHSTAction( DesmarcadoSHSTAction.MULTIPLE, objects );
				
			case FALTOU:
				return new FaltouAction( FaltouAction.MULTIPLE, objects );
				
			default:
				return null;
		}
	}

	public Action createAction(Presenca object)
	{
		switch( TIPO )
		{
			case REALIZOU:
				return new RealizouAction( object );
				
			case REALIZOU_PARCIALMENTE:
				return new RealizouParcialmenteAction( object );
				
			case TRABALHADOR_DESMARCOU:
				return new DesmarcadoTrabalhadorAction( object );
				
			case SHST_DESMARCOU:
				return new DesmarcadoSHSTAction( DesmarcadoSHSTAction.SINGLE, new Presenca[]{ object } );
				
			case FALTOU:
				return new FaltouAction( FaltouAction.SINGLE, new Presenca[]{ object } );
				
			default:
				return null;
		}
	}
	
}
