git-svn-id: https://svn.coded.pt/svn/SIPRP@730 bb69d46d-e84e-40c8-a05a-06db0d633741

0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
Tiago Simão 18 years ago
parent 74d9ecc15b
commit 82e8d1d031

@ -92,4 +92,12 @@ public class LeafLogic
}
}
public void runActionLater( String actionName, Object argument )
{
for( LeafWindow window : registeredWindows )
{
window.runActionLater( actionName, argument );
}
}
}

@ -574,6 +574,10 @@ public class LeafWindow extends JFrame implements TrackableWindow, ListSelection
if( action.isSave() )
{
Object windowArgument = getObjectForAction( actionName );
if( windowArgument == null )
{
windowArgument = argument;
}
Object logicArgument = windowArgument;
for( Method currentWindowMethod : mapWindowMethodsByActionName.get( actionName ) )
{

@ -19,6 +19,8 @@ public class SingletonConstants
public static final String COMPANY_ACRONYM = "company_acronym";
public static final String SUBJECT_CONSULTA = "subject_consulta";
public static final String LETTER_CONSULTA = "letter_consulta";
public static final String SUBJECT_CONSULTA_VACINAS = "subject_consulta_vacinas";
public static final String LETTER_CONSULTA_VACINAS = "letter_consulta_vacinas";
public static final String SUBJECT_EXAMES = "subject_exames";
public static final String LETTER_EXAMES = "letter_exames";
public static final String SUBJECT_VISITA = "subject_visita";

@ -28,6 +28,8 @@ public class ClinicaAvenidaDataLoader implements CompanyDataLoader
Singleton.setInstance( SingletonConstants.COMPANY_NAME, "Centro Cl\u00ednico Avenida" );
Singleton.setInstance( SingletonConstants.COMPANY_LOGO, "logo_evo.jpg" );
Singleton.setInstance( SingletonConstants.COMPANY_ACRONYM, "CCA" );
Singleton.setInstance( SingletonConstants.SUBJECT_CONSULTA_VACINAS, "" );
Singleton.setInstance( SingletonConstants.LETTER_CONSULTA_VACINAS, "" );
Singleton.setInstance( SingletonConstants.SUBJECT_CONSULTA, "Centro Cl\u00ednico da Avenida - Marca\u00e7\u00e3o de consulta m\u00e9dica" );
Singleton.setInstance( SingletonConstants.LETTER_CONSULTA, "Vimos por este meio informar que " + NOME + " "
+ "dever\u00e1 comparecer no Centro Cl\u00ednico da Avenida para a realiza\u00e7\u00e3o da "

@ -12,6 +12,7 @@ import org.apache.cayenne.query.SelectQuery;
import siprp.database.cayenne.objects.BaseObject;
import siprp.database.cayenne.objects.Empresas;
import siprp.database.cayenne.objects.LembretesTipos;
import siprp.database.cayenne.objects.Prestadores;
import siprp.database.cayenne.objects.PrtGruposProtocolo;
import siprp.database.cayenne.objects.Trabalhadores;
@ -20,6 +21,7 @@ import siprp.database.cayenne.objects.TrabalhadoresEcd;
import siprp.database.cayenne.objects.TrabalhadoresEcdsDatas;
import siprp.database.cayenne.objects.TrabalhadoresFichasAptidao;
import siprp.database.cayenne.objects.TrabalhadoresProcesso;
import siprp.lembretes.LembretesConstants;
import siprp.medicina.MedicinaConstants;
import siprp.medicina.processo.ProcessoConstants;
@ -43,6 +45,12 @@ public class MedicinaDAO extends MainDAO implements MedicinaConstants
return (TrabalhadoresEcdsDatas) DataObjectUtils.objectForPK( context, TrabalhadoresEcdsDatas.class, id );
}
public LembretesTipos getTipoLembretesCustomizavel( )
{
return (LembretesTipos) DataObjectUtils.objectForPK( context, LembretesTipos.class, 1 );
}
public List<Empresas> getAllEmpresas()
{
SelectQuery query = new SelectQuery( Empresas.class );
@ -123,4 +131,5 @@ public class MedicinaDAO extends MainDAO implements MedicinaConstants
return resultMap.values();
}
}

@ -36,6 +36,7 @@ import javax.swing.event.ListSelectionListener;
import siprp.database.cayenne.objects.Empresas;
import siprp.database.cayenne.objects.Estabelecimentos;
import siprp.database.cayenne.providers.MedicinaDAO;
import siprp.lembretes.externos.LembretesExternosPanel;
import siprp.lembretes.marcacoes.LembretesMarcacaoPanel;
import siprp.lembretes.remarcacoes.LembretesRemarcacaoPanel;
@ -277,7 +278,7 @@ public class LembretesWindow extends JFrame
TipoLembrete tipo = provider.getTipoLembreteByID( tipoID );
if( CODE_EXTERNO.equals( tipo.getCodigo() ) )
{
lembretesPanel.add( new LembretesExternosPanel( empresaID, estabelecimentoID ) );
}
if( CODE_REMARCACOES.equals( tipo.getCodigo() ) )
{

@ -0,0 +1,54 @@
/*
* RemarcacoesActionFactory.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.lembretes.externos;
import javax.swing.Action;
import siprp.lembretes.externos.actions.TratarExternoAction;
import com.evolute.utils.data.IDObject;
import com.evolute.utils.ui.panel.multipleactionlist.ActionFactory;
/**
*
* @author fpalma
*/
public class ExternosActionFactory implements ActionFactory<IDObject>
{
public static final int TRABALHADOR = 0;
protected final int TIPO;
/**
* Creates a new instance of RemarcacoesActionFactory
*/
public ExternosActionFactory( int tipo )
{
TIPO = tipo;
}
public Action createAction(IDObject[] objects)
{
return null;
}
public Action createAction(IDObject object)
{
switch( TIPO )
{
case TRABALHADOR:
return new TratarExternoAction( object );
default:
return null;
}
}
}

@ -0,0 +1,141 @@
/*
* RemarcacoesDataProvider.java
*
* Created on February 14, 2007, 10:56 AM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.lembretes.externos;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import siprp.lembretes.LembretesConstants;
import siprp.lembretes.LembretesDataProvider;
import com.evolute.utils.Singleton;
import com.evolute.utils.arrays.Virtual2DArray;
import com.evolute.utils.data.IDObject;
import com.evolute.utils.data.MappableObject;
import com.evolute.utils.db.DBManager;
import com.evolute.utils.db.Executer;
import com.evolute.utils.sql.Expression;
import com.evolute.utils.sql.Field;
import com.evolute.utils.sql.Select;
import com.evolute.utils.sql.Select2;
/**
*
* @author lflores
*/
public class LembretesExternosDataProvider
{
private static final DateFormat D_F = DateFormat.getDateInstance( DateFormat.SHORT, new Locale( "pt", "PT" ) );
private static final Object LOCK = new Object();
private static LembretesExternosDataProvider instance = null;
private Executer EXECUTER;
private LembretesDataProvider lembretesProvider;
/** Creates a new instance of RemarcacoesDataProvider */
public LembretesExternosDataProvider()
throws Exception
{
DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER );
EXECUTER = dbm.getSharedExecuter( this );
lembretesProvider = LembretesDataProvider.getProvider();
}
public static LembretesExternosDataProvider getProvider()
throws Exception
{
synchronized( LOCK )
{
if( instance == null )
{
instance = new LembretesExternosDataProvider();
}
}
return instance;
}
private Expression whereExpressionLembretesRemarcacao( Integer empresaID, Integer estabelecimentoID ) throws Exception
{
Expression result = new Field( "lembretes.tipo_id" ).isEqual(
lembretesProvider.getTipoLembreteByCodigo( LembretesConstants.CODE_EXTERNO ).getID() ).and(
new Field( "lembretes.data" ).isLessOrEqual( new Field( "current_date" ) ) ).and(
new Field( "lembretes.deleted_date" ).isEqual( null ) );
if( empresaID != null )
{
result = result.and( new Field("empresas.id").isEqual( empresaID ) );
if( estabelecimentoID != null )
{
result = result.and( new Field("estabelecimentos.id").isEqual( estabelecimentoID ) );
}
}
return result;
}
public IDObject[] getLembretesMarcacaoTrabalhador( Integer empresaID, Integer estabelecimentoID )
throws Exception
{
Select select =
new Select2( new String[]{ "lembretes", "marcacoes_trabalhador", "trabalhadores",
"estabelecimentos", "empresas", "trabalhadores_consultas_datas", "trabalhadores_ecds_datas"},
new Integer [] {
Select2.JOIN_LEFT_OUTER, Select2.JOIN_LEFT_OUTER,
Select2.JOIN_LEFT_OUTER, Select2.JOIN_LEFT_OUTER,
Select2.JOIN_LEFT_OUTER, Select2.JOIN_LEFT_OUTER
},
new Expression[]{
new Field( "lembretes.marcacao_trabalhador_id" ).isEqual( new Field( "marcacoes_trabalhador.id" ) ),/*.or(
new Field( "lembretes.trabalhadores_consultas_datas_id" ).isEqual( new Field( "trabalhadores_consultas_datas.id" ) )
).or(
new Field( "lembretes.trabalhadores_ecds_datas_id" ).isEqual( new Field( "trabalhadores_ecds_datas.id" ) )
),
*/
new Field( "marcacoes_trabalhador.trabalhador_id" ).isEqual( new Field( "trabalhadores.id" ) ).or( new Field( "lembretes.trabalhador_id" ).isEqual( new Field( "trabalhadores.id" ) ) ),
new Field( "trabalhadores.estabelecimento_id" ).isEqual( new Field( "estabelecimentos.id" ) ),
new Field( "estabelecimentos.empresa_id" ).isEqual( new Field( "empresas.id" ) ),
new Field( "lembretes.trabalhadores_consultas_datas_id" ).isEqual( new Field( "trabalhadores_consultas_datas.id" ) ),
new Field( "lembretes.trabalhadores_ecds_datas_id" ).isEqual( new Field( "trabalhadores_ecds_datas.id" ) )
},
new String[]{ "lembretes.id", "lembretes.descricao",
"marcacoes_trabalhador.tipo", "lembretes.data",
"trabalhadores.nome", "estabelecimentos.nome", "empresas.designacao_social",
"trabalhadores.nome_plain" },
whereExpressionLembretesRemarcacao( empresaID, estabelecimentoID ),
new String[]{ "trabalhadores.nome_plain" },
null,
null,
null
);
Virtual2DArray array = EXECUTER.executeQuery( select );
IDObject lembretes[] = new IDObject[ array.columnLength() ];
for( int n = 0; n < lembretes.length; n++ )
{
Integer id = ( Integer ) array.get( n, 0 );
String descricao = ( String ) array.get( n, 1 );
Date data = ( Date ) array.get( n, 3 );
String trabalhador = ( String ) array.get( n, 4 );
String split[] = trabalhador.split( " " );
trabalhador = split[ 0 ] + " " + ( split.length > 2 ? split[ 1 ].charAt( 0 ) + ". " : " " ) +
( split.length > 1 ? split[ split.length - 1 ] : "" );
String estabelecimento = ( String ) array.get( n, 5 );
String empresa = ( String ) array.get( n, 6 );
String str = "<html><body><font color=\"#00009f\">" + trabalhador + "</font>"
+ "<br>&nbsp;&nbsp;&nbsp;" + "" + " de " + D_F.format( data )
+ "<br>&nbsp;&nbsp;&nbsp;<font color=\"#009f00\">" + descricao + "</font>"
+ "<br>&nbsp;&nbsp;&nbsp;" + empresa.substring( 0, empresa.length() > 20 ? 20 : empresa.length() )
+ " / " + estabelecimento.substring( 0, estabelecimento.length() > 10 ? 10 : estabelecimento.length() )
+ "</body></html>";
lembretes[ n ] = new MappableObject( id, str );
}
return lembretes;
}
}

@ -0,0 +1,69 @@
/*
* LembretesRemarcacaoPanel.java
*
* Created on 13 de Fevereiro de 2007, 23:24
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.lembretes.externos;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import siprp.lembretes.LembretesConstants;
import com.evolute.utils.jdo.JDOProvider;
import com.evolute.utils.ui.panel.multipleactionlist.MultipleActionListPanel;
public class LembretesExternosPanel extends JPanel
implements LembretesConstants
{
protected JScrollPane listTrabalhadoresScroll;
protected MultipleActionListPanel listTrabalhadoresPanel;
protected LembretesExternosDataProvider provider;
private final Integer empresaID;
private final Integer estabelecimentoID;
private JDOProvider JDO;
/** Creates a new instance of LembretesRemarcacaoPanel */
public LembretesExternosPanel( Integer empresaID, Integer estabelecimentoID )
throws Exception
{
this.empresaID = empresaID;
this.estabelecimentoID = estabelecimentoID;
provider = LembretesExternosDataProvider.getProvider();
setupComponents();
}
private void setupComponents()
throws Exception
{
listTrabalhadoresPanel =
new MultipleActionListPanel(
new ExternosActionFactory[]{ },
new ExternosActionFactory[]{ new ExternosActionFactory( ExternosActionFactory.TRABALHADOR ) } );
listTrabalhadoresScroll =
new JScrollPane( listTrabalhadoresPanel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
setLayout( new GridLayout( 1, 2 ) );
JPanel trabalhadoresPanel = new JPanel();
add( trabalhadoresPanel );
trabalhadoresPanel.setLayout( new BorderLayout() );
trabalhadoresPanel.add( new JLabel( "Consultas / ECDs", JLabel.CENTER ), BorderLayout.NORTH );
trabalhadoresPanel.add( listTrabalhadoresScroll, BorderLayout.CENTER );
listTrabalhadoresPanel.showList( provider.getLembretesMarcacaoTrabalhador( empresaID, estabelecimentoID ) );
// listEstabelecimentosPanel.showList( estabelecimentos.toArray( new IDObject[ estabelecimentos.size() ] ) );
}
}

@ -0,0 +1,101 @@
/*
* TratarMarcacaoTrabalhadorAction.java
*
* Created on January 31, 2007, 6:21 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.lembretes.externos.actions;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JOptionPane;
import siprp.SIPRPTracker;
import siprp.SingletonConstants;
import siprp.database.cayenne.objects.Empresas;
import siprp.database.cayenne.objects.Estabelecimentos;
import siprp.database.cayenne.objects.Trabalhadores;
import siprp.database.cayenne.providers.MedicinaDAO;
import siprp.lembretes.Lembrete;
import siprp.lembretes.LembretesDataProvider;
import siprp.medicina.processo.logic.MedicinaProcessoLogic;
import siprp.medicina.processo.ui.MedicinaProcessoWindow;
import com.evolute.utils.Singleton;
import com.evolute.utils.data.IDObject;
import com.evolute.utils.ui.DialogException;
/**
*
* @author fpalma
*/
public class TratarExternoAction extends AbstractAction
{
private LembretesDataProvider lembretesProvider;
private SIPRPTracker tracker;
private Integer lembreteID;
private MedicinaDAO medicinaDAO = new MedicinaDAO();
/**
* Creates a new instance of TratarMarcacaoTrabalhadorAction
*/
public TratarExternoAction(IDObject lembrete)
{
super( "Tratar" );
try
{
lembreteID = lembrete.getID();
lembretesProvider = LembretesDataProvider.getProvider();
} catch( Exception ex )
{
ex.printStackTrace();
}
}
public void actionPerformed( ActionEvent e )
{
try
{
tracker = (SIPRPTracker) Singleton.getInstance( SingletonConstants.SIPRP_TRACKER );
Lembrete lembrete = lembretesProvider.getLembreteByID( lembreteID );
boolean irParaProcessos = false;
if( lembrete == null )
{
JOptionPane.showMessageDialog( null, "Este lembrete j\u00e1 foi tratado.", "J\u00e1 tratado", JOptionPane.WARNING_MESSAGE );
return;
}
else
{
irParaProcessos = JOptionPane.showConfirmDialog( null, "Deseja visualizar os processos deste trabalhador?", "Abrir Processos", JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE ) == JOptionPane.OK_OPTION;
}
if( irParaProcessos )
{
Trabalhadores trabalhador = null;
Estabelecimentos estabelecimento = null;
Empresas empresa = null;
trabalhador = medicinaDAO.getTrabalhadorByID( lembrete.getTrabalhadorID() );
estabelecimento = trabalhador.getToEstabelecimentos();
empresa = estabelecimento.getToEmpresas();
MedicinaProcessoWindow window = tracker.getMedicinaProcessoWindow();
window.runActionLater( MedicinaProcessoLogic.SELECT_EMPRESA, empresa );
window.runActionLater( MedicinaProcessoLogic.SELECT_ESTABELECIMENTO, estabelecimento );
window.runActionLater( MedicinaProcessoLogic.LOAD_TRABALHADOR, trabalhador );
window.runActionLater( MedicinaProcessoLogic.SELECT_TRABALHADOR, trabalhador );
window.runPendingActions();
window.setVisible( true );
}
lembretesProvider.apagarLembreteByID( lembreteID );
} catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a tratar", true );
}
}
}

@ -1,183 +0,0 @@
/*
* EscolherMotivoDialog.java
*
* Created on 13 de Maio de 2007, 22:16
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.processo;
import com.evolute.utils.data.IDObject;
import com.evolute.utils.data.MappableObject;
import com.evolute.utils.ui.CustomJDialog;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToggleButton;
import javax.swing.SwingUtilities;
import siprp.medicina.MedicinaConstants;
/**
*
* @author Frederico
*/
public class EscolherMotivoDialog extends CustomJDialog
implements ActionListener, MedicinaConstants
{
protected IDObject MOTIVOS[] =
new IDObject[]{
new MappableObject( MOTIVO_ADMISSAO_INTEGER, MOTIVO_ADMISSAO_STR ),
new MappableObject( MOTIVO_PERIODICO_INTEGER, MOTIVO_PERIODICO_STR ),
new MappableObject( MOTIVO_PERIODICO_INICIAL_INTEGER, MOTIVO_PERIODICO_INICIAL_STR ),
new MappableObject( MOTIVO_OCASIONAL_INTEGER, MOTIVO_OCASIONAL_STR )
};
protected IDObject SUB_MOTIVOS[][] =
new IDObject[][]{
{},
{},
{},
{ new MappableObject( SUB_MOTIVO_APOS_DOENCA_INTEGER, SUB_MOTIVO_APOS_DOENCA_STR ),
new MappableObject( SUB_MOTIVO_APOS_ACIDENTE_INTEGER, SUB_MOTIVO_APOS_ACIDENTE_STR ),
new MappableObject( SUB_MOTIVO_PEDIDO_TRABALHADOR_INTEGER, SUB_MOTIVO_PEDIDO_TRABALHADOR_STR ),
new MappableObject( SUB_MOTIVO_PEDIDO_SERVICO_INTEGER, SUB_MOTIVO_PEDIDO_SERVICO_STR ),
new MappableObject( SUB_MOTIVO_MUDANCA_FUNCAO_INTEGER, SUB_MOTIVO_MUDANCA_FUNCAO_STR ),
new MappableObject( SUB_MOTIVO_ALTERACAO_CONDICOES_INTEGER, SUB_MOTIVO_ALTERACAO_CONDICOES_STR ),
new MappableObject( SUB_MOTIVO_OUTRO_INTEGER, SUB_MOTIVO_OUTRO_STR )
}
};
protected AbstractButton motivoButtons[];
protected HashMap<AbstractButton,JButton[]> subMotivoButtons;
protected HashMap<AbstractButton,Integer> motivoButtonIDs;
protected HashMap<JButton,Integer> subMotivoButtonIDs;
protected JPanel motivoPanel;
protected JPanel subMotivoPanel;
protected Integer motivoTemp;
protected Integer motivo;
protected Integer subMotivo;
/** Creates a new instance of EscolherMotivoDialog */
public EscolherMotivoDialog( JFrame owner )
{
super( owner, true );
setupComponents();
if( owner != null )
{
centerSuper();
}
else
{
center();
}
}
private void setupComponents()
{
setTitle( "Escolher Motivo" );
setLayout( new FlowLayout( FlowLayout.LEFT ) );
motivoButtons = new JToggleButton[ MOTIVOS.length ];
subMotivoButtons = new HashMap<AbstractButton,JButton[]>();
motivoButtonIDs = new HashMap<AbstractButton,Integer>();
subMotivoButtonIDs = new HashMap<JButton,Integer>();
for( int m = 0; m < MOTIVOS.length; m++ )
{
JToggleButton motivoButton = new JToggleButton( MOTIVOS[ m ].toString() );
motivoButton.addActionListener( this );
motivoButtonIDs.put( motivoButton, MOTIVOS[ m ].getID() );
motivoButton.setPreferredSize( new Dimension( 250, 20 ) );
motivoButtons[ m ] = motivoButton;
if( SUB_MOTIVOS[ m ].length > 0 )
{
JButton subButtons[] = new JButton[ SUB_MOTIVOS[ m ].length ];
for( int sm = 0; sm < SUB_MOTIVOS[ m ].length; sm++ )
{
JButton subButton = new JButton( SUB_MOTIVOS[ m ][ sm ].toString() );
subMotivoButtonIDs.put( subButton, SUB_MOTIVOS[ m ][ sm ].getID() );
subButtons[ sm ] = subButton;
subButton.setPreferredSize( new Dimension( 300, 20 ) );
subButton.addActionListener( this );
}
subMotivoButtons.put( motivoButton, subButtons );
}
else
{
subMotivoButtons.put( motivoButton, null );
}
}
motivoPanel = new JPanel();
subMotivoPanel = new JPanel();
motivoPanel.setLayout( new GridLayout( motivoButtons.length + 1, 1 ) );
for( int n = 0; n < motivoButtons.length; n++ )
{
motivoPanel.add( motivoButtons[ n ] );
}
add( motivoPanel );
add( subMotivoPanel );
pack();
}
public void actionPerformed(ActionEvent e)
{
AbstractButton source = ( AbstractButton ) e.getSource();
if( motivoButtonIDs.containsKey( source ) )
{
motivoTemp = motivoButtonIDs.get( source );
}
else if( subMotivoButtonIDs.containsKey( source ) )
{
motivo = motivoTemp;
subMotivo = subMotivoButtonIDs.get( source );
close();
}
if( subMotivoButtons.containsKey( source ) )
{
JButton subButtons[] = subMotivoButtons.get( source );
if( subButtons == null || subButtons.length == 0 )
{
motivo = motivoTemp;
close();
}
else
{
subMotivoPanel.removeAll();
subMotivoPanel.setLayout( new GridLayout( 0, 1 ) );
for( int n = 0; n < subButtons.length; n++ )
{
subMotivoPanel.add( subButtons[ n ] );
}
pack();
}
}
}
protected void close()
{
SwingUtilities.invokeLater( new Runnable(){
public void run()
{
setVisible( false );
dispose();
}
} );
}
public Integer[] getMotivo()
{
return new Integer[]{ motivo, subMotivo };
}
}

@ -1,405 +0,0 @@
/*
* ProcessoController.java
*
* Created on 25 de Abril de 2007, 15:10
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.processo;
//
//import com.evolute.utils.Singleton;
//import com.evolute.utils.data.MappableObject;
//import com.evolute.utils.jdo.JDOProvider;
//import com.evolute.utils.ui.DialogException;
//import javax.swing.event.ListSelectionEvent;
//import javax.swing.event.ListSelectionListener;
//import siprp.data.TrabalhadorData;
//import siprp.medicina.processo.detalhes.DetalhesProcessoPanel;
//import siprp.medicina.processo.estrutura.EstruturaProcessoPanel;
//
///**
// *
// * @author Frederico
// */
//public class ProcessoController
// implements ProcessoListener, ListSelectionListener
//{
// protected ProcessoUpperPanel processoUpperPanel;
// protected EstruturaProcessoPanel estruturaProcessoPanel;
// protected ProcessoPanel processoPanel;
// protected DetalhesProcessoPanel detalhesProcessoPanel;
// protected ProcessoDataProvider provider;
//
// protected JDOProvider JDO;
//
// protected Integer idProcesso;
// protected Integer idMarcacao;
// protected Integer idData;
//
// /** Creates a new instance of ProcessoController */
// public ProcessoController( ProcessoUpperPanel processoUpperPanel, EstruturaProcessoPanel estruturaProcessoPanel,
// ProcessoPanel processoPanel, DetalhesProcessoPanel detalhesProcessoPanel )
// throws Exception
// {
// this.processoUpperPanel = processoUpperPanel;
// this.estruturaProcessoPanel = estruturaProcessoPanel;
// this.processoPanel = processoPanel;
// this.detalhesProcessoPanel = detalhesProcessoPanel;
// processoUpperPanel.addListSelectionListener( this );
// estruturaProcessoPanel.addProcessoListener( this );
// processoPanel.addProcessoListener( this );
// detalhesProcessoPanel.addProcessoListener( this );
//
// provider = ProcessoDataProvider.getProvider();
// JDO = ( JDOProvider ) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER );
// }
//
// public void processoStateChanged(ProcessoEvent e)
// {
// int accao = e.getAccao();
// switch( accao )
// {
// case ProcessoEvent.ACCAO_RECARREGAR_TRABALHADOR:
// recarregarTrabalhador( e );
// break;
//
// case ProcessoEvent.ACCAO_ESCOLHER_PROCESSO:
// escolherProcesso( e );
// break;
//
// case ProcessoEvent.ACCAO_ESCOLHER_CONSULTA:
// escolherConsulta( e );
// break;
//
// case ProcessoEvent.ACCAO_ESCOLHER_ECDS:
// escolherECDs( e );
// break;
//
// case ProcessoEvent.ACCAO_ESCOLHER_FA:
// escolherFichaAptidao( e );
// break;
//
// case ProcessoEvent.ACCAO_ESCOLHER_DATA:
// escolherData( e );
// break;
//
// case ProcessoEvent.ACCAO_ESCOLHER_OBSERVACOES:
// escolherObservacoes( e );
// break;
//
// case ProcessoEvent.ACCAO_ESCOLHER_MAIL:
// escolherMail( e );
// break;
//
// case ProcessoEvent.ACCAO_ESCOLHER_MOTIVO:
// escolherMotivo( e );
// break;
//
// case ProcessoEvent.ACCAO_MARCAR_CONSULTA:
// marcarConsulta( e );
// break;
//
// case ProcessoEvent.ACCAO_MARCAR_ECDS:
// marcarECDs( e );
// break;
//
// case ProcessoEvent.ACCAO_EMITIR_FA:
// emitirFichaAptidao( e );
// break;
//
// case ProcessoEvent.ACCAO_FECHAR:
// fecharProcesso( e );
// break;
//
// case ProcessoEvent.ACCAO_MUDAR_ESTADO_MARCACAO:
// mudarEstadoMarcacao( e );
// break;
//
// case ProcessoEvent.ACCAO_MUDAR_DATA_MARCACAO:
// mudarDataMarcacao( e );
// break;
//
// case ProcessoEvent.ACCAO_ESCREVER_OBSERVACOES:
// escreverObservacoes( e );
// break;
//
// case ProcessoEvent.ACCAO_ESCREVER_MAIL:
// escreverMail( e );
// break;
//
// }
// }
//
// public void recarregarTrabalhador( ProcessoEvent e )
// {
// idProcesso = null;
// estruturaProcessoPanel.reload();
// }
//
// public void escolherProcesso( ProcessoEvent e )
// {
// try
// {
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// processoPanel.fill( idProcesso );
// detalhesProcessoPanel.clear();
// detalhesProcessoPanel.setProcessoID( idProcesso );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void escolherConsulta( ProcessoEvent e )
// {
// try
// {
// Integer idProcessoAntigo = idProcesso;
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// processoPanel.fill( idProcesso );
// detalhesProcessoPanel.setProcessoID( idProcesso );
// idMarcacao = e.getObjecto( ProcessoEvent.TIPO_CONSULTA );
// detalhesProcessoPanel.setConsulta( idMarcacao );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void escolherECDs( ProcessoEvent e )
// {
// try
// {
// Integer idProcessoAntigo = idProcesso;
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// processoPanel.fill( idProcesso );
// detalhesProcessoPanel.setProcessoID( idProcesso );
//
// idMarcacao = e.getObjecto( ProcessoEvent.TIPO_ECDS );
// detalhesProcessoPanel.setECDs( idMarcacao );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void escolherFichaAptidao( ProcessoEvent e )
// {
// try
// {
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// Integer idFichaAptidao = e.getObjecto( ProcessoEvent.TIPO_FICHA_APTIDAO );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void escolherData( ProcessoEvent e )
// {
// try
// {
// Integer idProcessoAntigo = idProcesso;
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// processoPanel.fill( idProcesso );
// detalhesProcessoPanel.setProcessoID( idProcesso );
// Integer idConsulta = e.getObjecto( ProcessoEvent.TIPO_CONSULTA );
// Integer idECDs = e.getObjecto( ProcessoEvent.TIPO_ECDS );
// Integer idData = e.getObjecto( ProcessoEvent.TIPO_DATA );
// if( idConsulta != null )
// {
// idMarcacao = idConsulta;
// detalhesProcessoPanel.setConsulta( idConsulta );
// }
// else if( idECDs != null )
// {
// idMarcacao = idECDs;
// detalhesProcessoPanel.setECDs( idECDs );
// }
// else
// {
// idMarcacao = null;
// detalhesProcessoPanel.clear();
// }
// }
// catch( Exception ex )
// {
// }
// }
//
// public void escolherObservacoes( ProcessoEvent e )
// {
// try
// {
// escolherData( e );
// Integer idObservacoes = e.getObjecto( ProcessoEvent.TIPO_OBSERVACOES );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void escolherMail( ProcessoEvent e )
// {
// try
// {
// escolherData( e );
// Integer idMail = e.getObjecto( ProcessoEvent.TIPO_MAIL );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void escolherMotivo( ProcessoEvent e )
// {
// try
// {
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// estruturaProcessoPanel.actualizarProcessoEscolhido( idProcesso );
// detalhesProcessoPanel.setProcessoID( idProcesso );
// }
// catch( Exception ex )
// {
// DialogException.showExceptionMessage( ex, "Erro a actualizar dados", true );
// }
// }
//
// public void marcarConsulta( ProcessoEvent e )
// {
// try
// {
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// detalhesProcessoPanel.setConsulta( null );
//
// }
// catch( Exception ex )
// {
// }
// }
//
// public void marcarECDs( ProcessoEvent e )
// {
// try
// {
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// detalhesProcessoPanel.setECDs( null );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void emitirFichaAptidao( ProcessoEvent e )
// {
// try
// {
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// estruturaProcessoPanel.actualizarProcessoEscolhido( idProcesso );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void fecharProcesso( ProcessoEvent e )
// {
// try
// {
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// estruturaProcessoPanel.actualizarProcessoEscolhido( idProcesso );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void mudarEstadoMarcacao( ProcessoEvent e )
// {
// try
// {
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// Integer idConsulta = e.getObjecto( ProcessoEvent.TIPO_CONSULTA );
// Integer idECDs = e.getObjecto( ProcessoEvent.TIPO_ECDS );
// idMarcacao = idConsulta != null ? idConsulta : idECDs;
// estruturaProcessoPanel.actualizarMarcacaoEscolhida( idProcesso, idMarcacao );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void mudarDataMarcacao( ProcessoEvent e )
// {
// try
// {
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// Integer idConsulta = e.getObjecto( ProcessoEvent.TIPO_CONSULTA );
// Integer idECDs = e.getObjecto( ProcessoEvent.TIPO_ECDS );
// idMarcacao = idConsulta != null ? idConsulta : idECDs;
// estruturaProcessoPanel.actualizarMarcacaoEscolhida( idProcesso, idMarcacao );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void escreverObservacoes( ProcessoEvent e )
// {
// try
// {
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// Integer idConsulta = e.getObjecto( ProcessoEvent.TIPO_CONSULTA );
// Integer idECDs = e.getObjecto( ProcessoEvent.TIPO_ECDS );
// idMarcacao = idConsulta != null ? idConsulta : idECDs;
// estruturaProcessoPanel.actualizarMarcacaoEscolhida( idProcesso, idMarcacao );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void escreverMail( ProcessoEvent e )
// {
// try
// {
// idProcesso = e.getObjecto( ProcessoEvent.TIPO_PROCESSO );
// Integer idConsulta = e.getObjecto( ProcessoEvent.TIPO_CONSULTA );
// Integer idECDs = e.getObjecto( ProcessoEvent.TIPO_ECDS );
// idMarcacao = idConsulta != null ? idConsulta : idECDs;
// estruturaProcessoPanel.actualizarMarcacaoEscolhida( idProcesso, idMarcacao );
// }
// catch( Exception ex )
// {
// }
// }
//
// public void valueChanged(ListSelectionEvent e)
// {
// try
// {
// Integer ids[] = ( Integer [] ) processoUpperPanel.save();
// Integer trabalhadorID = ids[ 2 ];
// processoPanel.setTrabalhadorID( trabalhadorID );
// if( trabalhadorID != null )
// {
// TrabalhadorData trabalhador = ( TrabalhadorData ) JDO.load( TrabalhadorData.class, trabalhadorID );
// estruturaProcessoPanel.setTrabalhador( new MappableObject( trabalhadorID, trabalhador.get( TrabalhadorData.NOME ) ) );
// }
// else
// {
// estruturaProcessoPanel.clear();
// }
// processoPanel.clear();
// detalhesProcessoPanel.clear();
// processoPanel.setTrabalhadorID( trabalhadorID );
// detalhesProcessoPanel.setTrabalhadorID( trabalhadorID );
// }
// catch( Exception ex )
// {
// DialogException.showExceptionMessage( ex, "Erro a carregar trabalhador", true );
// }
// }
//}

@ -1,74 +0,0 @@
/*
* ProcessoEvent.java
*
* Created on 25 de Abril de 2007, 10:53
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.processo;
import java.util.HashMap;
/**
*
* @author Frederico
*/
public class ProcessoEvent
{
public static final int ACCAO_RECARREGAR_TRABALHADOR = 0;
public static final int ACCAO_ESCOLHER_PROCESSO = 1;
public static final int ACCAO_ESCOLHER_CONSULTA = 2;
public static final int ACCAO_ESCOLHER_ECDS = 3;
public static final int ACCAO_ESCOLHER_FA = 4;
public static final int ACCAO_ESCOLHER_DATA = 5;
public static final int ACCAO_ESCOLHER_OBSERVACOES = 6;
public static final int ACCAO_ESCOLHER_MAIL = 7;
public static final int ACCAO_ESCOLHER_MOTIVO = 8;
public static final int ACCAO_MARCAR_CONSULTA = 9;
public static final int ACCAO_MARCAR_ECDS = 10;
public static final int ACCAO_EMITIR_FA = 11;
public static final int ACCAO_FECHAR = 12;
public static final int ACCAO_MUDAR_ESTADO_MARCACAO = 13;
public static final int ACCAO_MUDAR_DATA_MARCACAO = 14;
public static final int ACCAO_ESCREVER_OBSERVACOES = 15;
public static final int ACCAO_ESCREVER_MAIL = 16;
public static final Integer TIPO_ANY = new Integer( 0 );
public static final Integer TIPO_PROCESSO = new Integer( 1 );
public static final Integer TIPO_CONSULTA = new Integer( 2 );
public static final Integer TIPO_ECDS = new Integer( 3 );
public static final Integer TIPO_DATA = new Integer( 4 );
public static final Integer TIPO_OBSERVACOES = new Integer( 5 );
public static final Integer TIPO_MAIL = new Integer( 6 );
public static final Integer TIPO_FICHA_APTIDAO = new Integer( 7 );
protected final Object source;
protected final int accao;
protected final HashMap<Integer,Integer> idsObjectos;
/** Creates a new instance of ProcessoEvent */
public ProcessoEvent( Object source, int accao, HashMap<Integer,Integer> idsObjectos )
{
this.source = source;
this.accao = accao;
this.idsObjectos = idsObjectos;
}
public Object getSource()
{
return source;
}
public int getAccao()
{
return accao;
}
public Integer getObjecto( Integer tipo )
{
return idsObjectos.get( tipo );
}
}

@ -1,19 +0,0 @@
/*
* ProcessoListener.java
*
* Created on 25 de Abril de 2007, 10:55
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.processo;
/**
*
* @author Frederico
*/
public interface ProcessoListener
{
public void processoStateChanged( ProcessoEvent e );
}

@ -1,413 +0,0 @@
/*
* ProcessoPanel.java
*
* Created on March 21, 2007, 9:11 AM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.processo;
import com.evolute.utils.dataui.ControllableComponent;
import com.evolute.utils.images.ImageIconLoader;
import com.evolute.utils.ui.DialogException;
import info.clearthought.layout.TableLayout;
import info.clearthought.layout.TableLayoutConstraints;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
import java.util.Vector;
import javax.swing.*;
import siprp.ficha.FichaWindow;
import siprp.ficha.SaveExameListener;
import siprp.medicina.MedicinaConstants;
import siprp.medicina.MedicinaDataProvider;
import siprp.medicina.processo.data.TrabalhadoresProcessoData;
/**
*
* @author fpalma
*/
public class ProcessoPanel extends JPanel
implements ActionListener, ControllableComponent,
MedicinaConstants, ProcessoConstants, SaveExameListener
{
private static final DateFormat D_F = DateFormat.getDateInstance( DateFormat.SHORT, new Locale( "pt", "PT" ) );
private JTextField estadoText;
private JTextField inicioText;
private JTextField fimText;
private JButton motivoButton;
// private JButton novoECDButton;
// private JButton novaConsultaButton;
private JButton emitirFAButton;
private JButton fecharButton;
protected JFrame owner;
private final Vector<ProcessoListener> PROCESSO_LISTENERS = new Vector<ProcessoListener>();
private ProcessoDataProvider provider;
private Integer trabalhadorID = null;
private TrabalhadoresProcessoData processo;
/** Creates a new instance of ProcessoPanel */
public ProcessoPanel( JFrame owner )
throws Exception
{
this.owner = owner;
provider = ProcessoDataProvider.getProvider();
setupComponents();
enableButtons();
}
private void setupComponents()
{
JLabel motivoLabel = new JLabel( "Motivo" );
motivoButton = new JButton( "Escolher" );
motivoButton.addActionListener( this );
JLabel estadoLabel = new JLabel( "Estado" );
estadoText = new JTextField();
estadoText.setPreferredSize( new Dimension( 150, 20 ) );
estadoText.setEditable( false );
JLabel inicioLabel = new JLabel( "In\u00edcio" );
inicioText = new JTextField();
inicioText.setPreferredSize( new Dimension( 150, 20 ) );
inicioText.setEditable( false );
JLabel fimLabel = new JLabel( "Fim" );
fimText = new JTextField();
fimText.setPreferredSize( new Dimension( 150, 20 ) );
fimText.setEditable( false );
// novoECDButton = new JButton( "Marcar ECDs" );
// novoECDButton.setIcon( getIcon( ECDS_ICON_PATH ) );
// novoECDButton.addActionListener( this );
// novaConsultaButton = new JButton( "Marcar Consulta" );
// novaConsultaButton.setIcon( getIcon( CONSULTA_ICON_PATH ) );
// novaConsultaButton.addActionListener( this );
emitirFAButton = new JButton( "Emitir Ficha de Aptid\u00e3o" );
emitirFAButton.setIcon( getIcon( FICHA_APTIDAO_ICON_PATH ) );
emitirFAButton.addActionListener( this );
fecharButton = new JButton( "Fechar Processo" );
fecharButton.setIcon( getIcon( FECHAR_ICON_PATH ) );
fecharButton.addActionListener( this );
JPanel buttonPanel = new JPanel();
double cols[] =
new double[]{ TableLayout.MINIMUM, TableLayout.FILL, TableLayout.MINIMUM, TableLayout.FILL };
double rows[] =
new double[]{ TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.FILL };
TableLayout tableLayout = new TableLayout( cols, rows );
setLayout( tableLayout );
add( motivoLabel, new TableLayoutConstraints( 0, 0 ) );
add( motivoButton, new TableLayoutConstraints( 1, 0 ) );
add( estadoLabel, new TableLayoutConstraints( 2, 0 ) );
add( estadoText, new TableLayoutConstraints( 3, 0 ) );
add( inicioLabel, new TableLayoutConstraints( 0, 1 ) );
add( inicioText, new TableLayoutConstraints( 1, 1 ) );
add( fimLabel, new TableLayoutConstraints( 2, 1 ) );
add( fimText, new TableLayoutConstraints( 3, 1 ) );
add( emitirFAButton, new TableLayoutConstraints( 0, 2, 1, 2 ) );
add( fecharButton, new TableLayoutConstraints( 2, 2, 3, 2 ) );
//add( buttonPanel, new TableLayoutConstraints( 0, 2, 3, 2 ) );
// buttonPanel.setLayout( new GridLayout( 1, 2 ) );
//// buttonPanel.add( novoECDButton );
//// buttonPanel.add( novaConsultaButton );
// buttonPanel.add( emitirFAButton );
// buttonPanel.add( fecharButton );
}
public void actionPerformed(ActionEvent e)
{
Object source = e.getSource();
if( source.equals( motivoButton ) )
{
escolherMotivo();
}
// else if( source.equals( novoECDButton ) )
// {
// novoECD();
// }
// else if( source.equals( novaConsultaButton ) )
// {
// novaConsulta();
// }
else if( source.equals( emitirFAButton ) )
{
emitirFA();
}
else if( source.equals( fecharButton ) )
{
fecharProcesso();
}
}
protected boolean gravarProcesso()
{
if( processo.get( TrabalhadoresProcessoData.ESTADO ) == null )
{
processo.set( TrabalhadoresProcessoData.ESTADO, PROCESSO_ABERTO_CODE );
processo.set( TrabalhadoresProcessoData.DATA_INICIO, new Date() );
}
try
{
provider.saveProcesso( processo );
return true;
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a gravar processo", true );
return false;
}
}
protected void escolherMotivo()
{
EscolherMotivoDialog dialog = new EscolherMotivoDialog( owner );
dialog.setVisible( true );
Integer motivo[] = dialog.getMotivo();
if( motivo != null && motivo[ 0 ] != null )
{
processo.set( TrabalhadoresProcessoData.MOTIVO, motivo[ 0 ] );
processo.set( TrabalhadoresProcessoData.SUB_MOTIVO, motivo[ 1 ] );
if( gravarProcesso() )
{
reload();
HashMap<Integer,Integer> ids = new HashMap<Integer,Integer>();
ids.put( ProcessoEvent.TIPO_PROCESSO, ( Integer ) processo.get( TrabalhadoresProcessoData.ID ) );
ProcessoEvent event = new ProcessoEvent( this, ProcessoEvent.ACCAO_ESCOLHER_MOTIVO, ids );
for( int n = 0; n < PROCESSO_LISTENERS.size(); n++ )
{
PROCESSO_LISTENERS.get( n ).processoStateChanged( event );
}
}
}
}
protected void novoECD()
{
}
protected void novaConsulta()
{
notifyListeners( ProcessoEvent.ACCAO_MARCAR_CONSULTA );
}
protected void emitirFA()
{
if( trabalhadorID != null )
{
try
{
FichaWindow.getWindow().editTrabalhador( trabalhadorID, this );
}
catch( Exception ex )
{
DialogException.showException( ex );
}
}
}
protected void fecharProcesso()
{
String options[] = new String[]{ "N\u00e3o", "Sim" };
int option = JOptionPane.showOptionDialog( owner,
"Tem a certeza que quer fechar o processo sem Ficha de Aptid\u00e3o?",
"Fechar", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE,
getIcon( FECHAR_ICON_PATH ), options, options[ 0 ] );
if( option == 1 )
{
processo.set( TrabalhadoresProcessoData.ESTADO, PROCESSO_FECHADO_CODE );
processo.set( TrabalhadoresProcessoData.DATA_FIM, new Date() );
if( gravarProcesso() )
{
enableButtons();
notifyListeners( ProcessoEvent.ACCAO_FECHAR );
reload();
}
}
}
public void clear()
{
processo = null;
estadoText.setText( "" );
inicioText.setText( "" );
fimText.setText( "" );
motivoButton.setText( "Escolher" );
enableButtons();
}
protected void enableButtons()
{
String estado = null;
Integer motivo = null;
boolean consultasPorRealizar = false;
boolean ecdsPorRealizar = false;
if( processo != null )
{
Integer id = ( Integer ) processo.get( TrabalhadoresProcessoData.ID );
estado = ( String ) processo.get( TrabalhadoresProcessoData.ESTADO );
motivo = ( Integer ) processo.get( TrabalhadoresProcessoData.MOTIVO );
try
{
if( id != null )
{
consultasPorRealizar = provider.getProcessoTemConsultasPorRealizar( id );
ecdsPorRealizar = provider.getProcessoTemECDsPorRealizar( id );
}
}
catch( Exception ex )
{
ex.printStackTrace();
}
}
// novoECDButton.setEnabled( processo != null && motivo != null );
// novoECDButton.setEnabled( false );
// novaConsultaButton.setEnabled( processo != null && motivo != null && !consultasPorRealizar );
emitirFAButton.setEnabled( processo != null && motivo != null );
fecharButton.setEnabled( processo != null && motivo != null && PROCESSO_ABERTO_CODE.equals( estado ) );
motivoButton.setEnabled( processo != null );
}
public void addProcessoListener( ProcessoListener listener )
{
PROCESSO_LISTENERS.add( listener );
}
public void removeProcessoListener( ProcessoListener listener )
{
PROCESSO_LISTENERS.remove( listener );
}
public Icon getIcon( String path )
{
try
{
return ImageIconLoader.loadImageIcon( getClass(), path );
}
catch( Exception ex )
{
ex.printStackTrace();
return null;
}
}
public Object save()
{
return null;
}
public void enableComponents( boolean enable )
{
}
public void fill( Object value )
{
clear();
if( trabalhadorID == null )
{
return;
}
if( value != null )
{
try
{
processo = provider.getProcessoByID( ( Integer ) value );
if( processo == null )
{
processo = new TrabalhadoresProcessoData();
processo.set( TrabalhadoresProcessoData.TRABALHADOR_ID, trabalhadorID );
}
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a carregar dados do processo", true );
}
}
reload();
}
public void reload()
{
enableButtons();
if( processo != null )
{
String estado = null;
Date dataInicio = ( Date ) processo.get( TrabalhadoresProcessoData.DATA_INICIO );
if( dataInicio != null )
{
inicioText.setText( D_F.format( dataInicio ) );
}
Date dataFim = ( Date ) processo.get( TrabalhadoresProcessoData.DATA_FIM );
if( dataFim != null )
{
fimText.setText( D_F.format( dataFim ) );
}
estado = ( String ) processo.get( TrabalhadoresProcessoData.ESTADO );
if( estado == null )
{
estadoText.setText( ProcessoDataProvider.PROCESSO_POR_ABRIR_DESCRIPTION );
}
else
{
estadoText.setText( ProcessoDataProvider.ESTADO_PROCESSO_BY_CODE.get( estado ) );
}
Integer motivo = ( Integer ) processo.get( TrabalhadoresProcessoData.MOTIVO );
Integer subMotivo = ( Integer ) processo.get( TrabalhadoresProcessoData.SUB_MOTIVO );
String motivoStr = "Motivo";
if( motivo != null )
{
motivoStr = MedicinaDataProvider.MOTIVOS_BY_ID.get( motivo );
if( subMotivo != null )
{
motivoStr += " > " + MedicinaDataProvider.SUB_MOTIVOS_BY_ID.get( subMotivo );
}
}
motivoButton.setText( motivoStr );
}
}
public void setTrabalhadorID( Integer trabalhadorID )
{
this.trabalhadorID = trabalhadorID;
}
public void exameSaved( Integer trabalhadorID, Integer exameID )
{
if( trabalhadorID.equals( this.trabalhadorID ) )
{
processo.set( TrabalhadoresProcessoData.ESTADO, PROCESSO_FECHADO_CODE );
processo.set( TrabalhadoresProcessoData.DATA_FIM, new Date() );
if( gravarProcesso() )
{
enableButtons();
notifyListeners( ProcessoEvent.ACCAO_EMITIR_FA );
reload();
}
System.out.println( "NOTIFIED EXAME: " + exameID );
}
}
protected void notifyListeners( int accao )
{
HashMap<Integer,Integer> ids = new HashMap<Integer,Integer>();
ids.put( ProcessoEvent.TIPO_PROCESSO, ( Integer ) processo.get( TrabalhadoresProcessoData.ID ) );
ProcessoEvent event = new ProcessoEvent( this, accao, ids );
for( int n = 0; n < PROCESSO_LISTENERS.size(); n++ )
{
PROCESSO_LISTENERS.get( n ).processoStateChanged( event );
}
}
}

@ -1,254 +0,0 @@
/*
* ProcessoUpperPanel.java
*
* Created on February 1, 2006, 6:48 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.processo;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
import com.evolute.utils.dataui.*;
import com.evolute.utils.tables.*;
import com.evolute.utils.ui.*;
import siprp.medicina.MedicinaDataProvider;
/**
*
* @author fpalma
*/
public class ProcessoUpperPanel extends JPanel
implements ListSelectionListener, ControllableComponent
{
protected BaseTable empresasTable;
protected VectorTableModel empresasModel;
protected BaseTable estabelecimentosTable;
protected VectorTableModel estabelecimentosModel;
protected BaseTable trabalhadoresTable;
protected VectorTableModel trabalhadoresModel;
protected MedicinaDataProvider provider;
protected final Vector listeners;
protected boolean editing = false;
/**
* Creates a new instance of ProcessoUpperPanel
*/
public ProcessoUpperPanel()
throws Exception
{
provider = ( MedicinaDataProvider ) MedicinaDataProvider.getProvider();
listeners = new Vector();
setupComponents();
}
private void setupComponents()
throws Exception
{
empresasModel = new VectorTableModel( new String[]{ "empresas" } );
empresasTable = new BaseTable( empresasModel );
empresasTable.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
empresasTable.setNonResizableNorReordable();
JScrollPane empresasScroll =
new JScrollPane( empresasTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
empresasTable.getSelectionModel().addListSelectionListener( this );
estabelecimentosModel = new VectorTableModel( new String[]{ "estabelecimentos" } );
estabelecimentosTable = new BaseTable( estabelecimentosModel );
estabelecimentosTable.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
estabelecimentosTable.setNonResizableNorReordable();
JScrollPane estabelecimentosScroll =
new JScrollPane( estabelecimentosTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
estabelecimentosTable.getSelectionModel().addListSelectionListener( this );
trabalhadoresModel = new VectorTableModel( new String[]{ "trabalhadores" } );
trabalhadoresTable = new BaseTable( trabalhadoresModel );
trabalhadoresTable.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
trabalhadoresTable.setNonResizableNorReordable();
JScrollPane trabalhadoresScroll =
new JScrollPane( trabalhadoresTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
trabalhadoresTable.getSelectionModel().addListSelectionListener( this );
GridBagLayout gridbag = new GridBagLayout();
setLayout( gridbag );
GridBagConstraints constraints = new GridBagConstraints();
constraints.insets = new Insets( 1, 1, 1, 1 );
constraints.fill = GridBagConstraints.BOTH;
constraints.gridwidth = 1;
constraints.gridheight = 1;
constraints.weightx = 0.3;
constraints.weighty = 1;
gridbag.setConstraints( empresasScroll, constraints );
gridbag.setConstraints( estabelecimentosScroll, constraints );
constraints.weightx = 0.4;
constraints.gridheight = GridBagConstraints.REMAINDER;
gridbag.setConstraints( trabalhadoresScroll, constraints );
add( empresasScroll );
add( estabelecimentosScroll );
add( trabalhadoresScroll );
ColumnizedMappable empresas[] = provider.getAllEmpresas();
Vector values = empresasModel.getValues();
values.addAll( Arrays.asList( empresas ) );
empresasModel.setValues( values );
}
public void valueChanged( ListSelectionEvent e )
{
Object source = e.getSource();
if( e.getValueIsAdjusting() )
{
return;
}
if( source.equals( empresasTable.getSelectionModel() ) )
{
carregarEstabelecimentos();
}
else if( source.equals( estabelecimentosTable.getSelectionModel() ) )
{
carregarTrabalhadores();
}
else if( source.equals( trabalhadoresTable.getSelectionModel() ) )
{
notifyListeners( e );
}
}
protected void carregarEstabelecimentos()
{
estabelecimentosTable.clearSelection();
int selected = empresasTable.getSelectedRow();
estabelecimentosModel.clearAll();
if( selected > -1 )
{
try
{
Integer empresaID = ( ( ColumnizedMappable ) empresasModel.getRowAt( selected ) ).getID();
ColumnizedMappable estabelecimentos[] = provider.getAllEstabelecimentosForEmpresa( empresaID);
Vector values = estabelecimentosModel.getValues();
values.addAll( Arrays.asList( estabelecimentos ) );
estabelecimentosModel.setValues( values );
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a carregar os estabelecimentos.", true );
estabelecimentosModel.clearAll();
}
}
}
protected void carregarTrabalhadores()
{
trabalhadoresTable.clearSelection();
int selected = estabelecimentosTable.getSelectedRow();
trabalhadoresModel.clearAll();
if( selected > -1 )
{
try
{
Integer estabelecimentoID = ( ( ColumnizedMappable ) estabelecimentosModel.getRowAt( selected ) ).getID();
ColumnizedMappable trabalhadores[] = provider.getAllTrabalhadoresForEstabelecimento( estabelecimentoID );
Vector values = trabalhadoresModel.getValues();
values.addAll( Arrays.asList( trabalhadores ) );
trabalhadoresModel.setValues( values );
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a carregar trabalhadores.", true );
trabalhadoresModel.clearAll();
}
}
}
protected void notifyListeners( ListSelectionEvent e )
{
for( int n = 0; n < listeners.size(); n++ )
{
ListSelectionEvent event =
new ListSelectionEvent( this, e.getFirstIndex(), e.getLastIndex(), e.getValueIsAdjusting() );
( ( ListSelectionListener ) listeners.elementAt( n ) ).valueChanged( event );
}
}
public void addListSelectionListener( ListSelectionListener listener )
{
listeners.add( listener );
}
public void removeSelectionListener( ListSelectionListener listener )
{
listeners.remove( listener );
}
public void clear()
{
// empresasTable.clearSelection();
}
public void fill( Object value )
{
if( value == null )
{
clear();
}
Integer ids[] = ( Integer [] ) value;
for( int n = 0; n < empresasTable.getRowCount(); n++ )
{
if( ( ( ColumnizedMappable ) empresasModel.getRowAt( n ) ).getID().equals( ids[ 0 ] ) )
{
empresasTable.setRowSelectionInterval( n, n );
break;
}
}
for( int n = 0; n < estabelecimentosTable.getRowCount(); n++ )
{
if( ( ( ColumnizedMappable ) estabelecimentosModel.getRowAt( n ) ).getID().equals( ids[ 1 ] ) )
{
estabelecimentosTable.setRowSelectionInterval( n, n );
break;
}
}
for( int n = 0; n < trabalhadoresTable.getRowCount(); n++ )
{
if( ( ( ColumnizedMappable ) trabalhadoresModel.getRowAt( n ) ).getID().equals( ids[ 2 ] ) )
{
trabalhadoresTable.setRowSelectionInterval( n, n );
break;
}
}
}
public Object save()
{
int empresaSelected = empresasTable.getSelectedRow();
int estabelecimentoSelected = estabelecimentosTable.getSelectedRow();
int trabalhadorSelected = trabalhadoresTable.getSelectedRow();
return new Integer[]{
empresaSelected == -1 ? null : ( ( ColumnizedMappable ) empresasModel.getRowAt( empresaSelected ) ).getID(),
estabelecimentoSelected == -1 ? null : ( ( ColumnizedMappable ) estabelecimentosModel.getRowAt( estabelecimentoSelected ) ).getID(),
trabalhadorSelected == -1 ? null : ( ( ColumnizedMappable ) trabalhadoresModel.getRowAt( trabalhadorSelected ) ).getID()
};
}
public void setEnabled( boolean enable )
{
editing = !enable;
empresasTable.setEnabled( enable );
estabelecimentosTable.setEnabled( enable );
trabalhadoresTable.setEnabled( enable );
}
}

@ -1,104 +0,0 @@
/*
* ProcessoWindow.java
*
* Created on March 21, 2007, 9:06 AM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.processo;
//
//import info.clearthought.layout.TableLayout;
//import info.clearthought.layout.TableLayoutConstraints;
//
//import java.awt.Dimension;
//
//import javax.swing.BorderFactory;
//import javax.swing.JFrame;
//import javax.swing.SwingUtilities;
//
//import siprp.medicina.processo.detalhes.DetalhesConsultaPanel;
//import siprp.medicina.processo.detalhes.DetalhesProcessoPanel;
//import siprp.medicina.processo.estrutura.EstruturaProcessoPanel;
//
//import com.evolute.utils.tracker.TrackableWindow;
//
///**
// *
// * @author fpalma
// */
//public class ProcessoWindow extends JFrame
// implements TrackableWindow
//{
// private static final long serialVersionUID = 1L;
//
// public static final String TITLE = "Processos de trabalhadores";
//
// private ProcessoUpperPanel upperPanel;
// private EstruturaProcessoPanel estruturaPanel;
// private ProcessoPanel processoPanel;
// private DetalhesProcessoPanel detalhesPanel;
//
// /** Creates a new instance of ProcessoWindow */
// public ProcessoWindow()
// throws Exception
// {
// setupComponents();
// }
//
// private void setupComponents()
// throws Exception
// {
// setSize( 1024, 700 );
// setTitle( TITLE );
//
// upperPanel = new ProcessoUpperPanel();
// upperPanel.setPreferredSize( new Dimension( 1024, 200 ) );
// estruturaPanel = new EstruturaProcessoPanel();
// processoPanel = new ProcessoPanel( this );
// processoPanel.setBorder( BorderFactory.createEtchedBorder() );
// detalhesPanel = new DetalhesProcessoPanel( this );
// detalhesPanel.setBorder( BorderFactory.createEtchedBorder() );
// double cols[] =
// new double[]{ TableLayout.FILL, TableLayout.PREFERRED };
// double rows[] =
// new double[]{ TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.FILL };
//
// TableLayout tableLayout = new TableLayout( cols, rows );
// setLayout( tableLayout );
//
// add( upperPanel, new TableLayoutConstraints( 0, 0, 1, 0 ) );
// add( estruturaPanel, new TableLayoutConstraints( 0, 1, 0, 2 ) );
// add( processoPanel, new TableLayoutConstraints( 1, 1 ) );
//// add( detalhesPanel, new TableLayoutConstraints( 1, 2 ) );
// add( new DetalhesConsultaPanel( this ), new TableLayoutConstraints( 1, 2 ) );
// new ProcessoController( upperPanel, estruturaPanel, processoPanel, detalhesPanel );
// }
//
// 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;
// }
//}

@ -1,367 +0,0 @@
/*
* ConsultaPanel.java
*
* Created on March 22, 2007, 10:58 AM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.processo.detalhes;
import info.clearthought.layout.TableLayout;
import info.clearthought.layout.TableLayoutConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import java.util.HashMap;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import siprp.medicina.MedicinaConstants;
import siprp.medicina.processo.ProcessoConstants;
import siprp.medicina.processo.ProcessoDataProvider;
import siprp.medicina.processo.ProcessoEvent;
import siprp.medicina.processo.ProcessoListener;
import siprp.medicina.processo.data.TrabalhadoresConsultasData;
import siprp.medicina.processo.data.TrabalhadoresConsultasDatasData;
import com.evolute.utils.Singleton;
import com.evolute.utils.data.IDObject;
import com.evolute.utils.jdo.JDOProvider;
import com.evolute.utils.ui.DialogException;
import com.evolute.utils.ui.calendar.JCalendarPanel;
/**
*
* @author fpalma
*/
public class DataConsultaPanel extends JPanel
implements ActionListener, MedicinaConstants, ChangeListener
{
protected JFrame owner;
protected JCalendarPanel dataConsultaPanel;
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 TrabalhadoresConsultasData consulta;
protected TrabalhadoresConsultasDatasData consultaData;
/** Creates a new instance of ConsultaPanel */
public DataConsultaPanel( 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( dataConsultaPanel, 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( consulta == null )
{
nova = true;
Integer consultaID = provider.getConsultaEmAbertoForProcesso( processoID );
if( consultaID == null )
{
consulta = new TrabalhadoresConsultasData();
consulta.set( TrabalhadoresConsultasData.TRABALHADOR_ID, trabalhadorID );
consulta.set( TrabalhadoresConsultasData.PROCESSO_ID, processoID );
consulta.set( TrabalhadoresConsultasData.ESTADO, new Integer( MedicinaConstants.ESTADO_POR_REALIZAR ) );
}
else
{
consulta = provider.getConsultaByID( consultaID );
consulta.set( TrabalhadoresConsultasData.ESTADO, new Integer( MedicinaConstants.ESTADO_POR_REALIZAR ) );
}
}
consulta.set( TrabalhadoresConsultasData.DATA, data );
provider.saveConsulta( consulta );
if( consultaData == null )
{
Integer consultaID = ( Integer )consulta.get( TrabalhadoresConsultasData.ID );
Integer consultaDataID = provider.getLastConsultaDataIDForConsulta( consultaID );
if( consultaDataID == null || nova )
{
consultaData = new TrabalhadoresConsultasDatasData();
consultaData.set( TrabalhadoresConsultasDatasData.TRABALHADORES_CONSULTAS_ID, consultaID );
consultaData.set( TrabalhadoresConsultasDatasData.ESTADO, new Integer( MedicinaConstants.ESTADO_POR_REALIZAR ) );
}
else
{
consultaData = provider.getConsultaDataByID( consultaDataID );
}
}
consultaData.set( TrabalhadoresConsultasDatasData.DATA, data );
provider.saveConsultaData( consultaData );
notifyListeners( ProcessoEvent.ACCAO_MUDAR_DATA_MARCACAO );
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a gravar dados da consulta", true );
return;
}
}
}
protected void editarObservacoes()
{
if( observacoesDialog == null )
{
observacoesDialog = new ObservacoesDialog( owner );
}
String texto = "";
try
{
Integer dataID = provider.getLastConsultaDataIDForConsulta( ( Integer ) consulta.get( TrabalhadoresConsultasData.ID ) );
IDObject observacoes = provider.getObservacoesConsultaData( dataID );
if( observacoes != null )
{
texto = observacoes.toString();
}
texto = observacoesDialog.editarObservacao( texto );
if( texto != null )
{
provider.saveObservacoesConsultaData( dataID, texto );
notifyListeners( ProcessoEvent.ACCAO_ESCREVER_OBSERVACOES );
}
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a carregar dados", true );
return;
}
}
protected void enviarEmail()
{
if( consulta == null )
{
return;
}
try
{
Integer consultaDataID;
if( consultaData == null )
{
Integer consultaID = ( Integer )consulta.get( TrabalhadoresConsultasDatasData.ID );
consultaDataID = provider.getLastConsultaDataIDForConsulta( consultaID );
consultaData = provider.getConsultaDataByID( consultaDataID );
}
consultaDataID = ( Integer ) consultaData.get( TrabalhadoresConsultasDatasData.ID );
provider.saveEmailConsultaData( consultaDataID, "teste@siprp.pt", "Email de teste.", "" );
notifyListeners( ProcessoEvent.ACCAO_ESCREVER_MAIL );
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a gravar dados da consulta", true );
return;
}
}
protected void mudarEstado()
{
if( consulta == null )
{
return;
}
Integer estado = ( Integer ) consulta.get( TrabalhadoresConsultasData.ESTADO );
EstadoChooser chooser =
new EstadoChooser( owner, ProcessoConstants.TIPO_CONSULTA,
estado != null ? estado.intValue() : MedicinaConstants.ESTADO_POR_REALIZAR );
chooser.setVisible( true );
int novoEstado = chooser.getEstado();
if( estado == null || estado.intValue() != novoEstado )
{
try
{
consulta.set( TrabalhadoresConsultasData.ESTADO, new Integer( novoEstado ) );
provider.saveConsulta( consulta );
if( consultaData == null )
{
Integer consultaID = ( Integer )consulta.get( TrabalhadoresConsultasDatasData.ID );
Integer consultaDataID = provider.getLastConsultaDataIDForConsulta( consultaID );
consultaData = provider.getConsultaDataByID( consultaDataID );
}
consultaData.set( TrabalhadoresConsultasDatasData.ESTADO, new Integer( novoEstado ) );
provider.saveConsultaData( consultaData );
notifyListeners( ProcessoEvent.ACCAO_MUDAR_ESTADO_MARCACAO );
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a gravar dados da consulta", 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( " " );
consulta = null;
consultaData = null;
}
public void fill( Object value )
{
clear();
if( value != null )
{
try
{
consulta = ( TrabalhadoresConsultasData ) JDO.load( TrabalhadoresConsultasData.class, ( Integer ) value );
Date data = ( Date ) consulta.get( TrabalhadoresConsultasData.DATA );
Integer estado = ( Integer ) consulta.get( TrabalhadoresConsultasData.ESTADO );
dataConsultaPanel.setDate( data );
if( estado != null )
{
estadoButton.setText( ESTADOS_CONSULTA_STR[ estado.intValue() ] );
}
else
{
estadoButton.setText( " " );
}
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a carregar dados da consulta", true );
}
}
enableButtons();
}
protected void enableButtons()
{
if( consulta != null )
{
Integer estado = ( Integer ) consulta.get( TrabalhadoresConsultasData.ESTADO );
dataConsultaPanel.setEnabled( estado == null || estado.intValue() == ESTADO_POR_REALIZAR );
estadoButton.setEnabled( consulta.get( TrabalhadoresConsultasData.DATA ) != null );
emailButton.setEnabled( consulta.get( TrabalhadoresConsultasData.DATA ) != null );
observacoesButton.setEnabled( consulta.get( TrabalhadoresConsultasData.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( consulta != null )
{
ids.put( ProcessoEvent.TIPO_CONSULTA, ( Integer ) consulta.get( TrabalhadoresConsultasData.ID ) );
}
if( consultaData != null )
{
ids.put( ProcessoEvent.TIPO_DATA, ( Integer ) consulta.get( TrabalhadoresConsultasDatasData.ID ) );
}
ProcessoEvent event = new ProcessoEvent( this, accao, ids );
for( int n = 0; n < PROCESSO_LISTENERS.size(); n++ )
{
PROCESSO_LISTENERS.get( n ).processoStateChanged( event );
}
}
}

@ -1,145 +0,0 @@
package siprp.medicina.processo.detalhes;
import info.clearthought.layout.TableLayout;
import info.clearthought.layout.TableLayoutConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import siprp.medicina.MedicinaConstants;
import siprp.medicina.prestadores.PrestadoresDataProvider;
import siprp.medicina.prestadores.data.PrestadoresData;
import siprp.medicina.processo.ProcessoConstants;
import siprp.medicina.processo.ProcessoDataProvider;
import siprp.medicina.processo.data.TrabalhadoresConsultasData;
import com.evolute.utils.dataui.ControllableComponent;
import com.evolute.utils.images.ImageIconLoader;
import com.evolute.utils.tables.BaseTable;
import com.evolute.utils.tables.ColumnizedObjectArray;
import com.evolute.utils.tables.VectorTableModel;
import com.evolute.utils.ui.DialogException;
public class DetalhesConsultaPanel
extends JPanel
implements ControllableComponent, ProcessoConstants,
ActionListener
{
protected JFrame owner;
protected JButton marcarButton;
protected JButton cancelarButton;
protected JTextField estadoText;
protected BaseTable datasTable;
protected VectorTableModel datasModel;
protected ProcessoDataProvider processoProvider;
public DetalhesConsultaPanel( JFrame owner )
throws Exception
{
this.owner = owner;
processoProvider = ProcessoDataProvider.getProvider();
setupComponents();
}
private void setupComponents()
{
Icon marcarIcon = getIcon( DATA_ICON_PATH );
marcarButton = new JButton( "Fazer Marca\u00e7\u00e3o" );
marcarButton.setIcon( marcarIcon );
marcarButton.addActionListener( this );
Icon cancelarIcon = getIcon( DATA_ICON_PATH );
cancelarButton = new JButton( "Cancelar Consulta" );
cancelarButton.setIcon( cancelarIcon );
cancelarButton.addActionListener( this );
estadoText = new JTextField();
estadoText.setEditable( false );
datasModel = new VectorTableModel( new String[]{ "data", "prestador", "estado" } );
datasTable = new BaseTable( datasModel );
JScrollPane datasScroll = new JScrollPane( datasTable, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
double cols[] = new double[]{ TableLayout.FILL, TableLayoutConstraints.FILL };
double rows[] = new double[]{ TableLayout.PREFERRED, TableLayoutConstraints.MINIMUM, TableLayoutConstraints.FILL };
TableLayout layout = new TableLayout( cols, rows );
layout.setHGap( 5 );
layout.setVGap( 5 );
setLayout( layout );
add( marcarButton, new TableLayoutConstraints( 0, 0 ) );
add( cancelarButton, new TableLayoutConstraints( 1, 0 ) );
add( estadoText, new TableLayoutConstraints( 0, 1, 1, 1 ) );
add( datasScroll, new TableLayoutConstraints( 0, 2, 1, 2 ) );
}
public Object save()
{
return null;
}
public void fill( Object value )
{
clear();
Integer id = ( Integer ) value;
if( id != null )
{
try
{
TrabalhadoresConsultasData consulta = processoProvider.getConsultaByID( id );
Integer estado = ( Integer ) consulta.get( TrabalhadoresConsultasData.ESTADO );
String estadoStr = MedicinaConstants.ESTADOS_CONSULTA_STR[ estado != null ? estado.intValue() : 0 ];
estadoText.setText( estadoStr );
Vector values = datasModel.getValues();
Object datas[][] = processoProvider.getDatasConsulta( id );
for( int n = 0; n < datas.length; n++ )
{
PrestadoresData prestador = PrestadoresDataProvider.getProvider().getPrestadorByID( ( Integer ) datas[ n ][ 2 ] );
datas[ n ][ 2 ] = prestador.get( PrestadoresData.NOME );
Integer estadoData = ( Integer ) datas[ n ][ 3 ];
datas[ n ][ 3 ] = MedicinaConstants.ESTADOS_CONSULTA_STR[ estadoData != null ? estadoData.intValue() : 0 ];
values.add( new ColumnizedObjectArray( datas[ n ], true ) );
}
datasModel.setValues( values );
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a carregar dados da consulta", true );
}
}
}
public void clear()
{
estadoText.setText( "" );
datasModel.clearAll();
}
public void setEnabled( boolean enable )
{
}
public void actionPerformed( ActionEvent e )
{
}
public Icon getIcon( String path )
{
try
{
return ImageIconLoader.loadImageIcon( getClass(), path );
}
catch( Exception ex )
{
ex.printStackTrace();
return null;
}
}
}

@ -1,198 +0,0 @@
/*
* DetalhesProcessoPanel.java
*
* Created on 25 de Abril de 2007, 17:34
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.processo.detalhes;
import info.clearthought.layout.TableLayout;
import info.clearthought.layout.TableLayoutConstraints;
import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Vector;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import siprp.medicina.processo.ProcessoConstants;
import siprp.medicina.processo.ProcessoEvent;
import siprp.medicina.processo.ProcessoListener;
import com.evolute.utils.images.ImageIconLoader;
/**
*
* @author Frederico
*/
public class DetalhesProcessoPanel extends JPanel
implements ProcessoConstants, ActionListener
{
private final Vector<ProcessoListener> PROCESSO_LISTENERS = new Vector<ProcessoListener>();
private static final String CARD_BLANK = "";
private static final String CARD_CONSULTA = "CONSULTA";
private static final String CARD_ECDS = "ECDS";
protected JFrame owner;
private JButton novoGrupoECDsButton;
private JButton novaConsultaButton;
private JLabel consultaLabel;
private JLabel ecdsLabel;
private JLabel fichaAptidaoLabel;
// protected JPanel blankPanel;
// protected DataConsultaPanel consultaPanel;
// protected ECDsPanel ecdsPanel;
protected CardLayout cardLayout;
protected Integer processoId;
/**
* Creates a new instance of DetalhesProcessoPanel
*/
public DetalhesProcessoPanel( JFrame owner )
throws Exception
{
this.owner = owner;
setupComponents();
}
private void setupComponents()
throws Exception
{
Icon ecdsIcon = getIcon( ECDS_ICON_PATH );
novoGrupoECDsButton = new JButton( "Marcar ECDs" );
novoGrupoECDsButton.setIcon( ecdsIcon );
novoGrupoECDsButton.addActionListener( this );
Icon consultaIcon = getIcon( CONSULTA_ICON_PATH );
novaConsultaButton = new JButton( "Marcar Consulta" );
novaConsultaButton.setIcon( consultaIcon );
novaConsultaButton.addActionListener( this );
ecdsLabel = new JLabel( ecdsIcon, JLabel.LEFT );
consultaLabel = new JLabel( consultaIcon, JLabel.LEFT );
Icon fichaAptidaoIcon = getIcon( FICHA_APTIDAO_ICON_PATH );
fichaAptidaoLabel = new JLabel( fichaAptidaoIcon, JLabel.LEFT );
double cols[] = new double[]{ TableLayout.FILL, TableLayout.FILL };
double rows[] =
new double[]{ TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.PREFERRED,
TableLayout.PREFERRED, TableLayout.FILL };
TableLayout tableLayout = new TableLayout( cols, rows );
setLayout( tableLayout );
add( novoGrupoECDsButton, new TableLayoutConstraints( 0, 0 ) );
add( novaConsultaButton, new TableLayoutConstraints( 1, 0 ) );
add( ecdsLabel, new TableLayoutConstraints( 0, 1, 1, 1 ) );
add( consultaLabel, new TableLayoutConstraints( 0, 2, 1, 2 ) );
add( fichaAptidaoLabel, new TableLayoutConstraints( 0, 3, 1, 3 ) );
// blankPanel = new JPanel();
// consultaPanel = new DataConsultaPanel( owner );
// ecdsPanel = new ECDsPanel( owner );
//
// cardLayout = new CardLayout();
// setLayout( cardLayout );
// add( blankPanel, CARD_BLANK );
// add( consultaPanel, CARD_CONSULTA );
// add( ecdsPanel, CARD_ECDS );
}
public void addProcessoListener( ProcessoListener listener )
{
PROCESSO_LISTENERS.add( listener );
// consultaPanel.addProcessoListener( listener );
// ecdsPanel.addProcessoListener( listener );
}
public void removeProcessoListener( ProcessoListener listener )
{
PROCESSO_LISTENERS.remove( listener );
// consultaPanel.removeProcessoListener( listener );
// ecdsPanel.removeProcessoListener( listener );
}
public void actionPerformed( ActionEvent e )
{
Object source = e.getSource();
if( source.equals( novoGrupoECDsButton ) )
{
novaConsulta();
}
else if( source.equals( novaConsultaButton ) )
{
novoGrupoECDs();
}
}
public void clear()
{
// cardLayout.first( this );
}
public void setTrabalhadorID( Integer trabalhadorID )
{
// consultaPanel.setTrabalhadorID( trabalhadorID );
}
public void setProcessoID( Integer processoID )
{
this.processoId = processoID;
// consultaPanel.setProcessoID( processoID );
}
public void setConsulta( Integer consultaID )
{
// cardLayout.show( this, CARD_CONSULTA );
// consultaPanel.fill( consultaID );
}
public void setECDs( Integer ecdsID )
{
cardLayout.show( this, CARD_ECDS );
}
public Icon getIcon( String path )
{
try
{
return ImageIconLoader.loadImageIcon( getClass(), path );
}
catch( Exception ex )
{
ex.printStackTrace();
return null;
}
}
protected void notifyListeners( int accao )
{
HashMap<Integer,Integer> ids = new HashMap<Integer,Integer>();
ids.put( ProcessoEvent.TIPO_PROCESSO, processoId );
ProcessoEvent event = new ProcessoEvent( this, accao, ids );
for( int n = 0; n < PROCESSO_LISTENERS.size(); n++ )
{
PROCESSO_LISTENERS.get( n ).processoStateChanged( event );
}
}
protected void novoGrupoECDs()
{
}
protected void novaConsulta()
{
notifyListeners( ProcessoEvent.ACCAO_MARCAR_CONSULTA );
}
}

@ -1,30 +0,0 @@
package siprp.medicina.processo.detalhes;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import com.evolute.utils.tables.BaseTable;
import com.evolute.utils.tables.VectorTableModel;
public class ECDsInfoPanel extends JPanel
{
protected final JFrame owner;
protected BaseTable marcacoesTable;
protected VectorTableModel marcacoesModel;
public ECDsInfoPanel( JFrame owner )
{
this.owner = owner;
setupComponents();
}
private void setupComponents()
{
marcacoesModel = new VectorTableModel( new String[]{ "data", "marcados", "realizados", "recusados", "estado" } );
marcacoesTable = new BaseTable( marcacoesModel );
JScrollPane marcacoesScroll = new JScrollPane( marcacoesTable, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
}
}

@ -1,360 +0,0 @@
/*
* 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 );
}
}
}

@ -1,96 +0,0 @@
/*
* EstadoChooser.java
*
* Created on 13 de Maio de 2007, 11:54
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.processo.detalhes;
import com.evolute.utils.ui.CustomJDialog;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import siprp.medicina.MedicinaConstants;
/**
*
* @author Frederico
*/
public class EstadoChooser extends CustomJDialog
implements MedicinaConstants, ActionListener
{
protected int tipo;
protected int estado;
protected HashMap<JButton,Integer> buttonMap = new HashMap<JButton,Integer>();
/** Creates a new instance of EstadoChooser */
public EstadoChooser( JFrame owner, int tipo, int estadoActual )
{
super( owner, true );
this.tipo = tipo;
estado = estadoActual;
setupComponents();
if( owner != null )
{
centerSuper();
}
else
{
center();
}
}
private void setupComponents()
{
setTitle( "Escolha o novo estado" );
setLayout( new GridLayout( ESTADOS_STR[ tipo ].length, 1 ) );
for( int n = 0; n < ESTADOS_STR[ tipo ].length; n++ )
{
if( ESTADOS_STR[ tipo ][ n ] == null )
{
continue;
}
JButton button = new JButton( ESTADOS_STR[ tipo ][ n ] );
if( n == estado )
{
button.setForeground( Color.green );
}
buttonMap.put( button, new Integer( n ) );
add( button );
button.addActionListener( this );
}
pack();
}
public void actionPerformed( ActionEvent e )
{
JButton source = ( JButton ) e.getSource();
estado = buttonMap.get( source ).intValue();
close();
}
public void close()
{
SwingUtilities.invokeLater( new Runnable(){
public void run()
{
setVisible( false );
dispose();
}
} );
}
public int getEstado()
{
return estado;
}
}

@ -1,116 +0,0 @@
/*
* ObservacoesDialog.java
*
* Created on 13 de Maio de 2007, 13:13
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package siprp.medicina.processo.detalhes;
import com.evolute.utils.ui.CustomJDialog;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
/**
*
* @author Frederico
*/
public class ObservacoesDialog extends CustomJDialog
implements ActionListener
{
protected JTextArea observacoesText;
protected JButton okButton;
protected JButton cancelButton;
protected boolean ok = false;
public static void main( String args[] )
{
ObservacoesDialog dialog = new ObservacoesDialog( null );
dialog.editarObservacao( "ISto e a observba" );
System.exit( 0 );
}
/** Creates a new instance of ObservacoesDialog */
public ObservacoesDialog( JFrame owner )
{
super( owner, true );
setupComponents();
if( owner != null )
{
centerSuper();
}
else
{
center();
}
}
private void setupComponents()
{
setTitle( "Coment\u00e1rio" );
setSize( 400, 200 );
observacoesText = new JTextArea();
observacoesText.setLineWrap( true );
observacoesText.setWrapStyleWord( true );
JScrollPane scp = new JScrollPane( observacoesText,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
okButton = new JButton( "Ok" );
okButton.addActionListener( this );
cancelButton = new JButton( "Cancelar" );
cancelButton.addActionListener( this );
JPanel buttonPanel = new JPanel();
setLayout( new BorderLayout() );
add( scp, BorderLayout.CENTER );
add( buttonPanel, BorderLayout.SOUTH );
buttonPanel.setLayout( new GridLayout( 1, 2 ) );
buttonPanel.add( okButton );
buttonPanel.add( cancelButton );
}
public void actionPerformed( ActionEvent e )
{
Object source = e.getSource();
if( source.equals( okButton ) )
{
ok = true;
close();
}
else
{
ok = false;
close();
}
}
public String editarObservacao( String observacao )
{
observacoesText.setText( observacao );
setVisible( true );
return ok ? observacoesText.getText() : null;
}
public void close()
{
SwingUtilities.invokeLater( new Runnable(){
public void run()
{
setVisible( false );
dispose();
}
} );
}
}

@ -1,229 +0,0 @@
package siprp.medicina.processo.detalhes;
import info.clearthought.layout.TableLayout;
import info.clearthought.layout.TableLayoutConstraints;
import java.awt.GridLayout;
import java.text.DateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.Locale;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import siprp.medicina.MedicinaConstants;
import siprp.medicina.MedicinaDataProvider;
import siprp.medicina.processo.ProcessoDataProvider;
import siprp.medicina.processo.data.TrabalhadoresConsultasData;
import siprp.medicina.processo.data.TrabalhadoresProcessoData;
import com.evolute.utils.dataui.ControllableComponent;
import com.evolute.utils.tables.BaseTable;
import com.evolute.utils.tables.ColumnizedObjectArray;
import com.evolute.utils.tables.VectorTableModel;
import com.evolute.utils.ui.DialogException;
public class ProcessoInfoPanel
extends JPanel
implements ControllableComponent
{
protected static final DateFormat D_F = DateFormat.getDateInstance( DateFormat.SHORT, new Locale( "pt", "PT" ) );
protected JFrame owner;
protected JTextField descricaoText;
protected JTextField estadoECDsText;
protected BaseTable ecdsTable;
protected VectorTableModel ecdsModel;
protected JTextField estadoConsultasText;
protected BaseTable consultasTable;
protected VectorTableModel consultasModel;
protected JTextField estadoFichaAptidaoText;
protected BaseTable fichaAptidaoTable;
protected VectorTableModel fichaAptidaoModel;
protected ProcessoDataProvider processoProvider;
public ProcessoInfoPanel( JFrame owner )
throws Exception
{
this.owner = owner;
processoProvider = ProcessoDataProvider.getProvider();
setupComponents();
}
private void setupComponents()
{
descricaoText = new JTextField();
descricaoText.setEditable( false );
JLabel estadoECDsLabel = new JLabel( "Estado" );
estadoECDsText = new JTextField();
estadoECDsText.setEditable( false );
ecdsModel = new VectorTableModel( new String[]{ "Situa\u00e7\u00e3o", "#", "\u00DAltima Data" } );
ecdsTable = new BaseTable( ecdsModel );
JScrollPane ecdsScroll =
new JScrollPane( ecdsTable, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );
JLabel estadoConsultasLabel = new JLabel( "Estado" );
estadoConsultasText = new JTextField();
estadoConsultasText.setEditable( false );
consultasModel = new VectorTableModel( new String[]{ "Situa\u00e7\u00e3o", "#", "\u00DAltima Data" } );
consultasTable = new BaseTable( consultasModel );
JScrollPane consultasScroll =
new JScrollPane( consultasTable, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );
JLabel estadoFichaAptidaoLabel = new JLabel( "Estado" );
estadoFichaAptidaoText = new JTextField();
estadoFichaAptidaoText.setEditable( false );
fichaAptidaoModel = new VectorTableModel( new String[]{ "Situa\u00e7\u00e3o", "Resultado", "\u00DAltima Data" } );
fichaAptidaoTable = new BaseTable( fichaAptidaoModel );
JScrollPane fichaAptidaoScroll =
new JScrollPane( fichaAptidaoTable, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED );
JPanel ecdsPanel = new JPanel();
ecdsPanel.setBorder(
BorderFactory.createTitledBorder(
BorderFactory.createEtchedBorder(),
"ECDs") );
double ecdsRows[] = new double[]{ TableLayoutConstraints.MINIMUM, TableLayoutConstraints.FILL };
double ecdsCols[] = new double[]{ TableLayoutConstraints.MINIMUM, TableLayoutConstraints.FILL };
TableLayout ecdsLayout = new TableLayout( ecdsCols, ecdsRows );
ecdsPanel.setLayout( ecdsLayout );
ecdsPanel.add( estadoECDsLabel, new TableLayoutConstraints( 0, 0 ) );
ecdsPanel.add( estadoECDsText, new TableLayoutConstraints( 1, 0 ) );
ecdsPanel.add( ecdsScroll, new TableLayoutConstraints( 0, 1, 1, 1 ) );
JPanel consultasPanel = new JPanel();
consultasPanel.setBorder(
BorderFactory.createTitledBorder(
BorderFactory.createEtchedBorder(),
"Consultas") );
double consultasRows[] = new double[]{ TableLayoutConstraints.MINIMUM, TableLayoutConstraints.FILL };
double consultasCols[] = new double[]{ TableLayoutConstraints.MINIMUM, TableLayoutConstraints.FILL };
TableLayout consultasLayout = new TableLayout( consultasCols, consultasRows );
consultasPanel.setLayout( consultasLayout );
consultasPanel.add( estadoConsultasLabel, new TableLayoutConstraints( 0, 0 ) );
consultasPanel.add( estadoConsultasText, new TableLayoutConstraints( 1, 0 ) );
consultasPanel.add( consultasScroll, new TableLayoutConstraints( 0, 1, 1, 1 ) );
JPanel fichaAptidaoPanel = new JPanel();
fichaAptidaoPanel.setBorder(
BorderFactory.createTitledBorder(
BorderFactory.createEtchedBorder(),
"Ficha de Aptid\u00e3o") );
double fichaAptidaoRows[] = new double[]{ TableLayoutConstraints.MINIMUM, TableLayoutConstraints.FILL };
double fichaAptidaoCols[] = new double[]{ TableLayoutConstraints.MINIMUM, TableLayoutConstraints.FILL };
TableLayout fichaAptidaoLayout = new TableLayout( fichaAptidaoCols, fichaAptidaoRows );
fichaAptidaoPanel.setLayout( fichaAptidaoLayout );
fichaAptidaoPanel.add( estadoFichaAptidaoLabel, new TableLayoutConstraints( 0, 0 ) );
fichaAptidaoPanel.add( estadoFichaAptidaoText, new TableLayoutConstraints( 1, 0 ) );
fichaAptidaoPanel.add( fichaAptidaoScroll, new TableLayoutConstraints( 0, 1, 1, 1 ) );
double rows[] = new double[]{ TableLayoutConstraints.MINIMUM, TableLayoutConstraints.FILL,
TableLayoutConstraints.FILL, TableLayoutConstraints.FILL };
double cols[] = new double[]{ TableLayoutConstraints.FILL };
TableLayout layout = new TableLayout( cols, rows );
layout.setHGap( 5 );
layout.setVGap( 5 );
setLayout( layout );
add( descricaoText, new TableLayoutConstraints( 0, 0 ) );
add( ecdsPanel, new TableLayoutConstraints( 0, 1 ) );
add( consultasPanel, new TableLayoutConstraints( 0, 2 ) );
add( fichaAptidaoPanel, new TableLayoutConstraints( 0, 3 ) );
}
@Override
public void setEnabled( boolean enabled )
{
// TODO Auto-generated method stub
super.setEnabled( enabled );
}
@Override
public void clear()
{
descricaoText.setText( "" );
ecdsModel.clearAll();
consultasModel.clearAll();
fichaAptidaoModel.clearAll();
}
@Override
public Object save()
{
// TODO Auto-generated method stub
return null;
}
@Override
public void fill( Object value )
{
clear();
Integer id = ( Integer ) value;
if( id != null )
{
try
{
TrabalhadoresProcessoData processo = processoProvider.getProcessoByID( id );
if( processo == null )
{
throw new Exception( "Processo n\u00e3o existente: " + id );
}
Date dataInicio = ( Date ) processo.get( TrabalhadoresProcessoData.DATA_INICIO );
Date dataFim = ( Date ) processo.get( TrabalhadoresProcessoData.DATA_FIM );
String codigoEstado = ( String ) processo.get( TrabalhadoresProcessoData.ESTADO );
String estado = processoProvider.getDescricaoEstadoProcessoByCodigo( codigoEstado );
String desc = D_F.format( dataInicio );
Integer motivo = ( Integer ) processo.get( TrabalhadoresProcessoData.MOTIVO );
desc += ": " + MedicinaDataProvider.MOTIVOS_BY_ID.get( motivo ) + " : " + estado;
descricaoText.setText( desc );
Integer consultaIds[] = processoProvider.getConsultaIDsForProcesso( id );
Arrays.sort( consultaIds );
HashMap<Integer,Integer> numeroConsultasPorEstado = new HashMap<Integer,Integer>();
HashMap<Integer,Date> dataConsultaPorEstado = new HashMap<Integer,Date>();
for( int n = 0; n < consultaIds.length; n++ )
{
TrabalhadoresConsultasData consulta = processoProvider.getConsultaByID( consultaIds[ n ] );
Date dataConsulta = ( Date ) consulta.get( TrabalhadoresConsultasData.DATA );
Integer estadoConsulta = ( Integer ) consulta.get( TrabalhadoresConsultasData.ESTADO );
if( estadoConsulta != null )
{
Integer oldCount = numeroConsultasPorEstado.get( estadoConsulta );
if( oldCount == null )
{
oldCount = new Integer( 0 );
}
numeroConsultasPorEstado.put( estadoConsulta, new Integer( oldCount.intValue() + 1 ) );
}
dataConsultaPorEstado.put( estadoConsulta, dataConsulta );
}
Vector consultasValues = consultasModel.getValues();
Integer estadosConsultaUsados[] = numeroConsultasPorEstado.keySet().toArray( new Integer[ numeroConsultasPorEstado.size() ] );
Arrays.sort( estadosConsultaUsados );
for( int n = 0; n < estadosConsultaUsados.length; n++ )
{
String estadoStr = MedicinaConstants.ESTADOS_CONSULTA_STR[ estadosConsultaUsados[ n ].intValue() ];
Integer numero = numeroConsultasPorEstado.get( estadosConsultaUsados[ n ] );
Date dataUltimaConsulta = dataConsultaPorEstado.get( estadosConsultaUsados );
Object linha[] = new Object[]{ estadoStr, numero, dataUltimaConsulta };
consultasValues.add( new ColumnizedObjectArray( linha, false ) );
}
consultasModel.setValues( consultasValues );
}
catch( Exception ex )
{
DialogException.showExceptionMessage( ex, "Erro a carregar dados do processo", true );
return;
}
}
}
}

@ -10,6 +10,7 @@ import leaf.LeafWindow.LeafObject;
import siprp.database.cayenne.objects.BaseObject;
import siprp.database.cayenne.objects.Empresas;
import siprp.database.cayenne.objects.Estabelecimentos;
import siprp.database.cayenne.objects.Lembretes;
import siprp.database.cayenne.objects.Prestadores;
import siprp.database.cayenne.objects.Trabalhadores;
import siprp.database.cayenne.objects.TrabalhadoresConsultas;
@ -80,6 +81,9 @@ public class MedicinaProcessoLogic extends LeafLogic
@Action(isSave = false)
public static final String CREATE_PROCESSO = "CREATE_PROCESSO";
@Action(isSave = false)
public static final String CREATE_LEMBRETE = "CREATE_LEMBRETE";
@Action(isSave = false)
public static final String CREATE_FICHA = "CREATE_FICHA";
@ -92,6 +96,9 @@ public class MedicinaProcessoLogic extends LeafLogic
@Action(isSave = false)
public static final String CREATE_CONSULTA_MARCACAO_EMAIL = "CREATE_CONSULTA_MARCACAO_EMAIL";
@Action(isSave = false)
public static final String CREATE_CONSULTA_MARCACAO_EMAIL_VACINAS = "CREATE_CONSULTA_MARCACAO_EMAIL_VACINAS";
@Action(isSave = false)
public static final String CREATE_CONSULTA_MARCACAO_OBSERVACOES = "CREATE_CONSULTA_MARCACAO_OBSERVACOES";
@ -110,6 +117,9 @@ public class MedicinaProcessoLogic extends LeafLogic
@Action(isSave = true)
public static final String SAVE_PROCESSO = "SAVE_PROCESSO";
@Action(isSave = true)
public static final String SAVE_LEMBRETE = "SAVE_LEMBRETE";
@Action(isSave = true)
public static final String SAVE_CONSULTA = "SAVE_CONSULTA";
@ -613,6 +623,17 @@ public class MedicinaProcessoLogic extends LeafLogic
return currentConsultaMarcacaoEmail;
}
@LeafLogicActionBinding(actions = {
CREATE_CONSULTA_MARCACAO_EMAIL_VACINAS
})
public TrabalhadoresConsultasDatasEmails createConsultaMarcacaoEmailsVacinas()
{
currentConsultaMarcacaoEmail = new TrabalhadoresConsultasDatasEmails();
currentConsultaMarcacaoEmail.setToTrabalhadoresConsultasDatas( currentConsultaMarcacao );
runActionLater( SAVE_CONSULTA_MARCACAO_EMAIL );
return currentConsultaMarcacaoEmail;
}
@LeafLogicActionBinding(actions = {
CREATE_CONSULTA_MARCACAO_OBSERVACOES
})
@ -677,8 +698,20 @@ public class MedicinaProcessoLogic extends LeafLogic
return currentProcesso;
}
@LeafLogicActionBinding(actions = CREATE_LEMBRETE)
public Lembretes createLembrete()
{
Lembretes result = new Lembretes();
result.setToTrabalhadores( currentTrabalhador );
result.setToEmpresas( currentEmpresa );
result.setToEstabelecimentos( currentEstabelecimento );
result.setToLembretesTipos( provider.getTipoLembretesCustomizavel() );
runActionLater( SAVE_LEMBRETE, result );
return result;
}
@LeafLogicActionBinding(actions = {
SAVE_PROCESSO, SAVE_CONSULTA, SAVE_CONSULTA_MARCACAO, SAVE_CONSULTA_MARCACAO_EMAIL, SAVE_CONSULTA_MARCACAO_OBSERVACOES, SAVE_EXAME, SAVE_EXAME_MARCACAO, SAVE_EXAME_MARCACAO_EMAIL, SAVE_EXAME_MARCACAO_OBSERVACOES
SAVE_PROCESSO, SAVE_LEMBRETE, SAVE_CONSULTA, SAVE_CONSULTA_MARCACAO, SAVE_CONSULTA_MARCACAO_EMAIL, SAVE_CONSULTA_MARCACAO_OBSERVACOES, SAVE_EXAME, SAVE_EXAME_MARCACAO, SAVE_EXAME_MARCACAO_EMAIL, SAVE_EXAME_MARCACAO_OBSERVACOES
})
public void saveObject( BaseObject object )
{

@ -1,19 +1,23 @@
package siprp.medicina.processo.ui;
import static siprp.medicina.processo.logic.MedicinaProcessoLogic.CLOSE;
import static siprp.medicina.processo.logic.MedicinaProcessoLogic.REALIZAR_PARCIAL_EXAME_MARCACAO;
import static siprp.medicina.processo.logic.MedicinaProcessoLogic.*;
import info.clearthought.layout.TableLayout;
import info.clearthought.layout.TableLayoutConstraints;
import java.awt.Dimension;
import java.util.Date;
import java.util.List;
import javax.swing.JSeparator;
import leaf.LeafCalendarDialog;
import leaf.LeafOptionDialog;
import leaf.LeafTextDialog;
import leaf.LeafWindow;
import leaf.OrderedMap;
import leaf.LeafLogic.LeafUIActionBinding;
import siprp.database.cayenne.objects.Lembretes;
import siprp.database.cayenne.objects.PrtGruposProtocolo;
import siprp.database.cayenne.objects.Trabalhadores;
import siprp.database.cayenne.objects.TrabalhadoresEcd;
@ -145,7 +149,8 @@ public class MedicinaProcessoWindow extends LeafWindow
{
ecd.setEstado( MedicinaConstants.ESTADO_FALTOU );
atLeastOneFalta = true;
}else
}
else
{
ecd.setEstado( MedicinaConstants.ESTADO_REALIZADO );
atLeastOneRealizado = true;
@ -159,18 +164,39 @@ public class MedicinaProcessoWindow extends LeafWindow
if( atLeastOneRealizado )
{
marcacao.setEstado( MedicinaConstants.ESTADO_PARCIALMENTE_REALIZADO );
}else
}
else
{
marcacao.setEstado( MedicinaConstants.ESTADO_FALTOU );
}
}else
}
else
{
if( atLeastOneRealizado )
{
marcacao.setEstado( MedicinaConstants.ESTADO_REALIZADO );
}else
}
else
{
}
}
}
@LeafUIActionBinding(action = CREATE_LEMBRETE)
public void createLembrete( Lembretes lembrete )
{
if( lembrete != null )
{
Date date = new LeafCalendarDialog( this, null ).getDate();
if( date != null && date.getTime() != 0 )
{
String text = new LeafTextDialog( this, null, "", true ).getText();
if( text != null )
{
lembrete.setData( date );
lembrete.setDescricao( text );
}
}
}
}
}

@ -94,6 +94,9 @@ public class ProcessoAccoesPanel extends JPanel
@ActionActivation(onSelect = CREATE_PROCESSO, onChange = "")
public final LeafButton buttonNovoTrabalhadorProcesso = new LeafButton( "Novo Processo" );
@ActionActivation(onSelect = CREATE_LEMBRETE, onChange = "")
public final LeafButton buttonNovoLembrete = new LeafButton( "Novo Lembrete" );
// processo
@ActionActivation(onSelect = FECHAR_PROCESSO, onChange = "")
public final LeafButton buttonFecharProcesso = new LeafButton( "Fechar Processo" );
@ -120,7 +123,9 @@ public class ProcessoAccoesPanel extends JPanel
// marcacao consulta
@ActionActivation(onSelect = CREATE_CONSULTA_MARCACAO_EMAIL, onChange = "")
public final LeafButton buttonNovoConsultaMarcacaoEmail = new LeafButton( "Enviar e-Mail" );
public final LeafButton buttonNovoConsultaMarcacaoEmail = new LeafButton( "e-Mail" );
@ActionActivation(onSelect = CREATE_CONSULTA_MARCACAO_EMAIL_VACINAS, onChange = "")
public final LeafButton buttonNovoConsultaMarcacaoEmailVacinas = new LeafButton( "e-Mail: Boletim" );
@ActionActivation(onSelect = CREATE_CONSULTA_MARCACAO_OBSERVACOES, onChange = "")
public final LeafButton buttonNovoConsultaMarcacaoObservacoes = new LeafButton( "Adicionar Observa" + ccedil + atilde + "o" );
@ -146,7 +151,7 @@ public class ProcessoAccoesPanel extends JPanel
// marcacao exame
@ActionActivation(onSelect = CREATE_EXAME_MARCACAO_EMAIL, onChange = "")
public final LeafButton buttonNovoExameMarcacaoEmail = new LeafButton( "Enviar e-Mail" );
public final LeafButton buttonNovoExameMarcacaoEmail = new LeafButton( "e-Mail" );
@ActionActivation(onSelect = CREATE_EXAME_MARCACAO_OBSERVACOES, onChange = "")
public final LeafButton buttonNovoExameMarcacaoObservacoes = new LeafButton( "Adicionar Observa" + ccedil + atilde + "o" );
@ -236,6 +241,7 @@ public class ProcessoAccoesPanel extends JPanel
}
}
buttonNovoTrabalhadorProcesso.setEnabled( !processoAberto );
buttonNovoLembrete.setEnabled( true );
cardLayout.show( cardPanel, PANEL_TRABALHADOR_NAME );
}
else
@ -312,6 +318,7 @@ public class ProcessoAccoesPanel extends JPanel
if( marcacao != null )
{
boolean porRealizar = new Integer( MedicinaConstants.ESTADO_POR_REALIZAR ).equals( marcacao.getEstado() );
boolean realizada = new Integer( MedicinaConstants.ESTADO_REALIZADO ).equals( marcacao.getEstado() );
List list = marcacao.getTrabalhadoresConsultasDatasObservacoesArray();
boolean noObservacoes = (list == null || list.size() == 0) ? true : false;
buttonConsultaMarcacaoDesmarcarSiprp.setEnabled( porRealizar );
@ -319,6 +326,7 @@ public class ProcessoAccoesPanel extends JPanel
buttonConsultaMarcacaoFaltou.setEnabled( porRealizar );
buttonConsultaMarcacaoRealizar.setEnabled( porRealizar );
buttonNovoConsultaMarcacaoObservacoes.setEnabled( noObservacoes );
buttonNovoConsultaMarcacaoEmailVacinas.setEnabled( realizada );
cardLayout.show( cardPanel, PANEL_CONSULTA_MARCACAO_NAME );
}
else
@ -423,7 +431,7 @@ public class ProcessoAccoesPanel extends JPanel
private void setupTrabalhadorPanel()
{
setupSimpleActionsPanel( panelTrabalhador, buttonNovoTrabalhadorProcesso, new JPanel() );
setupSimpleActionsPanel( panelTrabalhador, buttonNovoTrabalhadorProcesso, buttonNovoLembrete, new JPanel() );
}
private void setupProcessoPanel()
@ -449,7 +457,7 @@ public class ProcessoAccoesPanel extends JPanel
{
JPanel consultaMarcacaoUpperPanel = new JPanel();
JPanel consultaMarcacaoLowerPanel = new JPanel();
setupSimpleActionsPanel( consultaMarcacaoUpperPanel, buttonNovoConsultaMarcacaoEmail, buttonNovoConsultaMarcacaoObservacoes );
setupSimpleActionsPanel( consultaMarcacaoUpperPanel, buttonNovoConsultaMarcacaoEmail, buttonNovoConsultaMarcacaoEmailVacinas, buttonNovoConsultaMarcacaoObservacoes );
setupSimpleActionsPanel( consultaMarcacaoLowerPanel, buttonConsultaMarcacaoRealizar, buttonConsultaMarcacaoDesmarcarSiprp, buttonConsultaMarcacaoDesmarcarTrabalhador, buttonConsultaMarcacaoFaltou);
setupTopBottomSimpleActionsPanel(panelConsultaMarcacao, consultaMarcacaoUpperPanel, consultaMarcacaoLowerPanel);
}

@ -572,7 +572,33 @@ public class ProcessoDadosPanel extends JPanel
TrabalhadoresConsultas consulta = consultaMarcacao.getToTrabalhadoresConsultas();
if( consulta != null )
{
String[] subjectAndBody = sendMail(consulta.getToTrabalhadores(), consultaMarcacao.getDataString(), SingletonConstants.LETTER_CONSULTA, SingletonConstants.SUBJECT_CONSULTA );
String[] subjectAndBody = MedicinaConstants.ESTADO_REALIZADO == consulta.getEstado() ? sendMail( consulta.getToTrabalhadores(), consultaMarcacao.getDataString(), "", "" ) : sendMail( consulta.getToTrabalhadores(), consultaMarcacao.getDataString(), SingletonConstants.LETTER_CONSULTA, SingletonConstants.SUBJECT_CONSULTA );
if( subjectAndBody != null )
{
email.setSubject( subjectAndBody[0] );
email.setBody( subjectAndBody[1] );
}
else
{
parentWindow.abortAction( true );
}
}
}
}
}
@LeafUIActionBinding(action = CREATE_CONSULTA_MARCACAO_EMAIL_VACINAS)
public void setForNewConsultaMarcacaoEmailVacinas( TrabalhadoresConsultasDatasEmails email )
{
if( email != null )
{
TrabalhadoresConsultasDatas consultaMarcacao = email.getToTrabalhadoresConsultasDatas();
if( consultaMarcacao != null )
{
TrabalhadoresConsultas consulta = consultaMarcacao.getToTrabalhadoresConsultas();
if( consulta != null )
{
String[] subjectAndBody = sendMail( consulta.getToTrabalhadores(), consultaMarcacao.getDataString(), SingletonConstants.LETTER_CONSULTA_VACINAS, SingletonConstants.SUBJECT_CONSULTA_VACINAS );
if( subjectAndBody != null )
{
email.setSubject( subjectAndBody[0] );
@ -643,7 +669,6 @@ public class ProcessoDadosPanel extends JPanel
return result;
}
@LeafUIActionBinding(action = CREATE_CONSULTA_MARCACAO_OBSERVACOES)
public void setForNewConsultaMarcacaoObservacoes( TrabalhadoresConsultasDatasObservacoes observacoes )
{
@ -699,7 +724,10 @@ public class ProcessoDadosPanel extends JPanel
TrabalhadoresEcds exame = exameMarcacao.getToTrabalhadoresEcds();
if( exame != null )
{
String[] subjectAndBody = sendMail(exame.getToTrabalhadores(), exameMarcacao.getDataString(), SingletonConstants.LETTER_EXAMES, SingletonConstants.SUBJECT_EXAMES );
String[] subjectAndBody = MedicinaConstants.ESTADO_REALIZADO == exame.getEstado() ?
sendMail( exame.getToTrabalhadores(), exame.getDataString(), "", "" )
:
sendMail( exame.getToTrabalhadores(), exameMarcacao.getDataString(), SingletonConstants.LETTER_EXAMES, SingletonConstants.SUBJECT_EXAMES );
if( subjectAndBody != null )
{
email.setSubject( subjectAndBody[0] );

Loading…
Cancel
Save