/* * 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 ecds = new Vector(); 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 consultas = new Vector(); 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 ); } } }