From 0d219205ce4c56c774a4a36cbbc0c1cd5e1d6c36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Sim=C3=A3o?= Date: Tue, 18 Dec 2007 11:20:52 +0000 Subject: [PATCH] git-svn-id: https://svn.coded.pt/svn/SIPRP@607 bb69d46d-e84e-40c8-a05a-06db0d633741 --- ...rabalhadoresConsultasDatasObservacoes.java | 7 +- .../processo/ui/LeafCalendarDialog.java | 4 +- .../medicina/processo/ui/LeafInputField.java | 4 + .../processo/ui/ProcessoAccoesPanel.java | 4 +- .../processo/ui/ProcessoDadosPanel.java | 79 ++++++++++--------- trunk/SIPRPSoft/src/siprp/ui/SIPRPWindow.java | 46 ++++++++++- 6 files changed, 100 insertions(+), 44 deletions(-) diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresConsultasDatasObservacoes.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresConsultasDatasObservacoes.java index 25dd0aed..14b20db0 100755 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresConsultasDatasObservacoes.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresConsultasDatasObservacoes.java @@ -8,7 +8,12 @@ public class TrabalhadoresConsultasDatasObservacoes extends _TrabalhadoresConsul @Override public String toString() { - return getObservacao(); + String result = getObservacao() == null ? "" : getObservacao(); + if( result.indexOf( '\n' ) > 0 ) + { + result = result.substring( 0, result.indexOf( '\n', 1) ); + } + return result; } } diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafCalendarDialog.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafCalendarDialog.java index 329dcdc5..9c508384 100644 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafCalendarDialog.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafCalendarDialog.java @@ -34,9 +34,9 @@ public class LeafCalendarDialog extends JDialog private JComponent parent = null; - private boolean enableClean = false; + private boolean enableClean = true; - private boolean enableCancel = false; + private boolean enableCancel = true; private final JCalendar calendarPanel = new JCalendar( null, null, false, false ); diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafInputField.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafInputField.java index 99e3c5f1..086a8fe6 100644 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafInputField.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/LeafInputField.java @@ -17,8 +17,11 @@ import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JTextArea; +import siprp.ui.SIPRPWindow; + public class LeafInputField extends JTextArea { + public static final String PROPERTY_CHANGED_CONSTANT = "LEAF_INPUT_PROPERTY_CHANGED"; private static final long serialVersionUID = 1L; private static final DateFormat sdf = DateFormat.getDateInstance( DateFormat.SHORT, new Locale( "pt", "PT" ) ); @@ -122,6 +125,7 @@ public class LeafInputField extends JTextArea } if( obj != null ) { + firePropertyChange( PROPERTY_CHANGED_CONSTANT, object, obj); setObject( obj ); } } diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoAccoesPanel.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoAccoesPanel.java index 32541be3..2eadb74c 100755 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoAccoesPanel.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoAccoesPanel.java @@ -274,10 +274,12 @@ public class ProcessoAccoesPanel extends JPanel if( marcacao != null ) { boolean porRealizar = new Integer( MedicinaConstants.ESTADO_POR_REALIZAR ).equals( marcacao.getEstado() ); + List list = marcacao.getTrabalhadoresConsultasDatasObservacoesArray(); + boolean noObservacoes = (list == null || list.size() == 0) ? true : false; buttonConsultaMarcacaoDesmarcar.setEnabled( porRealizar ); buttonConsultaMarcacaoFaltou.setEnabled( porRealizar ); buttonConsultaMarcacaoRealizar.setEnabled( porRealizar ); -// buttonNovoConsultaMarcacaoObservacoes.setEnabled( ); + buttonNovoConsultaMarcacaoObservacoes.setEnabled( noObservacoes ); cardLayout.show( cardPanel, PANEL_CONSULTA_MARCACAO_NAME ); } else diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java index 6f6cd4cf..b47538ef 100755 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java @@ -47,6 +47,7 @@ import siprp.database.cayenne.objects.TrabalhadoresEcdsDatasObservacoes; import siprp.database.cayenne.objects.TrabalhadoresProcesso; import siprp.logic.SIPRPLogic.LeafUIActionBinding; import siprp.ui.SIPRPWindow; +import siprp.ui.SIPRPWindow.ActionActivation; public class ProcessoDadosPanel extends JPanel { @@ -95,11 +96,11 @@ public class ProcessoDadosPanel extends JPanel private final JLabel labelTrabalhadorNacionalidade = new JLabel( "Nacionalidade" ); private final JLabel labelTrabalhadorObservacoes = new JLabel( "Observa" + ccedil + otilde + "es" ); - private final LeafInputField inputTrabalhadorNome = new LeafInputField(); - private final LeafInputField> inputTrabalhadorSexo = new LeafInputField>(); - private final LeafInputField inputTrabalhadorDataNascimento = new LeafInputField(); - private final LeafInputField inputTrabalhadorNacionalidade = new LeafInputField(); - private final LeafInputField inputTrabalhadorObservacoes = new LeafInputField(); + public final LeafInputField inputTrabalhadorNome = new LeafInputField(); + public final LeafInputField> inputTrabalhadorSexo = new LeafInputField>(); + public final LeafInputField inputTrabalhadorDataNascimento = new LeafInputField(); + public final LeafInputField inputTrabalhadorNacionalidade = new LeafInputField(); + public final LeafInputField inputTrabalhadorObservacoes = new LeafInputField(); // processo @@ -108,62 +109,63 @@ public class ProcessoDadosPanel extends JPanel private final JLabel labelProcessoDataFim = new JLabel( "Fim" ); private final JLabel labelProcessoMotivo = new JLabel( "Motivo" ); - private final LeafInputField> inputProcessoEstado = new LeafInputField>(); - private final LeafInputField inputProcessoDataInicio = new LeafInputField(); - private final LeafInputField inputProcessoDataFim = new LeafInputField(); - private final LeafInputField> inputProcessoMotivo = new LeafInputField>(); + public final LeafInputField> inputProcessoEstado = new LeafInputField>(); + public final LeafInputField inputProcessoDataInicio = new LeafInputField(); + public final LeafInputField inputProcessoDataFim = new LeafInputField(); + public final LeafInputField> inputProcessoMotivo = new LeafInputField>(); // consulta private final JLabel labelConsultaEstado = new JLabel( "Estado" ); private final JLabel labelConsultaData = new JLabel( "Data" ); - private final LeafInputField> inputConsultaEstado = new LeafInputField>(); - private final LeafInputField inputConsultaData = new LeafInputField(); + public final LeafInputField> inputConsultaEstado = new LeafInputField>(); + public final LeafInputField inputConsultaData = new LeafInputField(); // marcacao consulta private final JLabel labelConsultaMarcacaoEstado = new JLabel( "Estado" ); private final JLabel labelConsultaMarcacaoData = new JLabel( "Data" ); - private final LeafInputField> inputConsultaMarcacaoEstado = new LeafInputField>(); - private final LeafInputField inputConsultaMarcacaoData = new LeafInputField(); + public final LeafInputField> inputConsultaMarcacaoEstado = new LeafInputField>(); + public final LeafInputField inputConsultaMarcacaoData = new LeafInputField(); // email marcacao consulta private final JLabel labelConsultaMarcacaoEmailData = new JLabel( "Data" ); private final JLabel labelConsultaMarcacaoEmailSubject = new JLabel( "Assunto" ); private final JLabel labelConsultaMarcacaoEmailBody = new JLabel( "Mensagem" ); - private final LeafInputField inputConsultaMarcacaoEmailData = new LeafInputField(); - private final LeafInputField inputConsultaMarcacaoEmailSubject = new LeafInputField(); - private final LeafInputField inputConsultaMarcacaoEmailBody = new LeafInputField(); + public final LeafInputField inputConsultaMarcacaoEmailData = new LeafInputField(); + public final LeafInputField inputConsultaMarcacaoEmailSubject = new LeafInputField(); + public final LeafInputField inputConsultaMarcacaoEmailBody = new LeafInputField(); // observacao marcacao consulta - private final LeafInputField inputConsultaMarcacaoObsMensagem = new LeafInputField(); + @ActionActivation(onSelect="", onChange=SAVE_CONSULTA_MARCACAO_OBSERVACOES) + public final LeafInputField inputConsultaMarcacaoObsMensagem = new LeafInputField(); // exame private final JLabel labelExameEstado = new JLabel( "Estado" ); private final JLabel labelExameData = new JLabel( "Data" ); - private final LeafInputField inputExameEstado = new LeafInputField(); - private final LeafInputField inputExameData = new LeafInputField(); + public final LeafInputField inputExameEstado = new LeafInputField(); + public final LeafInputField inputExameData = new LeafInputField(); // marcacao exame private final JLabel labelExameMarcacaoEstado = new JLabel( "Estado" ); private final JLabel labelExameMarcacaoData = new JLabel( "Data" ); - private final LeafInputField inputExameMarcacaoEstado = new LeafInputField(); - private final LeafInputField inputExameMarcacaoData = new LeafInputField(); + public final LeafInputField inputExameMarcacaoEstado = new LeafInputField(); + public final LeafInputField inputExameMarcacaoData = new LeafInputField(); // email marcacao exame private final JLabel labelExameMarcacaoEmailData = new JLabel( "Data" ); private final JLabel labelExameMarcacaoEmailSubject = new JLabel( "Assunto" ); private final JLabel labelExameMarcacaoEmailBody = new JLabel( "Mensagem" ); - private final LeafInputField inputExameMarcacaoEmailData = new LeafInputField(); - private final LeafInputField inputExameMarcacaoEmailSubject = new LeafInputField(); - private final LeafInputField inputExameMarcacaoEmailBody = new LeafInputField(); + public final LeafInputField inputExameMarcacaoEmailData = new LeafInputField(); + public final LeafInputField inputExameMarcacaoEmailSubject = new LeafInputField(); + public final LeafInputField inputExameMarcacaoEmailBody = new LeafInputField(); // observacao marcacao exame - private final LeafInputField inputExameMarcacaoObsMensagem = new LeafInputField(); + public final LeafInputField inputExameMarcacaoObsMensagem = new LeafInputField(); public ProcessoDadosPanel(SIPRPWindow parentWindow) { @@ -378,13 +380,12 @@ public class ProcessoDadosPanel extends JPanel @LeafUIActionBinding(action = CREATE_CONSULTA) public void setForNewConsulta( TrabalhadoresConsultas consulta ) { - inputConsultaData.setEditable( true ); } @LeafUIActionBinding(action = CREATE_CONSULTA_MARCACAO) public void setForNewConsultaMarcacao( TrabalhadoresConsultasDatas marcacao ) { - LeafCalendarDialog calendar = new LeafCalendarDialog( getParentFrame(), this, false ); + LeafCalendarDialog calendar = new LeafCalendarDialog( getParentFrame(), this, false, false); Date date = calendar.getDate(); marcacao.setData( date ); } @@ -392,14 +393,14 @@ public class ProcessoDadosPanel extends JPanel @LeafUIActionBinding(action = CREATE_CONSULTA_MARCACAO_EMAIL) public void setForNewConsultaMarcacaoEmail( TrabalhadoresConsultasDatasEmails email ) { - inputConsultaMarcacaoEmailBody.setEditable( true ); - inputConsultaMarcacaoEmailData.setEditable( true ); - inputConsultaMarcacaoEmailSubject.setEditable( true ); } @LeafUIActionBinding(action = CREATE_CONSULTA_MARCACAO_OBSERVACOES) public void setForNewConsultaMarcacaoObservacoes( TrabalhadoresConsultasDatasObservacoes observacoes ) { + LeafTextDialog textDialog = new LeafTextDialog( getParentFrame(), this, ""); + String text = textDialog.getText(); + observacoes.setObservacao( text ); inputConsultaMarcacaoObsMensagem.setEditable( true ); } @@ -468,11 +469,11 @@ public class ProcessoDadosPanel extends JPanel private void setupTrabalhadorPanel() { - inputTrabalhadorNacionalidade.setEditable( false ); - inputTrabalhadorDataNascimento.setEditable( false ); - inputTrabalhadorNome.setEditable( false ); - inputTrabalhadorSexo.setEditable( false ); - inputTrabalhadorObservacoes.setEditable( false ); +// inputTrabalhadorNacionalidade.setEditable( false ); +// inputTrabalhadorDataNascimento.setEditable( false ); +// inputTrabalhadorNome.setEditable( false ); +// inputTrabalhadorSexo.setEditable( false ); +// inputTrabalhadorObservacoes.setEditable( false ); setupSimpleDataPanel( panelTrabalhador, "Trabalhador", labelTrabalhadorNome, inputTrabalhadorNome, labelTrabalhadorSexo, inputTrabalhadorSexo, labelTrabalhadorNacionalidade, inputTrabalhadorNacionalidade, labelTrabalhadorDataNascimento, inputTrabalhadorDataNascimento, labelTrabalhadorObservacoes, inputTrabalhadorObservacoes ); } @@ -484,8 +485,8 @@ public class ProcessoDadosPanel extends JPanel private void setupConsultaPanel() { setupSimpleDataPanel( panelConsulta, "Consulta", labelConsultaEstado, inputConsultaEstado, labelConsultaData, inputConsultaData, new JPanel() ); - inputConsultaEstado.setEditable( true ); - inputConsultaData.setEditable( true ); +// inputConsultaEstado.setEditable( true ); +// inputConsultaData.setEditable( true ); } private void setupConsultaMarcacaoPanel() @@ -500,7 +501,7 @@ public class ProcessoDadosPanel extends JPanel private void setupConsultaMarcacaoObservacoesPanel() { - inputConsultaMarcacaoObsMensagem.setEditable( false ); +// inputConsultaMarcacaoObsMensagem.setEditable( false ); setupSimpleDataPanel( panelConsultaMarcacaoObservacao, "Observa" + ccedil + otilde + "es", inputConsultaMarcacaoObsMensagem ); } @@ -521,7 +522,7 @@ public class ProcessoDadosPanel extends JPanel private void setupExameMarcacaoObservacoesPanel() { - inputExameMarcacaoObsMensagem.setEditable( false ); +// inputExameMarcacaoObsMensagem.setEditable( false ); setupSimpleDataPanel( panelExameMarcacaoObservacao, "Observa" + ccedil + otilde + "es", inputExameMarcacaoObsMensagem ); } diff --git a/trunk/SIPRPSoft/src/siprp/ui/SIPRPWindow.java b/trunk/SIPRPSoft/src/siprp/ui/SIPRPWindow.java index c3cd0e0f..46f20885 100755 --- a/trunk/SIPRPSoft/src/siprp/ui/SIPRPWindow.java +++ b/trunk/SIPRPSoft/src/siprp/ui/SIPRPWindow.java @@ -4,6 +4,8 @@ import static siprp.logic.SIPRPLogic.ACTION_STARTUP; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.lang.annotation.Annotation; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -33,13 +35,14 @@ import siprp.logic.SIPRPLogic; import siprp.logic.SIPRPLogic.Action; import siprp.logic.SIPRPLogic.LeafLogicActionBinding; import siprp.logic.SIPRPLogic.LeafUIActionBinding; +import siprp.medicina.processo.ui.LeafInputField; import com.evolute.utils.tables.BaseTable; import com.evolute.utils.tables.ColumnizedMappable; import com.evolute.utils.tables.VectorTableModel; import com.evolute.utils.tracker.TrackableWindow; -public class SIPRPWindow extends JFrame implements TrackableWindow, ListSelectionListener, TreeSelectionListener, ActionListener +public class SIPRPWindow extends JFrame implements TrackableWindow, ListSelectionListener, TreeSelectionListener, ActionListener, PropertyChangeListener { private static final long serialVersionUID = 1L; @@ -548,6 +551,10 @@ public class SIPRPWindow extends JFrame implements TrackableWindow, ListSelectio { ((JButton) value).addActionListener( this ); } + else if( value instanceof LeafInputField ) + { + ((LeafInputField) value).addPropertyChangeListener( this ); + } } catch( IllegalAccessException e ) { e.printStackTrace( System.out ); @@ -665,6 +672,31 @@ public class SIPRPWindow extends JFrame implements TrackableWindow, ListSelectio } return result; } + + + private List getActionsForPropertyChangeEvent( PropertyChangeEvent evt ) + { + List result = new ArrayList(); + Annotation an = mapAnnotationByObject.get( evt.getSource() ); + if(an != null) + { + if(an instanceof ActionActivation) + { + if(evt.getSource() instanceof LeafInputField) + { + if( LeafInputField.PROPERTY_CHANGED_CONSTANT.equals( evt.getPropertyName())) + { + String [] actions = ((ActionActivation) an).onChange(); + for( String actionName : actions ) + { + result.add( actionName ); + } + } + } + } + } + return result; + } @Override public void valueChanged( TreeSelectionEvent event ) @@ -703,4 +735,16 @@ public class SIPRPWindow extends JFrame implements TrackableWindow, ListSelectio runAction( action, null ); } } + + @Override + public void propertyChange( PropertyChangeEvent evt ) + { + List actionNames = getActionsForPropertyChangeEvent( evt ); + for( String action : actionNames ) + { + runActionLater( action); + } + } + + }