/* * RealizouParcialmenteAction.java * * Created on January 31, 2007, 6:20 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package siprp.medicina.presencas.actions; import com.evolute.utils.data.IDObject; import com.evolute.utils.ui.DialogException; import java.awt.event.ActionEvent; import java.util.Arrays; import java.util.Vector; import javax.swing.AbstractAction; import javax.swing.JOptionPane; import siprp.clientes.ClientesDataProvider; import siprp.data.Marcacao; import siprp.medicina.MedicinaDataProvider; import siprp.medicina.presencas.DetalhesRealizacaoDialog; import siprp.medicina.presencas.Presenca; import siprp.medicina.presencas.PresencasDataProvider; /** * * @author fpalma */ public class RealizouParcialmenteAction extends AbstractAction { protected Presenca presenca; /** Creates a new instance of RealizouParcialmenteAction */ public RealizouParcialmenteAction( Presenca presenca ) { super( "Parcialmente" ); this.presenca = presenca; if( Marcacao.TIPO_MARCACAO_TRABALHADOR_CONSULTA == presenca.getTipo().intValue() ) { setEnabled( false ); } } public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog( null, "", "", JOptionPane.ERROR_MESSAGE ); try { PresencasDataProvider provider = PresencasDataProvider.getProvider(); ClientesDataProvider clientesProvider = ( ClientesDataProvider ) ClientesDataProvider.getProvider(); MedicinaDataProvider medicinaProvider = ( MedicinaDataProvider ) MedicinaDataProvider.getProvider(); Integer trabalhadorID = medicinaProvider.getTrabalhadorIDByMarcacaoID( presenca.getID() ); Integer empresaID = clientesProvider.getEmpresaIDByTrabalhadorID( trabalhadorID ); Integer realizados[] = medicinaProvider.getDetalhesRealizadosForEstadosMarcacao( presenca.getID() ); Vector realizadosVector = new Vector(); realizadosVector.addAll( Arrays.asList( realizados ) ); IDObject validos[] = medicinaProvider.getDetalhesValidosTrabalhador( empresaID, trabalhadorID ); Vector aRealizar = new Vector(); for( int n = 0; n < validos.length; n++ ) { Integer id = validos[ n ].getID(); if( !realizadosVector.contains( id ) ) { aRealizar.add( validos[ n ] ); } } DetalhesRealizacaoDialog dialog = new DetalhesRealizacaoDialog( null, ( IDObject[] ) aRealizar.toArray( new IDObject[ aRealizar.size() ] ) ); Integer escolhidos[] = dialog.getSelected(); if( escolhidos != null ) { provider.marcarRealizado( presenca.getID(), escolhidos ); setEnabled( false ); } } catch( Exception ex ) { DialogException.showExceptionMessage( ex, "Erro a marcar", true ); } } }