forked from Coded/SIPRP
				
			git-svn-id: https://svn.coded.pt/svn/SIPRP@730 bb69d46d-e84e-40c8-a05a-06db0d633741
	
		
	
				
					
				
			
							parent
							
								
									74d9ecc15b
								
							
						
					
					
						commit
						82e8d1d031
					
				| @ -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>   " + "" + " de " + D_F.format( data ) | ||||
| 							+ "<br>   <font color=\"#009f00\">" + descricao + "</font>" | ||||
| 							+ "<br>   " + 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; | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 	} | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue