|  |  |  | @ -9,32 +9,265 @@ | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | package siprp.medicina.processo.detalhes; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 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; | 
			
		
	
		
			
				
					|  |  |  |  | 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.TrabalhadoresEcdsData; | 
			
		
	
		
			
				
					|  |  |  |  | import siprp.medicina.processo.data.TrabalhadoresEcdsDatasData; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /** | 
			
		
	
		
			
				
					|  |  |  |  |  * | 
			
		
	
		
			
				
					|  |  |  |  |  * @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; | 
			
		
	
		
			
				
					|  |  |  |  | 	 | 
			
		
	
		
			
				
					|  |  |  |  | 	private final Vector<ProcessoListener> PROCESSO_LISTENERS = new Vector<ProcessoListener>(); | 
			
		
	
		
			
				
					|  |  |  |  | 	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 ) | 
			
		
	
	
		
			
				
					|  |  |  | @ -46,4 +279,88 @@ public class ECDsPanel extends JPanel | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		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 ); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |