From bdaeb6322e0135fe11cafac4c0300a4b6f17c69c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Sim=C3=A3o?= Date: Fri, 18 Jan 2008 14:32:42 +0000 Subject: [PATCH] git-svn-id: https://svn.coded.pt/svn/SIPRP@668 bb69d46d-e84e-40c8-a05a-06db0d633741 --- trunk/SIPRPSoft/src/SIPRPMap.map.xml | 6 + trunk/SIPRPSoft/src/leaf/LeafInputField.java | 3 +- .../SIPRPSoft/src/leaf/LeafOptionDialog.java | 1 - trunk/SIPRPSoft/src/leaf/LeafTableModel.java | 1 - .../processo/ui => leaf}/OrderedMap.java | 2 +- .../src/siprp/clientes/TrabalhadorPanel.java | 197 +++++------------- .../database/cayenne/objects/BaseObject.java | 2 +- .../database/cayenne/objects/Empresas.java | 1 + .../cayenne/objects/Estabelecimentos.java | 1 + .../cayenne/objects/Trabalhadores.java | 17 ++ ...rabalhadoresConsultasDatasObservacoes.java | 42 +++- .../cayenne/objects/TrabalhadoresEcds.java | 3 +- .../objects/TrabalhadoresEcdsDatas.java | 3 +- .../TrabalhadoresEcdsDatasObservacoes.java | 38 ++++ .../objects/TrabalhadoresProcesso.java | 8 + .../prestadores/PrestadoresWindow.java | 188 ++++++++++------- .../processo/logic/MedicinaProcessoLogic.java | 21 +- .../processo/ui/MedicinaProcessoWindow.java | 1 + .../processo/ui/ProcessoAccoesPanel.java | 31 ++- .../processo/ui/ProcessoDadosPanel.java | 48 ++++- .../processo/ui/ProcessoTreePanel.java | 71 ++++--- 21 files changed, 399 insertions(+), 286 deletions(-) rename trunk/SIPRPSoft/src/{siprp/medicina/processo/ui => leaf}/OrderedMap.java (99%) diff --git a/trunk/SIPRPSoft/src/SIPRPMap.map.xml b/trunk/SIPRPSoft/src/SIPRPMap.map.xml index f4124962..b12f3e94 100644 --- a/trunk/SIPRPSoft/src/SIPRPMap.map.xml +++ b/trunk/SIPRPSoft/src/SIPRPMap.map.xml @@ -286,6 +286,7 @@ + ORACLE prestadores_id_seq @@ -335,6 +336,7 @@ + @@ -477,6 +479,7 @@ + @@ -705,6 +708,7 @@ + @@ -732,6 +736,7 @@ + @@ -802,6 +807,7 @@ + diff --git a/trunk/SIPRPSoft/src/leaf/LeafInputField.java b/trunk/SIPRPSoft/src/leaf/LeafInputField.java index 4f7203b0..6d2d936b 100644 --- a/trunk/SIPRPSoft/src/leaf/LeafInputField.java +++ b/trunk/SIPRPSoft/src/leaf/LeafInputField.java @@ -31,7 +31,6 @@ import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.SwingUtilities; -import siprp.medicina.processo.ui.OrderedMap; public class LeafInputField extends JPanel implements FocusListener, MouseListener, PropertyChangeListener { @@ -411,7 +410,7 @@ public class LeafInputField extends JPanel implements F { if( object instanceof Date ) { - thiz = new JLabel( ((Date) object).getTime() <= 0 ? " " : sdf.format( object ) ); + thiz = new JLabel( sdf.format( object ) ); } else if( object instanceof Map ) { diff --git a/trunk/SIPRPSoft/src/leaf/LeafOptionDialog.java b/trunk/SIPRPSoft/src/leaf/LeafOptionDialog.java index 43f8b93f..8d62c053 100644 --- a/trunk/SIPRPSoft/src/leaf/LeafOptionDialog.java +++ b/trunk/SIPRPSoft/src/leaf/LeafOptionDialog.java @@ -23,7 +23,6 @@ import javax.swing.JScrollPane; import javax.swing.JSeparator; import javax.swing.ScrollPaneConstants; -import siprp.medicina.processo.ui.OrderedMap; public class LeafOptionDialog extends JDialog { diff --git a/trunk/SIPRPSoft/src/leaf/LeafTableModel.java b/trunk/SIPRPSoft/src/leaf/LeafTableModel.java index 93e4cb99..afe3a6d8 100644 --- a/trunk/SIPRPSoft/src/leaf/LeafTableModel.java +++ b/trunk/SIPRPSoft/src/leaf/LeafTableModel.java @@ -4,7 +4,6 @@ import java.util.Collection; import java.util.Iterator; import java.util.List; -import siprp.medicina.processo.ui.OrderedMap; import com.evolute.utils.tables.BaseTableModel; diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/OrderedMap.java b/trunk/SIPRPSoft/src/leaf/OrderedMap.java similarity index 99% rename from trunk/SIPRPSoft/src/siprp/medicina/processo/ui/OrderedMap.java rename to trunk/SIPRPSoft/src/leaf/OrderedMap.java index 97fdde34..24aeb47a 100644 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/OrderedMap.java +++ b/trunk/SIPRPSoft/src/leaf/OrderedMap.java @@ -1,4 +1,4 @@ -package siprp.medicina.processo.ui; +package leaf; import java.util.ArrayList; import java.util.Collection; diff --git a/trunk/SIPRPSoft/src/siprp/clientes/TrabalhadorPanel.java b/trunk/SIPRPSoft/src/siprp/clientes/TrabalhadorPanel.java index 4b9f630a..506a29a1 100644 --- a/trunk/SIPRPSoft/src/siprp/clientes/TrabalhadorPanel.java +++ b/trunk/SIPRPSoft/src/siprp/clientes/TrabalhadorPanel.java @@ -6,6 +6,9 @@ package siprp.clientes; +import info.clearthought.layout.TableLayout; +import info.clearthought.layout.TableLayoutConstraints; + import javax.swing.*; import java.awt.*; @@ -48,6 +51,7 @@ public class TrabalhadorPanel extends JPanel private JTextField nomeText; private RadioButtonFixedPanel sexoPanel; + private JTextField biText; private JCalendarPanel dataNascimentoPanel; private JTextField nacionalidadeText; private JTextField numeroMecanograficoText; @@ -99,6 +103,8 @@ public class TrabalhadorPanel extends JPanel new IDObject[]{ new MappableObject( new Integer( 1 ), "M" ), new MappableObject( new Integer( 2 ), "F" ) }, 1, 2, RadioButtonPanel.ORIENTATION_HORIZONTAL, false ); + JLabel biLabel = new JLabel("B.I."); + biText = new JTextField(); JLabel dataNascimentoLabel = new JLabel( "Data de Nascimento" ); dataNascimentoPanel = new JCalendarPanel( null ); JLabel nacionalidadeLabel = new JLabel( "Nacionalidade" ); @@ -141,154 +147,56 @@ public class TrabalhadorPanel extends JPanel JPanel pad; - GridBagLayout gridbag = new GridBagLayout(); - dadosTrabalhadorPanel.setLayout( gridbag ); - GridBagConstraints constraints = new GridBagConstraints(); - constraints.insets = new Insets( 1, 1, 1, 1 ); - constraints.fill = GridBagConstraints.HORIZONTAL; - constraints.weighty = 0; - constraints.gridheight = 1; - constraints.gridwidth = 1; - constraints.weightx = 0; - - gridbag.setConstraints( nomeLabel, constraints ); - dadosTrabalhadorPanel.add( nomeLabel ); - - constraints.weightx = 1; - constraints.gridwidth = 3; - gridbag.setConstraints( nomeText, constraints ); - dadosTrabalhadorPanel.add( nomeText ); - - constraints.gridwidth = 1; - constraints.weightx = 0; - gridbag.setConstraints( sexoLabel, constraints ); - dadosTrabalhadorPanel.add( sexoLabel ); - - constraints.weightx = 0; - //constraints.gridwidth = 1; - constraints.gridwidth = GridBagConstraints.REMAINDER; + double [] cols = new double[]{TableLayout.MINIMUM,TableLayout.FILL,TableLayout.MINIMUM,TableLayout.FILL}; + double [] rows = new double[]{TableLayout.MINIMUM, + TableLayout.MINIMUM, + TableLayout.MINIMUM, + TableLayout.MINIMUM, + TableLayout.MINIMUM, + TableLayout.MINIMUM, + TableLayout.MINIMUM, + TableLayout.MINIMUM, + TableLayout.FILL, + TableLayout.MINIMUM,}; + + TableLayout layout = new TableLayout(cols,rows); + layout.setHGap( 5 ); + layout.setVGap( 5 ); + dadosTrabalhadorPanel.setLayout( layout ); + dadosTrabalhadorPanel.add( nomeLabel, new TableLayoutConstraints( 0,0 ) ); + dadosTrabalhadorPanel.add( nomeText, new TableLayoutConstraints( 1,0,3,0 ) ); + dadosTrabalhadorPanel.add( sexoLabel, new TableLayoutConstraints( 0,1 ) ); JPanel sexoOuterPanel = new JPanel(); sexoOuterPanel.setLayout( new GridLayout( 1, 2 ) ); sexoOuterPanel.add( sexoPanel ); sexoOuterPanel.add( new JPanel() ); - gridbag.setConstraints( sexoOuterPanel, constraints ); - dadosTrabalhadorPanel.add( sexoOuterPanel ); - - constraints.weightx = 0; - constraints.gridwidth = 2; - gridbag.setConstraints( nacionalidadeLabel, constraints ); - dadosTrabalhadorPanel.add( nacionalidadeLabel ); - - constraints.weightx = 0.5; - constraints.gridwidth = 1; - gridbag.setConstraints( nacionalidadeText, constraints ); - dadosTrabalhadorPanel.add( nacionalidadeText ); - - constraints.weightx = 0; - constraints.gridwidth = 1; - gridbag.setConstraints( dataNascimentoLabel, constraints ); - dadosTrabalhadorPanel.add( dataNascimentoLabel ); - - constraints.weightx = 0.5; - constraints.gridwidth = GridBagConstraints.REMAINDER; - gridbag.setConstraints( dataNascimentoPanel, constraints ); - dadosTrabalhadorPanel.add( dataNascimentoPanel ); - - constraints.weightx = 0; - constraints.gridwidth = 2; - gridbag.setConstraints( numeroMecanograficoLabel, constraints ); - dadosTrabalhadorPanel.add( numeroMecanograficoLabel ); - - constraints.weightx = 0.5; - constraints.gridwidth = 1; - gridbag.setConstraints( numeroMecanograficoText, constraints ); - dadosTrabalhadorPanel.add( numeroMecanograficoText ); - - constraints.weightx = 0; - constraints.gridwidth = 1; - gridbag.setConstraints( dataAdmissaoLabel, constraints ); - dadosTrabalhadorPanel.add( dataAdmissaoLabel ); - - constraints.weightx = 0.5; - constraints.gridwidth = GridBagConstraints.REMAINDER; - gridbag.setConstraints( dataAdmissaoPanel, constraints ); - dadosTrabalhadorPanel.add( dataAdmissaoPanel ); - - constraints.weightx = 0; - constraints.gridwidth = 2; - gridbag.setConstraints( categoriaLabel, constraints ); - dadosTrabalhadorPanel.add( categoriaLabel ); - - constraints.weightx = 0.5; - constraints.gridwidth = 1; - gridbag.setConstraints( categoriaText, constraints ); - dadosTrabalhadorPanel.add( categoriaText ); - - constraints.weightx = 0; - gridbag.setConstraints( localLabel, constraints ); - dadosTrabalhadorPanel.add( localLabel ); - - constraints.weightx = 0.5; - constraints.gridwidth = GridBagConstraints.REMAINDER; - gridbag.setConstraints( localText, constraints ); - dadosTrabalhadorPanel.add( localText ); - - constraints.weightx = 0; - constraints.gridwidth = 2; - gridbag.setConstraints( funcaoLabel, constraints ); - dadosTrabalhadorPanel.add( funcaoLabel ); - - constraints.weightx = 0.5; - constraints.gridwidth = 1; - gridbag.setConstraints( funcaoText, constraints ); - dadosTrabalhadorPanel.add( funcaoText ); - - constraints.weightx = 0; - constraints.gridwidth = 1; - gridbag.setConstraints( dataAdmissaoFuncaoLabel, constraints ); - dadosTrabalhadorPanel.add( dataAdmissaoFuncaoLabel ); - - constraints.weightx = 0.5; - constraints.gridwidth = GridBagConstraints.REMAINDER; - gridbag.setConstraints( dataAdmissaoFuncaoPanel, constraints ); - dadosTrabalhadorPanel.add( dataAdmissaoFuncaoPanel ); - - constraints.weightx = 0; - constraints.gridwidth = 2; - gridbag.setConstraints( perfilLabel, constraints ); - dadosTrabalhadorPanel.add( perfilLabel ); - - constraints.weightx = 0.5; - constraints.gridwidth = 1; -// gridbag.setConstraints( perfilCombo, constraints ); -// dadosTrabalhadorPanel.add( perfilCombo ); - gridbag.setConstraints( perfilPanel, constraints ); - dadosTrabalhadorPanel.add( perfilPanel ); - - constraints.weightx = 0; - constraints.gridwidth = 1; - gridbag.setConstraints( dataDemissaoLabel, constraints ); - dadosTrabalhadorPanel.add( dataDemissaoLabel ); - - constraints.weightx = 0.5; - constraints.gridwidth = GridBagConstraints.REMAINDER; - gridbag.setConstraints( dataDemissaoPanel, constraints ); - dadosTrabalhadorPanel.add( dataDemissaoPanel ); - - constraints.weightx = 0; - constraints.gridwidth = 1; - gridbag.setConstraints( observacoesLabel, constraints ); - dadosTrabalhadorPanel.add( observacoesLabel ); - - constraints.weightx = 1; - constraints.gridwidth = GridBagConstraints.REMAINDER; - gridbag.setConstraints( observacoesText, constraints ); - dadosTrabalhadorPanel.add( observacoesText ); - - constraints.weightx = 1; - constraints.gridwidth = GridBagConstraints.REMAINDER; - gridbag.setConstraints( marcacoesButton, constraints ); - dadosTrabalhadorPanel.add( marcacoesButton ); + dadosTrabalhadorPanel.add( sexoOuterPanel, new TableLayoutConstraints( 1,1 ) ); + dadosTrabalhadorPanel.add( biLabel, new TableLayoutConstraints( 2,1 ) ); + dadosTrabalhadorPanel.add( biText, new TableLayoutConstraints( 3,1 ) ); + dadosTrabalhadorPanel.add( nacionalidadeLabel, new TableLayoutConstraints( 0,2 ) ); + dadosTrabalhadorPanel.add( nacionalidadeText, new TableLayoutConstraints( 1,2 ) ); + dadosTrabalhadorPanel.add( dataNascimentoLabel, new TableLayoutConstraints( 2,2 ) ); + dadosTrabalhadorPanel.add( dataNascimentoPanel, new TableLayoutConstraints( 3,2 ) ); + + dadosTrabalhadorPanel.add( numeroMecanograficoLabel, new TableLayoutConstraints( 0,3 ) ); + dadosTrabalhadorPanel.add( numeroMecanograficoText, new TableLayoutConstraints( 1,3 ) ); + dadosTrabalhadorPanel.add( dataAdmissaoLabel, new TableLayoutConstraints( 2,3 ) ); + dadosTrabalhadorPanel.add( dataAdmissaoPanel, new TableLayoutConstraints( 3,3 )); + dadosTrabalhadorPanel.add( categoriaLabel, new TableLayoutConstraints( 0,4 ) ); + dadosTrabalhadorPanel.add( categoriaText, new TableLayoutConstraints( 1,4 ) ); + dadosTrabalhadorPanel.add( localLabel, new TableLayoutConstraints( 2,4 ) ); + dadosTrabalhadorPanel.add( localText, new TableLayoutConstraints( 3,4 )); + dadosTrabalhadorPanel.add( funcaoLabel, new TableLayoutConstraints( 0,5 ) ); + dadosTrabalhadorPanel.add( funcaoText, new TableLayoutConstraints( 1,5 ) ); + dadosTrabalhadorPanel.add( dataAdmissaoFuncaoLabel, new TableLayoutConstraints( 2,5 ) ); + dadosTrabalhadorPanel.add( dataAdmissaoFuncaoPanel, new TableLayoutConstraints( 3,5 ) ); + dadosTrabalhadorPanel.add( perfilLabel, new TableLayoutConstraints( 0,6 ) ); + dadosTrabalhadorPanel.add( perfilPanel, new TableLayoutConstraints( 1,6 ) ); + dadosTrabalhadorPanel.add( dataDemissaoLabel, new TableLayoutConstraints( 2,6 ) ); + dadosTrabalhadorPanel.add( dataDemissaoPanel, new TableLayoutConstraints( 3,6 ) ); + dadosTrabalhadorPanel.add( observacoesLabel, new TableLayoutConstraints( 0,7 ) ); + dadosTrabalhadorPanel.add( observacoesText, new TableLayoutConstraints( 0,8, 3, 8 ) ); + dadosTrabalhadorPanel.add( marcacoesButton, new TableLayoutConstraints( 0,9,3,9 ) ); // examesPanel = new MarcacaoPanel( false, "Realizados", "", Marcacao.TIPO_MARCACAO_TRABALHADOR_EXAMES ); // examesPanel.setCalendarDialogOrientation( JCalendarDialog.ABOVE, JCalendarDialog.RIGHT ); @@ -364,6 +272,7 @@ public class TrabalhadorPanel extends JPanel sexoPanel.setEnabled( enable ); } } ); + components.putComponent( TrabalhadorData.BI , biText ); components.putComponent( TrabalhadorData.DATA_NASCIMENTO, dataNascimentoPanel ); components.putComponent( TrabalhadorData.NACIONALIDADE, nacionalidadeText ); components.putComponent( TrabalhadorData.NUMERO_MECANOGRAFICO, numeroMecanograficoText ); diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/BaseObject.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/BaseObject.java index b69b252f..7fd0769d 100644 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/BaseObject.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/BaseObject.java @@ -21,7 +21,7 @@ public class BaseObject extends CayenneDataObject protected static final DateFormat sdf = DateFormat.getDateInstance( DateFormat.SHORT, new Locale( "pt", "PT" ) ); - protected static final String isNewMessage = "Em Edi"+ccedil+atilde+"o"; + protected static final String isNewMessage = " "; public boolean isNew() { diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/Empresas.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/Empresas.java index 4d8c295b..0fb6c346 100755 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/Empresas.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/Empresas.java @@ -62,6 +62,7 @@ public class Empresas extends _Empresas { if( current == null || "y".equals(current.getInactivo())) { result.remove( i ); + --i; } } Collections.sort(result); diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/Estabelecimentos.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/Estabelecimentos.java index 8bd6fc5f..323ecb9b 100755 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/Estabelecimentos.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/Estabelecimentos.java @@ -65,6 +65,7 @@ public class Estabelecimentos extends _Estabelecimentos implements Comparable getTrabalhadoresProcessoArray() + { + List allProcessos = super.getTrabalhadoresProcessoArray(); + List result = new ArrayList(); + for( TrabalhadoresProcesso current : allProcessos ) + { + if("y".equals( current.getActivo() )) + { + result.add( current ); + } + } + return result; + } + @Override public String getNome() { diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresConsultasDatasObservacoes.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresConsultasDatasObservacoes.java index 14b20db0..c0a02fa7 100755 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresConsultasDatasObservacoes.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresConsultasDatasObservacoes.java @@ -1,20 +1,54 @@ package siprp.database.cayenne.objects; +import com.evolute.utils.strings.UnicodeChecker; + import siprp.database.cayenne.objects.auto._TrabalhadoresConsultasDatasObservacoes; public class TrabalhadoresConsultasDatasObservacoes extends _TrabalhadoresConsultasDatasObservacoes { private static final long serialVersionUID = 1L; + private String name = null; + + private String convertedName = null; + @Override public String toString() { - String result = getObservacao() == null ? "" : getObservacao(); - if( result.indexOf( '\n' ) > 0 ) + return getObservacao(); + } + + @Override + public String getObservacao() + { + String currentName = super.getObservacao(); + if( name == null || !name.equals( currentName )) { - result = result.substring( 0, result.indexOf( '\n', 1) ); + name = currentName; + convertedName = null; } - return result; + return convertName(); } + + @Override + public void setObservacao( String nome ) + { + super.setObservacao( UnicodeChecker.parseToUnicode( name ) ); + getObservacao(); + } + + private String convertName() + { + if( name == null ) + { + convertedName = null; + } + else + { + convertedName = UnicodeChecker.parseFromUnicode( name ); + } + return convertedName; + } + } diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcds.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcds.java index 61a6c02b..c8daf401 100755 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcds.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcds.java @@ -4,9 +4,10 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import leaf.OrderedMap; + import siprp.database.cayenne.objects.auto._TrabalhadoresEcds; import siprp.medicina.MedicinaConstants; -import siprp.medicina.processo.ui.OrderedMap; public class TrabalhadoresEcds extends _TrabalhadoresEcds implements MedicinaConstants { diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcdsDatas.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcdsDatas.java index 2e7c2e2d..365c85df 100755 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcdsDatas.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcdsDatas.java @@ -5,9 +5,10 @@ import java.util.Date; import java.util.HashMap; import java.util.List; +import leaf.OrderedMap; + import siprp.database.cayenne.objects.auto._TrabalhadoresEcdsDatas; import siprp.medicina.MedicinaConstants; -import siprp.medicina.processo.ui.OrderedMap; public class TrabalhadoresEcdsDatas extends _TrabalhadoresEcdsDatas implements MedicinaConstants { diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcdsDatasObservacoes.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcdsDatasObservacoes.java index cdf866b0..012fd654 100755 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcdsDatasObservacoes.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresEcdsDatasObservacoes.java @@ -1,16 +1,54 @@ package siprp.database.cayenne.objects; +import com.evolute.utils.strings.UnicodeChecker; + import siprp.database.cayenne.objects.auto._TrabalhadoresEcdsDatasObservacoes; public class TrabalhadoresEcdsDatasObservacoes extends _TrabalhadoresEcdsDatasObservacoes { private static final long serialVersionUID = 1L; + private String name = null; + + private String convertedName = null; + @Override public String toString() { return getObservacao(); } + + @Override + public String getObservacao() + { + String currentName = super.getObservacao(); + if( name == null || !name.equals( currentName )) + { + name = currentName; + convertedName = null; + } + return convertName(); + } + + @Override + public void setObservacao( String nome ) + { + super.setObservacao( UnicodeChecker.parseToUnicode( name ) ); + getObservacao(); + } + + private String convertName() + { + if( name == null ) + { + convertedName = null; + } + else + { + convertedName = UnicodeChecker.parseFromUnicode( name ); + } + return convertedName; + } } diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresProcesso.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresProcesso.java index 7c99d5e1..25af494b 100755 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresProcesso.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/TrabalhadoresProcesso.java @@ -60,6 +60,14 @@ public class TrabalhadoresProcesso extends _TrabalhadoresProcesso implements Pro result.put( MedicinaConstants.MOTIVO_PERIODICO_INTEGER, MedicinaConstants.MOTIVO_PERIODICO_STR); return result; } + + public boolean isEmpty() + { + boolean noConsultas = (getTrabalhadoresConsultasArray() == null || getTrabalhadoresConsultasArray().size() == 0); + boolean noExames= ( getTrabalhadoresEcdsArray() == null || getTrabalhadoresEcdsArray().size() == 0); + boolean noFicha = ( getTrabalhadoresFichasAptidaoArray() == null || getTrabalhadoresFichasAptidaoArray().size() == 0); + return noConsultas && noExames && noFicha; + } } diff --git a/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresWindow.java b/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresWindow.java index fe847dda..ab4a5dac 100644 --- a/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresWindow.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresWindow.java @@ -10,6 +10,7 @@ package siprp.medicina.prestadores; import com.evolute.utils.Singleton; +import static com.evolute.utils.strings.UnicodeLatin1Map.*; import com.evolute.utils.data.IDObject; import com.evolute.utils.dataui.ComponentController; import com.evolute.utils.dataui.ComponentsHashtable; @@ -73,6 +74,9 @@ public class PrestadoresWindow extends EditorWindow protected JTextField localidadeText; protected ContactoPanel contactoPanel; protected JTextField contribuinteText; + + private final JLabel labelObservacoes = new JLabel("Observa"+ccedil+otilde+"es"); + private final JTextArea textObservacoes = new JTextArea(); protected PrestadoresDataProvider provider; protected ClientesDataProvider clientesProvider; @@ -86,8 +90,8 @@ public class PrestadoresWindow extends EditorWindow private final JPanel prestadoresPanel = new JPanel(); private final JPanel analisadoresPanel = new JPanel(); - private final JLabel labelGrupos = new JLabel( "Grupos:" ); - private final JLabel labelAnalisador = new JLabel( "Analisador:" ); + private final JLabel labelGrupos = new JLabel( "Tipos de ECDs" ); + private final JLabel labelAnalisador = new JLabel( "Analisadores" ); private final JLabel labelMessage = new JLabel( " " ); private final Map mapLabel = new HashMap(); @@ -112,88 +116,111 @@ public class PrestadoresWindow extends EditorWindow setupComponentsHashtable(); } - private void setupComponents() throws Exception + private void setupComponents() { setTitle( TITLE ); + setSize( 800, 600); tabbedPane.addTab( "Prestadores", prestadoresPanel ); tabbedPane.addTab( "Analisadores", analisadoresPanel ); setupAnalisadoresTab(); + setupPrestadoresTab(); +// pack(); + } - JLabel nomeLabel = new JLabel( "Designa\u00e7\u00e3o" ); - nomeText = new JTextField(); - nomeText.setPreferredSize( new Dimension( 500, 20 ) ); - activoCheck = new JCheckBox( "Activo (actualmente fornece servi\u00e7os \u00e0 SIPRP)" ); - consultasCheck = new JCheckBox( "Faz consultas" ); - ecdsCheck = new JCheckBox( "Faz ecds" ); - List gruposProtocolo = new Vector(); - IDObject gruposProtocoloReais[] = clientesProvider.getAllGruposProtocoloReais(); - if( gruposProtocoloReais != null && gruposProtocoloReais.length > 0 ) + private void setupPrestadoresTab() + { + try { - gruposProtocolo.addAll( Arrays.asList( gruposProtocoloReais ) ); - } - IDObject gruposProtocoloFalsos[] = clientesProvider.getAllGruposProtocoloFalsos(); - if( gruposProtocoloFalsos != null && gruposProtocoloFalsos.length > 0 ) + JLabel nomeLabel = new JLabel( "Designa\u00e7\u00e3o" ); + nomeText = new JTextField(); + nomeText.setPreferredSize( new Dimension( 500, 20 ) ); + activoCheck = new JCheckBox( "Activo (actualmente fornece servi\u00e7os \u00e0 SIPRP)" ); + consultasCheck = new JCheckBox( "Faz consultas" ); + ecdsCheck = new JCheckBox( "Faz ecds" ); + List gruposProtocolo = new Vector(); + IDObject gruposProtocoloReais[] = clientesProvider.getAllGruposProtocoloReais(); + if( gruposProtocoloReais != null && gruposProtocoloReais.length > 0 ) + { + gruposProtocolo.addAll( Arrays.asList( gruposProtocoloReais ) ); + } + IDObject gruposProtocoloFalsos[] = clientesProvider.getAllGruposProtocoloFalsos(); + if( gruposProtocoloFalsos != null && gruposProtocoloFalsos.length > 0 ) + { + gruposProtocolo.addAll( Arrays.asList( gruposProtocoloFalsos ) ); + } + ecdsPanel = new CheckBoxPanel( gruposProtocolo.toArray( new IDObject[gruposProtocolo.size()] ) ); + JLabel contactoLabel = new JLabel( "Contacto" ); + contactoPanel = new ContactoPanel(); + contactoPanel.setPreferredSize( new Dimension( 350, 120 ) ); + contactoPanel.setBorder( BorderFactory.createEtchedBorder() ); + JLabel moradaLabel = new JLabel( "Morada" ); + moradaText = new JTextArea(); + moradaText.setLineWrap( true ); + moradaText.setWrapStyleWord( true ); + JScrollPane moradaScroll = new JScrollPane( moradaText, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); + moradaScroll.setPreferredSize( new Dimension( 500, 50 ) ); + JLabel codigoPostalLabel = new JLabel( "C\u00f3digo Postal" ); + codigoPostalText = new JTextField(); + codigoPostalText.setPreferredSize( new Dimension( 100, 50 ) ); + localidadeCodigoPostalText = new JTextField(); + localidadeCodigoPostalText.setPreferredSize( new Dimension( 150, 50 ) ); + JLabel localidadeLabel = new JLabel( "Localidade" ); + localidadeText = new JTextField(); + JLabel contribuinteLabel = new JLabel( "Contribuinte" ); + contribuinteText = new JTextField(); + contribuinteText.setPreferredSize( new Dimension( 100, 50 ) ); + + double cols[] = new double[] { + TableLayout.MINIMUM, TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.FILL + }; + double rows[] = new double[] { + TableLayout.MINIMUM, + TableLayout.MINIMUM, + TableLayout.MINIMUM, + TableLayout.FILL, + TableLayout.PREFERRED, + TableLayout.PREFERRED, + TableLayout.MINIMUM, + TableLayout.MINIMUM, + TableLayout.MINIMUM, + TableLayout.MINIMUM, + TableLayout.FILL + }; + TableLayout tableLayout = new TableLayout( cols, rows ); + prestadoresPanel.setLayout( tableLayout ); + + tableLayout = new TableLayout( new double[] { + TableLayout.FILL + }, new double[] { + TableLayout.FILL + } ); + getContentPane().setLayout( tableLayout ); + getContentPane().add( tabbedPane, new TableLayoutConstraints( 0, 0 ) ); + + prestadoresPanel.add( nomeLabel, new TableLayoutConstraints( 0, 0 ) ); + prestadoresPanel.add( nomeText, new TableLayoutConstraints( 1, 0, 3, 0 ) ); + prestadoresPanel.add( activoCheck, new TableLayoutConstraints( 0, 1, 2, 1 ) ); + prestadoresPanel.add( consultasCheck, new TableLayoutConstraints( 0, 2 ) ); + prestadoresPanel.add( ecdsCheck, new TableLayoutConstraints( 0, 3 ) ); + prestadoresPanel.add( ecdsPanel, new TableLayoutConstraints( 1, 3, 2, 3 ) ); + prestadoresPanel.add( contactoLabel, new TableLayoutConstraints( 0, 4 ) ); + prestadoresPanel.add( contactoPanel, new TableLayoutConstraints( 1, 4, 2, 4 ) ); + prestadoresPanel.add( moradaLabel, new TableLayoutConstraints( 0, 5 ) ); + prestadoresPanel.add( moradaScroll, new TableLayoutConstraints( 1, 5, 3, 5 ) ); + prestadoresPanel.add( codigoPostalLabel, new TableLayoutConstraints( 0, 6 ) ); + prestadoresPanel.add( codigoPostalText, new TableLayoutConstraints( 1, 6 ) ); + prestadoresPanel.add( localidadeCodigoPostalText, new TableLayoutConstraints( 2, 6, 3, 6 ) ); + prestadoresPanel.add( localidadeLabel, new TableLayoutConstraints( 0, 7 ) ); + prestadoresPanel.add( localidadeText, new TableLayoutConstraints( 1, 7, 3, 7 ) ); + prestadoresPanel.add( contribuinteLabel, new TableLayoutConstraints( 0, 8 ) ); + prestadoresPanel.add( contribuinteText, new TableLayoutConstraints( 1, 8 ) ); + prestadoresPanel.add( labelObservacoes, new TableLayoutConstraints( 0, 9 ) ); + prestadoresPanel.add( textObservacoes, new TableLayoutConstraints( 0, 10,3,10 ) ); + } catch( Exception e ) { - gruposProtocolo.addAll( Arrays.asList( gruposProtocoloFalsos ) ); + e.printStackTrace(); } - ecdsPanel = new CheckBoxPanel( gruposProtocolo.toArray( new IDObject[gruposProtocolo.size()] ) ); - JLabel contactoLabel = new JLabel( "Contacto" ); - contactoPanel = new ContactoPanel(); - contactoPanel.setPreferredSize( new Dimension( 350, 120 ) ); - contactoPanel.setBorder( BorderFactory.createEtchedBorder() ); - JLabel moradaLabel = new JLabel( "Morada" ); - moradaText = new JTextArea(); - moradaText.setLineWrap( true ); - moradaText.setWrapStyleWord( true ); - JScrollPane moradaScroll = new JScrollPane( moradaText, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); - moradaScroll.setPreferredSize( new Dimension( 500, 50 ) ); - JLabel codigoPostalLabel = new JLabel( "C\u00f3digo Postal" ); - codigoPostalText = new JTextField(); - codigoPostalText.setPreferredSize( new Dimension( 100, 50 ) ); - localidadeCodigoPostalText = new JTextField(); - localidadeCodigoPostalText.setPreferredSize( new Dimension( 150, 50 ) ); - JLabel localidadeLabel = new JLabel( "Localidade" ); - localidadeText = new JTextField(); - JLabel contribuinteLabel = new JLabel( "Contribuinte" ); - contribuinteText = new JTextField(); - contribuinteText.setPreferredSize( new Dimension( 100, 50 ) ); - - double cols[] = new double[] { - TableLayout.MINIMUM, TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.FILL - }; - double rows[] = new double[] { - TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.FILL, TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.MINIMUM, TableLayout.MINIMUM, TableLayout.MINIMUM - }; - TableLayout tableLayout = new TableLayout( cols, rows ); - prestadoresPanel.setLayout( tableLayout ); - - tableLayout = new TableLayout( new double[] { - TableLayout.FILL - }, new double[] { - TableLayout.FILL - } ); - getContentPane().setLayout( tableLayout ); - getContentPane().add( tabbedPane, new TableLayoutConstraints( 0, 0 ) ); - - prestadoresPanel.add( nomeLabel, new TableLayoutConstraints( 0, 0 ) ); - prestadoresPanel.add( nomeText, new TableLayoutConstraints( 1, 0, 3, 0 ) ); - prestadoresPanel.add( activoCheck, new TableLayoutConstraints( 0, 1, 2, 1 ) ); - prestadoresPanel.add( consultasCheck, new TableLayoutConstraints( 0, 2 ) ); - prestadoresPanel.add( ecdsCheck, new TableLayoutConstraints( 0, 3 ) ); - prestadoresPanel.add( ecdsPanel, new TableLayoutConstraints( 1, 3, 2, 3 ) ); - prestadoresPanel.add( contactoLabel, new TableLayoutConstraints( 0, 4 ) ); - prestadoresPanel.add( contactoPanel, new TableLayoutConstraints( 1, 4, 2, 4 ) ); - prestadoresPanel.add( moradaLabel, new TableLayoutConstraints( 0, 5 ) ); - prestadoresPanel.add( moradaScroll, new TableLayoutConstraints( 1, 5, 3, 5 ) ); - prestadoresPanel.add( codigoPostalLabel, new TableLayoutConstraints( 0, 6 ) ); - prestadoresPanel.add( codigoPostalText, new TableLayoutConstraints( 1, 6 ) ); - prestadoresPanel.add( localidadeCodigoPostalText, new TableLayoutConstraints( 2, 6, 3, 6 ) ); - prestadoresPanel.add( localidadeLabel, new TableLayoutConstraints( 0, 7 ) ); - prestadoresPanel.add( localidadeText, new TableLayoutConstraints( 1, 7, 3, 7 ) ); - prestadoresPanel.add( contribuinteLabel, new TableLayoutConstraints( 0, 8 ) ); - prestadoresPanel.add( contribuinteText, new TableLayoutConstraints( 1, 8 ) ); - pack(); } private void setupComponentsHashtable() @@ -206,6 +233,7 @@ public class PrestadoresWindow extends EditorWindow components.putComponent( PrestadoresData.LOCALIDADE_CP, localidadeCodigoPostalText ); components.putComponent( PrestadoresData.LOCALIDADE, localidadeText ); components.putComponent( PrestadoresData.CONTRIBUINTE, contribuinteText ); + components.putComponent( PrestadoresData.OBSERVACOES, textObservacoes ); components.putComponent( PrestadoresData.ACTIVO, activoCheck ); components.putComponent( PrestadoresData.FAZ_CONSULTAS, consultasCheck ); components.putComponent( PrestadoresData.FAZ_ECDS, ecdsCheck ); @@ -317,15 +345,15 @@ public class PrestadoresWindow extends EditorWindow mapLabel.clear(); listGrupos.clear(); listAnalisadores.clear(); - shout(null); + shout( null ); } private void setupAnalisadoresTabLayout() { double[] cols = new double[] { - TableLayout.FILL, TableLayout.FILL + TableLayout.MINIMUM, TableLayout.FILL }; - double[] rows = new double[1 + listGrupos.size() + 2 ]; + double[] rows = new double[1 + listGrupos.size() + 2]; for( int i = 0; i < rows.length; ++i ) { rows[i] = TableLayout.MINIMUM; @@ -364,9 +392,9 @@ public class PrestadoresWindow extends EditorWindow analisadoresPanel.add( combo, new TableLayoutConstraints( 1, i + 1 ) ); } int line = listGrupos.size() + 1; - analisadoresPanel.add( new JSeparator(), new TableLayoutConstraints( 0, line,1,line ) ); + analisadoresPanel.add( new JSeparator(), new TableLayoutConstraints( 0, line, 1, line ) ); ++line; - analisadoresPanel.add( labelMessage, new TableLayoutConstraints( 0, line,1,line ) ); + analisadoresPanel.add( labelMessage, new TableLayoutConstraints( 0, line, 1, line ) ); } private void setupAnalisadoresTabListeners() @@ -396,7 +424,7 @@ public class PrestadoresWindow extends EditorWindow Prestadores analisador = (Prestadores) combo.getSelectedItem(); grupo.setToAnalisador( Prestadores.prestadorNulo.equals( analisador ) ? null : analisador ); medicinaCayenneDAO.saveObject( grupo ); - shout( "Grupo: " + grupo.getDescricao() + " -> Analisador: " + analisador.getNome() + " (guardado)" ); + shout( "Tipo de ECD: " + grupo.getDescricao() + " -> Analisador: " + analisador.getNome() + " [guardado]" ); } } } diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java index 5e57b4a0..e1701134 100755 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/logic/MedicinaProcessoLogic.java @@ -2,13 +2,11 @@ package siprp.medicina.processo.logic; import java.util.Date; import java.util.List; -import java.util.Vector; import javax.swing.tree.DefaultMutableTreeNode; import leaf.LeafLogic; import leaf.LeafWindow.LeafObject; - import siprp.database.cayenne.objects.BaseObject; import siprp.database.cayenne.objects.Empresas; import siprp.database.cayenne.objects.Estabelecimentos; @@ -18,7 +16,6 @@ import siprp.database.cayenne.objects.TrabalhadoresConsultas; import siprp.database.cayenne.objects.TrabalhadoresConsultasDatas; import siprp.database.cayenne.objects.TrabalhadoresConsultasDatasEmails; import siprp.database.cayenne.objects.TrabalhadoresConsultasDatasObservacoes; -import siprp.database.cayenne.objects.TrabalhadoresEcd; import siprp.database.cayenne.objects.TrabalhadoresEcds; import siprp.database.cayenne.objects.TrabalhadoresEcdsDatas; import siprp.database.cayenne.objects.TrabalhadoresEcdsDatasEmails; @@ -27,11 +24,8 @@ import siprp.database.cayenne.objects.TrabalhadoresProcesso; import siprp.database.cayenne.providers.MedicinaDAO; import siprp.medicina.MedicinaConstants; import siprp.medicina.processo.ProcessoConstants; -import siprp.medicina.processo.detalhes.EstadoChooser; import siprp.medicina.processo.estrutura.FichaAptidaoMutableTreeNode; -import com.evolute.utils.tables.ColumnizedMappable; - public class MedicinaProcessoLogic extends LeafLogic { @Action(isSave = false) @@ -138,6 +132,9 @@ public class MedicinaProcessoLogic extends LeafLogic @Action(isSave = true) public static final String FECHAR_PROCESSO = "FECHAR_PROCESSO"; + + @Action(isSave = false) + public static final String APAGAR_PROCESSO = "APAGAR_PROCESSO"; @Action(isSave = false) public static final String REFRESH = "REFRESH"; @@ -184,7 +181,7 @@ public class MedicinaProcessoLogic extends LeafLogic @LeafObject (useWith=LOAD_TRABALHADOR) public Trabalhadores currentTrabalhador = null; - @LeafObject(useWith = SAVE_PROCESSO) + @LeafObject(useWith = { SAVE_PROCESSO, APAGAR_PROCESSO }) public TrabalhadoresProcesso currentProcesso = null; @LeafObject(useWith = SAVE_CONSULTA) @@ -275,6 +272,16 @@ public class MedicinaProcessoLogic extends LeafLogic runActionLater( SAVE_PROCESSO ); } } + + @LeafLogicActionBinding(actions = APAGAR_PROCESSO) + public void apagarProcesso() + { + if( currentProcesso != null && currentProcesso.isEmpty() ) + { + currentProcesso.setActivo( "n" ); + runActionLater( SAVE_PROCESSO ); + } + } @LeafLogicActionBinding(actions = DESMARCAR_SIPRP_CONSULTA_MARCACAO) public void desmarcarConsultaSiprp() diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/MedicinaProcessoWindow.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/MedicinaProcessoWindow.java index 54abf01a..a9e54e3e 100755 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/MedicinaProcessoWindow.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/MedicinaProcessoWindow.java @@ -12,6 +12,7 @@ import javax.swing.JSeparator; import leaf.LeafOptionDialog; import leaf.LeafWindow; +import leaf.OrderedMap; import leaf.LeafLogic.LeafUIActionBinding; import siprp.database.cayenne.objects.PrtGruposProtocolo; import siprp.database.cayenne.objects.TrabalhadoresEcd; diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoAccoesPanel.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoAccoesPanel.java index cff59476..08299b7e 100755 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoAccoesPanel.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoAccoesPanel.java @@ -100,6 +100,9 @@ public class ProcessoAccoesPanel extends JPanel CREATE_EXAME, CREATE_EXAME_MARCACAO }, onChange = "") public final LeafButton buttonNovoProcessoExame = new LeafButton( "Novo Exame" ); + + @ActionActivation(onSelect = APAGAR_PROCESSO, onChange = "") + public final LeafButton buttonApagarProcesso = new LeafButton( "Remover Processo" ); // consulta @ActionActivation(onSelect = CREATE_CONSULTA_MARCACAO, onChange = "") @@ -235,6 +238,7 @@ public class ProcessoAccoesPanel extends JPanel if( processo != null ) { buttonFecharProcesso.setEnabled( !ProcessoConstants.PROCESSO_FECHADO_CODE.equals( processo.getEstado() ) ); + buttonApagarProcesso.setEnabled( processo.isEmpty() ); boolean consultaAberta = false; for( TrabalhadoresConsultas consulta : (List) processo.getTrabalhadoresConsultasArray() ) { @@ -399,7 +403,11 @@ public class ProcessoAccoesPanel extends JPanel private void setupProcessoPanel() { - setupSimpleActionsPanel( panelProcesso, buttonFecharProcesso, buttonNovoProcessoConsulta, buttonNovoProcessoExame, new JPanel() ); + JPanel panelTopProcesso = new JPanel(); + JPanel panelBottomProcesso = new JPanel(); + setupSimpleActionsPanel( panelTopProcesso, buttonNovoProcessoConsulta, buttonNovoProcessoExame ); + setupSimpleActionsPanel( panelBottomProcesso, buttonFecharProcesso, buttonApagarProcesso ); + setupTopBottomSimpleActionsPanel( panelProcesso, panelTopProcesso, panelBottomProcesso ); } private void setupConsultaPanel() @@ -413,11 +421,7 @@ public class ProcessoAccoesPanel extends JPanel JPanel consultaMarcacaoLowerPanel = new JPanel(); setupSimpleActionsPanel( consultaMarcacaoUpperPanel, buttonNovoConsultaMarcacaoEmail, buttonNovoConsultaMarcacaoObservacoes ); setupSimpleActionsPanel( consultaMarcacaoLowerPanel, buttonConsultaMarcacaoRealizar, buttonConsultaMarcacaoDesmarcarSiprp, buttonConsultaMarcacaoDesmarcarTrabalhador, buttonConsultaMarcacaoFaltou); - TableLayout consultaMarcacaoLayout = new TableLayout(new double[]{TableLayout.FILL}, new double[]{TableLayout.MINIMUM, TableLayout.FILL,TableLayout.MINIMUM}); - panelConsultaMarcacao.setLayout( consultaMarcacaoLayout ); - panelConsultaMarcacao.add( consultaMarcacaoUpperPanel, new TableLayoutConstraints(0,0) ); - panelConsultaMarcacao.add( new JPanel(), new TableLayoutConstraints(0,1) ); - panelConsultaMarcacao.add( consultaMarcacaoLowerPanel, new TableLayoutConstraints(0,2) ); + setupTopBottomSimpleActionsPanel(panelConsultaMarcacao, consultaMarcacaoUpperPanel, consultaMarcacaoLowerPanel); } private void setupExameMarcacaoPanel() @@ -426,17 +430,22 @@ public class ProcessoAccoesPanel extends JPanel JPanel exameMarcacaoLowerPanel = new JPanel(); setupSimpleActionsPanel( exameMarcacaoUpperPanel, buttonNovoExameMarcacaoEmail, buttonNovoExameMarcacaoObservacoes, new JPanel() ); setupSimpleActionsPanel( exameMarcacaoLowerPanel, buttonExameMarcacaoRealizar, buttonExameMarcacaoRealizarParcial, buttonExameMarcacaoFaltou, buttonExameMarcacaoAnular, buttonExameMarcacaoDesmarcarTrabalhador, buttonExameMarcacaoDesmarcarSiprp ); - TableLayout exameMarcacaoLayout = new TableLayout(new double[]{TableLayout.FILL}, new double[]{TableLayout.MINIMUM, TableLayout.FILL,TableLayout.MINIMUM}); - panelExameMarcacao.setLayout( exameMarcacaoLayout ); - panelExameMarcacao.add( exameMarcacaoUpperPanel, new TableLayoutConstraints(0,0) ); - panelExameMarcacao.add( new JPanel(), new TableLayoutConstraints(0,1) ); - panelExameMarcacao.add( exameMarcacaoLowerPanel, new TableLayoutConstraints(0,2) ); + setupTopBottomSimpleActionsPanel(panelExameMarcacao, exameMarcacaoUpperPanel, exameMarcacaoLowerPanel); } private void setupExamePanel() { setupSimpleActionsPanel( panelExame, buttonNovoExameMarcacao, new JPanel() ); } + + private void setupTopBottomSimpleActionsPanel(JPanel panel, JPanel top, JPanel bottom) + { + TableLayout layout = new TableLayout(new double[]{TableLayout.FILL}, new double[]{TableLayout.MINIMUM, TableLayout.FILL,TableLayout.MINIMUM}); + panel.setLayout( layout ); + panel.add( top, new TableLayoutConstraints(0,0) ); + panel.add( new JPanel(), new TableLayoutConstraints(0,1) ); + panel.add( bottom, new TableLayoutConstraints(0,2) ); + } private void setupSimpleActionsPanel( JPanel panel, JComponent... field ) { diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java index 428dd34b..73f4b4a4 100755 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoDadosPanel.java @@ -5,7 +5,7 @@ import static com.evolute.utils.strings.UnicodeLatin1Map.ccedil; import static com.evolute.utils.strings.UnicodeLatin1Map.iacute; import static com.evolute.utils.strings.UnicodeLatin1Map.otilde; import static info.clearthought.layout.TableLayoutConstants.FILL; -import static siprp.medicina.processo.logic.MedicinaProcessoLogic.CREATE_CONSULTA; +import static siprp.medicina.processo.logic.MedicinaProcessoLogic.*; import static siprp.medicina.processo.logic.MedicinaProcessoLogic.CREATE_CONSULTA_MARCACAO; import static siprp.medicina.processo.logic.MedicinaProcessoLogic.CREATE_CONSULTA_MARCACAO_EMAIL; import static siprp.medicina.processo.logic.MedicinaProcessoLogic.CREATE_CONSULTA_MARCACAO_OBSERVACOES; @@ -37,6 +37,7 @@ import info.clearthought.layout.TableLayout; import info.clearthought.layout.TableLayoutConstraints; import java.awt.CardLayout; +import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -53,6 +54,7 @@ import leaf.LeafInputField; import leaf.LeafOptionDialog; import leaf.LeafTextDialog; import leaf.LeafWindow; +import leaf.OrderedMap; import leaf.LeafLogic.LeafUIActionBinding; import leaf.LeafWindow.ActionActivation; @@ -117,13 +119,17 @@ public class ProcessoDadosPanel extends JPanel private final JLabel labelTrabalhadorSexo = new JLabel( "Sexo" ); private final JLabel labelTrabalhadorDataNascimento = new JLabel( "Data de Nascimento" ); private final JLabel labelTrabalhadorNacionalidade = new JLabel( "Nacionalidade" ); + private final JLabel labelTrabalhadorBI = new JLabel( "B.I." ); private final JLabel labelTrabalhadorObservacoes = new JLabel( "Observa" + ccedil + otilde + "es" ); + private final JLabel labelTrabalhadorDataAdmissao = new JLabel( "Data de Admiss" + atilde + "o" ); 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 inputTrabalhadorBI = new LeafInputField(); public final LeafInputField inputTrabalhadorObservacoes = new LeafInputField(); + public final LeafInputField inputTrabalhadorDataAdmissao = new LeafInputField(); // processo @@ -135,6 +141,7 @@ public class ProcessoDadosPanel extends JPanel public final LeafInputField> inputProcessoEstado = new LeafInputField>(); public final LeafInputField inputProcessoDataInicio = new LeafInputField(); public final LeafInputField inputProcessoDataFim = new LeafInputField(); + @ActionActivation(onSelect = "", onChange = SAVE_PROCESSO) public final LeafInputField> inputProcessoMotivo = new LeafInputField>(); // consulta @@ -248,6 +255,29 @@ public class ProcessoDadosPanel extends JPanel add( panelExameMarcacaoEmail, PANEL_EXAME_MARCACAO_EMAIL_NAME ); add( panelExameMarcacaoObservacao, PANEL_EXAME_MARCACAO_OBSERVACAO_NAME ); } + + private int getIdade( Date nascimento ) + { + int result = 0; + if(nascimento != null) + { + Calendar now = Calendar.getInstance(); + Calendar birth = Calendar.getInstance(); + birth.setTime( nascimento ); + int birthYear = birth.get( Calendar.YEAR ); + int currentYear = now.get( Calendar.YEAR ); + if( birthYear < currentYear ) + { + result = currentYear - birthYear; + birth.add( Calendar.YEAR, result ); + if( birth.after( now ) ) + { + --result; + } + } + } + return result; + } @LeafUIActionBinding(action = { LOAD_TRABALHADOR, SELECT_TRABALHADOR @@ -260,8 +290,11 @@ public class ProcessoDadosPanel extends JPanel inputTrabalhadorSexo.setObject( trabalhador.getSexos(), trabalhador.getSexo() ); inputTrabalhadorNome.setObject( trabalhador.getNome() ); inputTrabalhadorNacionalidade.setObject( trabalhador.getNacionalidade() ); - inputTrabalhadorObservacoes.setObject( trabalhador.getObservacoes() ); - + inputTrabalhadorBI.setObject( trabalhador.getBi() ); + inputTrabalhadorObservacoes.setObject( trabalhador.getObservacoesGestao() ); + inputTrabalhadorDataAdmissao.setObject(trabalhador.getDataAdmissao()); + labelTrabalhadorDataNascimento.setText( "Data de Nascimento (" + getIdade( trabalhador.getDataNascimento() ) + " anos)" ); + cardLayout.show( this, PANEL_TRABALHADOR_NAME ); } else @@ -278,6 +311,7 @@ public class ProcessoDadosPanel extends JPanel inputProcessoDataFim.setObject( processo.getDataFim() ); inputProcessoDataInicio.setObject( processo.getDataInicio() ); inputProcessoEstado.setObject( processo.getEstados(), processo.getEstado() ); + inputProcessoMotivo.setEditable( true ); inputProcessoMotivo.setObject( processo.getMotivos(), processo.getMotivo() ); cardLayout.show( this, PANEL_PROCESSO_NAME ); @@ -577,6 +611,12 @@ public class ProcessoDadosPanel extends JPanel observacoes.setObservacao( text ); inputExameMarcacaoObsMensagem.setEditable( true ); } + + @LeafUIActionBinding(action = SAVE_PROCESSO) + public void updateToSaveProcesso( TrabalhadoresProcesso processo) + { + processo.setMotivo( (Integer) inputProcessoMotivo.getSelectedObject() ); + } @LeafUIActionBinding(action = SAVE_CONSULTA_MARCACAO) public void updateToSaveConsultaMarcacao( TrabalhadoresConsultasDatas marcacao ) @@ -651,7 +691,7 @@ public class ProcessoDadosPanel extends JPanel private void setupTrabalhadorPanel() { - setupSimpleDataPanel( panelTrabalhador, "Trabalhador", labelTrabalhadorNome, inputTrabalhadorNome, labelTrabalhadorSexo, inputTrabalhadorSexo, labelTrabalhadorNacionalidade, inputTrabalhadorNacionalidade, labelTrabalhadorDataNascimento, inputTrabalhadorDataNascimento, labelTrabalhadorObservacoes, inputTrabalhadorObservacoes ); + setupSimpleDataPanel( panelTrabalhador, "Trabalhador", labelTrabalhadorNome, inputTrabalhadorNome, labelTrabalhadorSexo, inputTrabalhadorSexo, labelTrabalhadorBI, inputTrabalhadorBI,labelTrabalhadorNacionalidade, inputTrabalhadorNacionalidade, labelTrabalhadorDataNascimento, inputTrabalhadorDataNascimento, labelTrabalhadorDataAdmissao, inputTrabalhadorDataAdmissao, labelTrabalhadorObservacoes, inputTrabalhadorObservacoes ); } private void setupProcessoPanel() diff --git a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoTreePanel.java b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoTreePanel.java index 8fa5522f..83190b5a 100755 --- a/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoTreePanel.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/processo/ui/ProcessoTreePanel.java @@ -73,7 +73,7 @@ public class ProcessoTreePanel extends JPanel try { provider = ProcessoDataProvider.getProvider(); - + } catch( Exception e ) { provider = null; @@ -134,17 +134,27 @@ public class ProcessoTreePanel extends JPanel mainTree.expandRow( n ); } } - + @LeafUIActionBinding(action = CREATE_PROCESSO) - public void createConsultaNode( TrabalhadoresProcesso processo) + public void createProcessoNode( TrabalhadoresProcesso processo ) { - if( processo!= null ) + if( processo != null ) { ProcessoMutableTreeNode node = new ProcessoMutableTreeNode( processo ); addAndRefresh( node, rootNode ); } } + @LeafUIActionBinding(action = APAGAR_PROCESSO) + public void removeProcessoNode( TrabalhadoresProcesso processo ) + { + if( processo != null ) + { + ProcessoMutableTreeNode node = new ProcessoMutableTreeNode( processo ); + removeNode( node ); + } + } + @LeafUIActionBinding(action = CREATE_CONSULTA) public void createConsultaNode( TrabalhadoresConsultas consulta ) { @@ -160,11 +170,11 @@ public class ProcessoTreePanel extends JPanel @LeafUIActionBinding(action = CREATE_CONSULTA_MARCACAO) public void createConsultaMarcacaoNode( TrabalhadoresConsultasDatas marcacao ) { - if( marcacao != null) + if( marcacao != null ) { DefaultMutableTreeNode parentNode = nodeByObject.get( marcacao.getToTrabalhadoresConsultas() ); DataMutableTreeNode node = new DataMutableTreeNode( marcacao ); - addAndRefresh( node, parentNode ); + addAndRefresh( node, parentNode ); } } @@ -195,10 +205,10 @@ public class ProcessoTreePanel extends JPanel @LeafUIActionBinding(action = CREATE_EXAME) public void createExameNode( TrabalhadoresEcds exame ) { - if( exame!= null ) + if( exame != null ) { DefaultMutableTreeNode parentNode = nodeByObject.get( exame.getToTrabalhadoresProcesso() ); - ECDsMutableTreeNode node = new ECDsMutableTreeNode( exame); + ECDsMutableTreeNode node = new ECDsMutableTreeNode( exame ); node.setData( exame.getData() ); addAndRefresh( node, parentNode ); } @@ -207,11 +217,11 @@ public class ProcessoTreePanel extends JPanel @LeafUIActionBinding(action = CREATE_EXAME_MARCACAO) public void createExameMarcacaoNode( TrabalhadoresEcdsDatas marcacao ) { - if( marcacao != null) + if( marcacao != null ) { DefaultMutableTreeNode parentNode = nodeByObject.get( marcacao.getToTrabalhadoresEcds() ); DataMutableTreeNode node = new DataMutableTreeNode( marcacao ); - addAndRefresh( node, parentNode ); + addAndRefresh( node, parentNode ); } } @@ -238,22 +248,22 @@ public class ProcessoTreePanel extends JPanel mainTree.setSelectionPath( new TreePath( node.getPath() ) ); } } - - @LeafUIActionBinding(action = REFRESH ) + + @LeafUIActionBinding(action = REFRESH) public void refresh() { DefaultMutableTreeNode selected = getSelectedNode(); if( selected != null ) { -// ((DefaultTreeModel) mainTree.getModel()).nodeStructureChanged( rootNode ); + // ((DefaultTreeModel) mainTree.getModel()).nodeStructureChanged( + // rootNode ); mainTree.setSelectionPath( new TreePath( rootNode.getPath() ) ); mainTree.setSelectionPath( new TreePath( selected.getPath() ) ); } revalidate(); repaint(); } - - + protected List loadProcessos( Trabalhadores trabalhador ) { List result = new ArrayList(); @@ -347,20 +357,25 @@ public class ProcessoTreePanel extends JPanel private void addAndRefresh( DefaultMutableTreeNode node, DefaultMutableTreeNode parentNode ) { addNodeTo( node, parentNode ); - refresh(node, parentNode); + refresh( node, parentNode ); } - -// private void removeNode( DefaultMutableTreeNode node ) -// { -// if( node != null && !node.equals( rootNode ) && node.getParent() != null && node.getParent() instanceof DefaultMutableTreeNode) -// { -// DefaultMutableTreeNode parent = (DefaultMutableTreeNode) node.getParent(); -// node.removeFromParent(); -// refresh(parent, rootNode); -// } -// } - - private void refresh(DefaultMutableTreeNode newSelection, DefaultMutableTreeNode parentNode) + + private void removeNode( DefaultMutableTreeNode node ) + { + if( node != null ) + { + DefaultMutableTreeNode parent = (DefaultMutableTreeNode) node.getParent(); + if( parent == null ) + { + parent = rootNode; + } + node.removeFromParent(); + nodeByObject.remove( node.getUserObject() ); + refresh( parent, rootNode ); + } + } + + private void refresh( DefaultMutableTreeNode newSelection, DefaultMutableTreeNode parentNode ) { ((DefaultTreeModel) mainTree.getModel()).nodeStructureChanged( parentNode ); mainTree.setSelectionPath( new TreePath( newSelection.getPath() ) );