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.
SIPRP/trunk/SIPRPSoft/src/siprp/medicina/processo/detalhes/ECDsPanel.java

361 lines
10 KiB

/*
* ECDsPanel.java
*
* Created on 13 de Maio de 2007, 17:07
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.processo.detalhes;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import siprp.medicina.MedicinaConstants;
import siprp.medicina.processo.ProcessoDataProvider;
import siprp.medicina.processo.ProcessoEvent;
import siprp.medicina.processo.ProcessoListener;
import siprp.medicina.processo.data.TrabalhadoresEcdsData;
import siprp.medicina.processo.data.TrabalhadoresEcdsDatasData;
import com.evolute.utils.jdo.JDOProvider;
import com.evolute.utils.ui.calendar.JCalendarPanel;
/**
*
* @author Frederico
*/
public class ECDsPanel extends JPanel
implements ActionListener, MedicinaConstants, ChangeListener
{
protected JFrame owner;
protected JCalendarPanel dataEcdsPanel;
protected JButton estadoButton;
protected JButton emailButton;
protected JButton observacoesButton;
protected ObservacoesDialog observacoesDialog;
protected final Vector<ProcessoListener> PROCESSO_LISTENERS = new Vector<ProcessoListener>();
protected JDOProvider JDO;
protected ProcessoDataProvider provider;
protected Integer trabalhadorID;
protected Integer processoID;
protected TrabalhadoresEcdsData ecds;
protected TrabalhadoresEcdsDatasData ecdsData;
/**
* Creates a new instance of ECDsPanel
*/
public ECDsPanel( JFrame owner )
throws Exception
{
// this.owner = owner;
// JDO = ( JDOProvider ) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER );
// provider = ProcessoDataProvider.getProvider();
// setupComponents();
}
private void setupComponents()
{
// JLabel dataLabel = new JLabel( "Data" );
// dataConsultaPanel = new JCalendarPanel( null );
// dataConsultaPanel.addChangeListener( this );
// estadoButton = new JButton( " " );
// estadoButton.addActionListener( this );
// emailButton = new JButton( "Email" );
// emailButton.addActionListener( this );
// observacoesButton = new JButton( "Coment\u00e1rio" );
// observacoesButton.addActionListener( this );
//
// double cols[] =
// new double[]{ TableLayout.MINIMUM, TableLayout.FILL };
// double rows[] =
// new double[]{ TableLayout.MINIMUM, TableLayout.MINIMUM,
// TableLayout.MINIMUM, TableLayout.MINIMUM };
//
// TableLayout tableLayout = new TableLayout( cols, rows );
// tableLayout.setVGap( 5 );
// setLayout( tableLayout );
//
// add( dataLabel, new TableLayoutConstraints( 0, 0 ) );
// add( dataEcdsPanel, new TableLayoutConstraints( 1, 0 ) );
// add( estadoButton, new TableLayoutConstraints( 0, 1, 1, 1 ) );
// add( emailButton, new TableLayoutConstraints( 0, 2, 1, 2 ) );
// add( observacoesButton, new TableLayoutConstraints( 0, 3, 1, 3 ) );
}
public void actionPerformed(ActionEvent e)
{
// Object source = e.getSource();
// if( source.equals( observacoesButton ) )
// {
// editarObservacoes();
// }
// else if( source.equals( emailButton ) )
// {
// enviarEmail();
// }
// else if( source.equals( estadoButton ) )
// {
// mudarEstado();
// }
}
public void stateChanged(ChangeEvent e)
{
// Object source = e.getSource();
//
// if( source.equals( dataConsultaPanel ) )
// {
// Date data = dataConsultaPanel.getDate();
// if( data == null )
// {
// return;
// }
// try
// {
// boolean nova = false;
// if( ecds == null )
// {
// nova = true;
// Integer ecdsID = provider.getEcdsEmAbertoForProcesso( processoID );
// if( ecdsID == null )
// {
// ecds = new TrabalhadoresEcdsData();
// ecds.set( TrabalhadoresEcdsData.TRABALHADOR_ID, trabalhadorID );
// ecds.set( TrabalhadoresEcdsData.PROCESSO_ID, processoID );
// ecds.set( TrabalhadoresEcdsData.ESTADO, new Integer( MedicinaConstants.ESTADO_POR_REALIZAR ) );
// }
// else
// {
// ecds = provider.getEcdsByID( ecdsID );
// ecds.set( TrabalhadoresEcdsData.ESTADO, new Integer( MedicinaConstants.ESTADO_POR_REALIZAR ) );
// }
// }
// ecds.set( TrabalhadoresConsultasData.DATA, data );
// provider.saveEcds( ecds );
// if( ecdsData == null )
// {
// Integer ecdsID = ( Integer )ecds.get( TrabalhadoresEcdsData.ID );
// Integer ecdsDataID = provider.getLastEcdsDataIDForEcds( ecdsID );
// if( ecdsDataID == null || nova )
// {
// ecdsData = new TrabalhadoresEcdsDatasData();
// ecdsData.set( TrabalhadoresEcdsDatasData.TRABALHADORES_ECDS_ID, ecdsID );
// ecdsData.set( TrabalhadoresEcdssDatasData.ESTADO, new Integer( MedicinaConstants.ESTADO_POR_REALIZAR ) );
// }
// else
// {
// ecdsData = provider.getEcdsDataByID( ecdsDataID );
// }
// }
// ecdsData.set( TrabalhadoresEcdsDatasData.DATA, data );
// provider.saveEcdsData( ecdsData );
//
// notifyListeners( ProcessoEvent.ACCAO_MUDAR_DATA_MARCACAO );
// }
// catch( Exception ex )
// {
// DialogException.showExceptionMessage( ex, "Erro a gravar dados dos ECDs", true );
// return;
// }
// }
}
protected void editarObservacoes()
{
// if( observacoesDialog == null )
// {
// observacoesDialog = new ObservacoesDialog( owner );
// }
// String texto = "";
// try
// {
// Integer dataID = provider.getLastEcdsDataIDForEcds( ( Integer ) ecds.get( TrabalhadoresEcdssData.ID ) );
// IDObject observacoes = provider.getObservacoesEcdsData( dataID );
// if( observacoes != null )
// {
// texto = observacoes.toString();
// }
// texto = observacoesDialog.editarObservacao( texto );
// if( texto != null )
// {
// provider.saveObservacoesEcdsData( dataID, texto );
// notifyListeners( ProcessoEvent.ACCAO_ESCREVER_OBSERVACOES );
// }
// }
// catch( Exception ex )
// {
// DialogException.showExceptionMessage( ex, "Erro a carregar dados", true );
// return;
// }
}
protected void enviarEmail()
{
// if( ecds == null )
// {
// return;
// }
// try
// {
// Integer ecdsDataID;
// if( ecdsData == null )
// {
// Integer ecdsID = ( Integer )ecds.get( TrabalhadoresEcdsData.ID );
// ecdsDataID = provider.getLastEcdsDataIDForEcds( ecdsID );
// ecdsData = provider.getEcdsDataByID( ecdsDataID );
// }
// ecdsDataID = ( Integer ) ecdsData.get( TrabalhadoresEcdsDatasData.ID );
// provider.saveEmailEcdsData( ecdsDataID, "teste@siprp.pt", "Email de teste.", "" );
// notifyListeners( ProcessoEvent.ACCAO_ESCREVER_MAIL );
// }
// catch( Exception ex )
// {
// DialogException.showExceptionMessage( ex, "Erro a gravar dados", true );
// return;
// }
}
protected void mudarEstado()
{
// if( ecds == null )
// {
// return;
// }
// Integer estado = ( Integer ) ecds.get( TrabalhadoresEcdsData.ESTADO );
// EstadoChooser chooser =
// new EstadoChooser( owner, ProcessoConstants.TIPO_ECDS,
// estado != null ? estado.intValue() : MedicinaConstants.ESTADO_POR_REALIZAR );
// chooser.setVisible( true );
// int novoEstado = chooser.getEstado();
// if( estado == null || estado.intValue() != novoEstado )
// {
// try
// {
// ecds.set( TrabalhadoresEcdsData.ESTADO, new Integer( novoEstado ) );
// provider.saveEcds( ecds );
// if( ecdsData == null )
// {
// Integer ecdsID = ( Integer )ecds.get( TrabalhadoresEcdsData.ID );
// Integer ecdsDataID = provider.getLastEcdsDataIDForEcds( ecdsID );
// ecdsData = provider.getEcdsDataByID( ecdsDataID );
// }
// ecdsData.set( TrabalhadoresEcdsDatasData.ESTADO, new Integer( novoEstado ) );
// provider.saveEcdsData( ecdsData );
//
// notifyListeners( ProcessoEvent.ACCAO_MUDAR_ESTADO_MARCACAO );
// }
// catch( Exception ex )
// {
// DialogException.showExceptionMessage( ex, "Erro a gravar dados", true );
// return;
// }
// }
}
public void addProcessoListener( ProcessoListener listener )
{
PROCESSO_LISTENERS.add( listener );
}
public void removeProcessoListener( ProcessoListener listener )
{
PROCESSO_LISTENERS.remove( listener );
}
public void clear()
{
// dataConsultaPanel.setDate( null );
// estadoButton.setText( " " );
// ecds = null;
// ecdsData = null;
}
public void fill( Object value )
{
// clear();
// if( value != null )
// {
// try
// {
// ecds = ( TrabalhadoresEcdsData ) JDO.load( TrabalhadoresEcdsData.class, ( Integer ) value );
// Date data = ( Date ) ecds.get( TrabalhadoresEcdsData.DATA );
// Integer estado = ( Integer ) ecds.get( TrabalhadoresEcdsData.ESTADO );
// dataConsultaPanel.setDate( data );
// if( estado != null )
// {
// estadoButton.setText( ESTADOS_EXAME_STR[ estado.intValue() ] );
// }
// else
// {
// estadoButton.setText( " " );
// }
// }
// catch( Exception ex )
// {
// DialogException.showExceptionMessage( ex, "Erro a carregar dados", true );
// }
// }
// enableButtons();
}
protected void enableButtons()
{
// if( ecds != null )
// {
// Integer estado = ( Integer ) ecds.get( TrabalhadoresEcdsData.ESTADO );
// dataEcdsPanel.setEnabled( estado == null || estado.intValue() == ESTADO_POR_REALIZAR );
// estadoButton.setEnabled( ecds.get( TrabalhadoresEcdsData.DATA ) != null );
// emailButton.setEnabled( ecds.get( TrabalhadoresEcdsData.DATA ) != null );
// observacoesButton.setEnabled( ecds.get( TrabalhadoresEcdsData.DATA ) != null );
// }
// else
// {
// dataConsultaPanel.setEnabled( true );
// estadoButton.setEnabled( false );
// emailButton.setEnabled( false );
// observacoesButton.setEnabled( false );
// }
}
public void setTrabalhadorID( Integer trabalhadorID )
{
this.trabalhadorID = trabalhadorID;
}
public void setProcessoID( Integer processoID )
{
this.processoID = processoID;
}
protected void notifyListeners( int accao )
{
HashMap<Integer,Integer> ids = new HashMap<Integer,Integer>();
ids.put( ProcessoEvent.TIPO_PROCESSO, processoID );
if( ecds != null )
{
ids.put( ProcessoEvent.TIPO_CONSULTA, ( Integer ) ecds.get( TrabalhadoresEcdsData.ID ) );
}
if( ecdsData != null )
{
ids.put( ProcessoEvent.TIPO_DATA, ( Integer ) ecds.get( TrabalhadoresEcdsData.ID ) );
}
ProcessoEvent event = new ProcessoEvent( this, accao, ids );
for( int n = 0; n < PROCESSO_LISTENERS.size(); n++ )
{
PROCESSO_LISTENERS.get( n ).processoStateChanged( event );
}
}
}