forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
237 lines
7.7 KiB
237 lines
7.7 KiB
/*
|
|
* RegistarPresencasWindow.java
|
|
*
|
|
* Created on January 31, 2007, 3:09 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.data.MappableObject;
|
|
import com.evolute.utils.tracker.TrackableWindow;
|
|
import com.evolute.utils.ui.DialogException;
|
|
import com.evolute.utils.ui.calendar.JCalendarPanel;
|
|
import com.evolute.utils.ui.panel.multipleactionlist.MultipleActionListPanel;
|
|
import java.awt.BorderLayout;
|
|
import java.awt.FlowLayout;
|
|
import java.awt.event.ActionEvent;
|
|
import java.awt.event.ActionListener;
|
|
import java.awt.event.WindowAdapter;
|
|
import java.awt.event.WindowEvent;
|
|
import java.util.Arrays;
|
|
import java.util.Collections;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.Vector;
|
|
import javax.swing.*;
|
|
import siprp.medicina.MedicinaDataProvider;
|
|
import siprp.medicina.prestadores.PrestadoresDataProvider;
|
|
|
|
/**
|
|
*
|
|
* @author fpalma
|
|
*/
|
|
public class RegistarPresencasWindow extends JFrame
|
|
implements ActionListener, TrackableWindow
|
|
{
|
|
protected static final Integer PRESTADOR_ID_SIPRP = new Integer( -1 );
|
|
protected static final Integer PRESTADOR_ID_TODOS = new Integer( -2 );
|
|
|
|
protected static final IDObject PRESTADOR_SIPRP = new MappableObject( PRESTADOR_ID_SIPRP, "SIPRP" );
|
|
protected static final IDObject PRESTADOR_TODOS = new MappableObject( PRESTADOR_ID_TODOS, "Todos" );
|
|
|
|
protected JCalendarPanel dataPanel;
|
|
protected JButton carregarButton;
|
|
protected JComboBox prestadoresCombo;
|
|
protected JButton recarregarPrestadoresButton;
|
|
protected JScrollPane listECDsScroll;
|
|
protected JScrollPane listConsultasScroll;
|
|
protected MultipleActionListPanel listECDsPanel;
|
|
protected MultipleActionListPanel listConsultasPanel;
|
|
|
|
protected MedicinaDataProvider provider;
|
|
protected PrestadoresDataProvider prestadoresProvider;
|
|
|
|
/** Creates a new instance of RegistarPresencasWindow */
|
|
public RegistarPresencasWindow()
|
|
throws Exception
|
|
{
|
|
provider = ( MedicinaDataProvider ) MedicinaDataProvider.getProvider();
|
|
prestadoresProvider = PrestadoresDataProvider.getProvider();
|
|
setupComponents();
|
|
|
|
}
|
|
|
|
private void setupComponents()
|
|
{
|
|
setTitle( "Presen\u00e7as" );
|
|
setSize( 1000, 700 );
|
|
JLabel dataLabel = new JLabel( "Data" );
|
|
dataPanel = new JCalendarPanel( this );
|
|
carregarButton = new JButton( "Carregar" );
|
|
carregarButton.addActionListener( this );
|
|
JLabel prestadoresLabel = new JLabel( "Prestador" );
|
|
prestadoresCombo = new JComboBox ();
|
|
recarregarPrestadoresButton = new JButton( "Recarregar Prestadores" );
|
|
recarregarPrestadoresButton.addActionListener( this );
|
|
|
|
PresencasActionFactory realizouFactory = new PresencasActionFactory( PresencasActionFactory.REALIZOU );
|
|
PresencasActionFactory realizouParcialmenteFactory = new PresencasActionFactory( PresencasActionFactory.REALIZOU_PARCIALMENTE );
|
|
PresencasActionFactory trabalhadorDesmarcouFactory = new PresencasActionFactory( PresencasActionFactory.TRABALHADOR_DESMARCOU );
|
|
PresencasActionFactory shstDesmarcouFactory = new PresencasActionFactory( PresencasActionFactory.SHST_DESMARCOU );
|
|
PresencasActionFactory faltouFactory = new PresencasActionFactory( PresencasActionFactory.FALTOU );
|
|
|
|
getContentPane().setLayout( new BorderLayout( 5, 5 ) );
|
|
JPanel upperPanel = new JPanel();
|
|
getContentPane().add( upperPanel, BorderLayout.NORTH );
|
|
JTabbedPane tabbedPane = new JTabbedPane();
|
|
getContentPane().add( tabbedPane, BorderLayout.CENTER );
|
|
|
|
listECDsPanel =
|
|
new MultipleActionListPanel(
|
|
new PresencasActionFactory[]{ /*shstDesmarcouFactory, faltouFactory*/ },
|
|
new PresencasActionFactory[]{ realizouFactory, realizouParcialmenteFactory,
|
|
trabalhadorDesmarcouFactory, shstDesmarcouFactory,
|
|
faltouFactory } );
|
|
listECDsScroll = new JScrollPane( listECDsPanel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
|
|
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
|
|
|
|
listConsultasPanel =
|
|
new MultipleActionListPanel(
|
|
new PresencasActionFactory[]{ /*shstDesmarcouFactory, faltouFactory*/ },
|
|
new PresencasActionFactory[]{ realizouFactory, trabalhadorDesmarcouFactory,
|
|
shstDesmarcouFactory, faltouFactory } );
|
|
listConsultasScroll = new JScrollPane( listConsultasPanel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
|
|
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
|
|
|
|
tabbedPane.add( "ECDs", listECDsScroll );
|
|
tabbedPane.add( "Consultas", listConsultasScroll );
|
|
|
|
upperPanel.setLayout( new FlowLayout( FlowLayout.CENTER ) );
|
|
upperPanel.add( dataLabel );
|
|
upperPanel.add( dataPanel );
|
|
upperPanel.add( carregarButton );
|
|
upperPanel.add( prestadoresLabel );
|
|
upperPanel.add( prestadoresCombo );
|
|
upperPanel.add( recarregarPrestadoresButton );
|
|
|
|
setDefaultCloseOperation( WindowConstants.DO_NOTHING_ON_CLOSE );
|
|
addWindowListener( new WindowAdapter(){
|
|
public void windowClosing( WindowEvent e )
|
|
{
|
|
close();
|
|
}
|
|
|
|
public void windowOpened( WindowEvent e )
|
|
{
|
|
// setExtendedState( getExtendedState() | MAXIMIZED_BOTH );
|
|
}
|
|
|
|
} );
|
|
recarregarPrestadores();
|
|
}
|
|
|
|
public void actionPerformed( ActionEvent e )
|
|
{
|
|
Object source = e.getSource();
|
|
if( source.equals( carregarButton ) )
|
|
{
|
|
carregar();
|
|
}
|
|
else if( source.equals( recarregarPrestadoresButton ) )
|
|
{
|
|
recarregarPrestadores();
|
|
}
|
|
}
|
|
|
|
public void refresh()
|
|
{
|
|
}
|
|
|
|
public void open()
|
|
{
|
|
setVisible( true );
|
|
}
|
|
|
|
public void close()
|
|
{
|
|
SwingUtilities.invokeLater( new Runnable() {
|
|
public void run()
|
|
{
|
|
setVisible( false );
|
|
dispose();
|
|
}
|
|
} );
|
|
}
|
|
|
|
public boolean closeIfPossible()
|
|
{
|
|
close();
|
|
return true;
|
|
}
|
|
|
|
protected void carregar()
|
|
{
|
|
try
|
|
{
|
|
Date data = dataPanel.getDate();
|
|
Object ecdsArray[][] = provider.getListaECDsByData( data );
|
|
List<Presenca> ecds = new Vector<Presenca>();
|
|
for( int n = 0; n < ecdsArray.length; n++ )
|
|
{
|
|
Integer id = ( Integer ) ecdsArray[ n ][ 0 ];
|
|
String nome = ( String ) ecdsArray[ n ][ 1 ];
|
|
String nomePlain = ( String ) ecdsArray[ n ][ 2 ];
|
|
String empresa = ( String ) ecdsArray[ n ][ 3 ];
|
|
int tipo = ( ( Integer )ecdsArray[ n ][ 4 ] ).intValue();
|
|
ecds.add( new Presenca( id, nome, nomePlain, empresa, tipo ) );
|
|
}
|
|
Collections.sort( ecds );
|
|
listECDsPanel.showList( ecds.toArray( new Presenca[ ecds.size() ] ) );
|
|
listECDsScroll.setViewportView( listECDsPanel );
|
|
|
|
Object consultasArray[][] = provider.getListaConsultasByData( data );
|
|
List<Presenca> consultas = new Vector<Presenca>();
|
|
for( int n = 0; n < consultasArray.length; n++ )
|
|
{
|
|
Integer id = ( Integer ) consultasArray[ n ][ 0 ];
|
|
String nome = ( String ) consultasArray[ n ][ 1 ];
|
|
String nomePlain = ( String ) consultasArray[ n ][ 2 ];
|
|
String empresa = ( String ) consultasArray[ n ][ 3 ];
|
|
int tipo = ( ( Integer )consultasArray[ n ][ 4 ] ).intValue();
|
|
consultas.add( new Presenca( id, nome, nomePlain, empresa, tipo ) );
|
|
}
|
|
Collections.sort( consultas );
|
|
listConsultasPanel.showList( consultas.toArray( new Presenca[ ecds.size() ] ) );
|
|
listConsultasScroll.setViewportView( listConsultasPanel );
|
|
// setExtendedState( getExtendedState() | MAXIMIZED_BOTH );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a carregar dados", true );
|
|
}
|
|
}
|
|
|
|
protected void recarregarPrestadores()
|
|
{
|
|
try
|
|
{
|
|
IDObject prestadores[] = prestadoresProvider.getPrestadoresActivos();
|
|
prestadoresCombo.removeAllItems();
|
|
prestadoresCombo.addItem( PRESTADOR_TODOS );
|
|
prestadoresCombo.addItem( PRESTADOR_SIPRP );
|
|
for( int n = 0; n < prestadores.length; n++ )
|
|
{
|
|
prestadoresCombo.addItem( prestadores[ n ] );
|
|
}
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
DialogException.showExceptionMessage( ex, "Erro a carregar prestadores", true );
|
|
}
|
|
}
|
|
}
|