From 88c2d49371f06e2e460b56d1d2549cd2c0f0acd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Sim=C3=A3o?= Date: Tue, 15 Jan 2008 18:24:31 +0000 Subject: [PATCH] git-svn-id: https://svn.coded.pt/svn/SIPRP@663 bb69d46d-e84e-40c8-a05a-06db0d633741 --- trunk/SIPRPSoft/src/SIPRPMap.map.xml | 9 + .../cayenne/objects/PrtGruposProtocolo.java | 37 +++ .../cayenne/objects/auto/_Prestadores.java | 12 + .../objects/auto/_PrtGruposProtocolo.java | 10 + .../cayenne/providers/MedicinaDAO.java | 22 +- .../prestadores/PrestadoresWindow.java | 292 +++++++++++++----- .../src/siprp/update/UpdateList.java | 3 +- .../siprp/update/updates/V8_4_To_V8_5.java | 59 ++++ 8 files changed, 362 insertions(+), 82 deletions(-) create mode 100644 trunk/SIPRPSoft/src/siprp/update/updates/V8_4_To_V8_5.java diff --git a/trunk/SIPRPSoft/src/SIPRPMap.map.xml b/trunk/SIPRPSoft/src/SIPRPMap.map.xml index ae832d87..f4124962 100644 --- a/trunk/SIPRPSoft/src/SIPRPMap.map.xml +++ b/trunk/SIPRPSoft/src/SIPRPMap.map.xml @@ -314,6 +314,7 @@ + @@ -979,6 +980,9 @@ + + + @@ -1015,6 +1019,9 @@ + + + @@ -1192,6 +1199,7 @@ + @@ -1204,6 +1212,7 @@ + diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/PrtGruposProtocolo.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/PrtGruposProtocolo.java index c11e0ce0..087298f0 100755 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/PrtGruposProtocolo.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/PrtGruposProtocolo.java @@ -1,11 +1,48 @@ package siprp.database.cayenne.objects; +import com.evolute.utils.strings.UnicodeChecker; + import siprp.database.cayenne.objects.auto._PrtGruposProtocolo; public class PrtGruposProtocolo extends _PrtGruposProtocolo { private static final long serialVersionUID = 1L; + private String name = null; + + private String convertedName = null; + + @Override + public String getDescricao() + { + String currentName = super.getDescricao(); + if( name == null || !name.equals( currentName )) + { + name = currentName; + convertedName = null; + } + return convertName(); + } + + @Override + public void setDescricao( String nome ) + { + super.setDescricao( UnicodeChecker.parseToUnicode( name ) ); + getDescricao(); + } + + private String convertName() + { + if( name == null ) + { + convertedName = null; + } + else + { + convertedName = UnicodeChecker.parseFromUnicode( name ); + } + return convertedName; + } @Override public String toString() diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_Prestadores.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_Prestadores.java index 2ae3219c..d8b14997 100755 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_Prestadores.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_Prestadores.java @@ -23,6 +23,7 @@ public abstract class _Prestadores extends siprp.database.cayenne.objects.BaseOb public static final String MARCACOES_TRABALHADOR_ARRAY_PROPERTY = "marcacoesTrabalhadorArray"; public static final String MARCACOES_TRABALHADOR_ESTADOS_ARRAY_PROPERTY = "marcacoesTrabalhadorEstadosArray"; public static final String PRESTADORES_GRUPOS_PROTOCOLO_ARRAY_PROPERTY = "prestadoresGruposProtocoloArray"; + public static final String PRT_GRUPOS_PROTOCOLO_ARRAY_PROPERTY = "prtGruposProtocoloArray"; public static final String TO_CONTACTOS_PROPERTY = "toContactos"; public static final String TRABALHADORES_CONSULTAS_ARRAY_PROPERTY = "trabalhadoresConsultasArray"; public static final String TRABALHADORES_CONSULTAS_DATAS_ARRAY_PROPERTY = "trabalhadoresConsultasDatasArray"; @@ -174,6 +175,17 @@ public abstract class _Prestadores extends siprp.database.cayenne.objects.BaseOb } + public void addToPrtGruposProtocoloArray(siprp.database.cayenne.objects.PrtGruposProtocolo obj) { + addToManyTarget("prtGruposProtocoloArray", obj, true); + } + public void removeFromPrtGruposProtocoloArray(siprp.database.cayenne.objects.PrtGruposProtocolo obj) { + removeToManyTarget("prtGruposProtocoloArray", obj, true); + } + public java.util.List getPrtGruposProtocoloArray() { + return (java.util.List)readProperty("prtGruposProtocoloArray"); + } + + public void setToContactos(siprp.database.cayenne.objects.Contactos toContactos) { setToOneTarget("toContactos", toContactos, true); } diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_PrtGruposProtocolo.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_PrtGruposProtocolo.java index 4ab1a386..158b13ed 100755 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_PrtGruposProtocolo.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/objects/auto/_PrtGruposProtocolo.java @@ -15,6 +15,7 @@ public abstract class _PrtGruposProtocolo extends siprp.database.cayenne.objects public static final String MARCACOES_GRUPOS_REALIZADOS_ARRAY_PROPERTY = "marcacoesGruposRealizadosArray"; public static final String PRESTADORES_GRUPOS_PROTOCOLO_ARRAY_PROPERTY = "prestadoresGruposProtocoloArray"; public static final String PRT_TIPOS_ELEMENTOS_PROTOCOLO_ARRAY_PROPERTY = "prtTiposElementosProtocoloArray"; + public static final String TO_ANALISADOR_PROPERTY = "toAnalisador"; public static final String ID_PK_COLUMN = "id"; @@ -91,4 +92,13 @@ public abstract class _PrtGruposProtocolo extends siprp.database.cayenne.objects } + public void setToAnalisador(siprp.database.cayenne.objects.Prestadores toAnalisador) { + setToOneTarget("toAnalisador", toAnalisador, true); + } + + public siprp.database.cayenne.objects.Prestadores getToAnalisador() { + return (siprp.database.cayenne.objects.Prestadores)readProperty("toAnalisador"); + } + + } diff --git a/trunk/SIPRPSoft/src/siprp/database/cayenne/providers/MedicinaDAO.java b/trunk/SIPRPSoft/src/siprp/database/cayenne/providers/MedicinaDAO.java index b421884f..ed7790c5 100644 --- a/trunk/SIPRPSoft/src/siprp/database/cayenne/providers/MedicinaDAO.java +++ b/trunk/SIPRPSoft/src/siprp/database/cayenne/providers/MedicinaDAO.java @@ -10,13 +10,14 @@ import org.apache.cayenne.query.SelectQuery; import siprp.database.cayenne.objects.BaseObject; import siprp.database.cayenne.objects.Empresas; import siprp.database.cayenne.objects.Prestadores; +import siprp.database.cayenne.objects.PrtGruposProtocolo; import siprp.database.cayenne.objects.Trabalhadores; import siprp.database.cayenne.objects.TrabalhadoresProcesso; import siprp.medicina.processo.ProcessoConstants; public class MedicinaDAO extends MainDAO { - private static final String defaultPrestadorName = "SIPRP"; +// private static final String defaultPrestadorName = "SIPRP"; private Prestadores defaultPrestador = null; public Trabalhadores getTrabalhadorByID( Integer id ) @@ -39,19 +40,16 @@ public class MedicinaDAO extends MainDAO query.andQualifier( ExpressionFactory.matchExp( Prestadores.ACTIVO_PROPERTY, "y" ) ); query.addOrdering( Prestadores.NOME_PROPERTY, true ); List allPrestadores = context.performQuery( query ); - if( defaultPrestador == null ) - { - for(Prestadores current : allPrestadores) - { - if(defaultPrestadorName.equals( current.getNomePlain() )) - { - defaultPrestador = current; - break; - } - } - } return allPrestadores; } + + public List getAllPrtGruposProtocolo() + { + SelectQuery query = new SelectQuery( PrtGruposProtocolo.class ); + query.addOrdering( PrtGruposProtocolo.DESCRICAO_PLAIN_PROPERTY, true ); + List allPrtGruposProtocolo= context.performQuery( query ); + return allPrtGruposProtocolo; + } public BaseObject saveObject( BaseObject object ) { diff --git a/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresWindow.java b/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresWindow.java index 5a2de314..fe847dda 100644 --- a/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresWindow.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresWindow.java @@ -22,30 +22,46 @@ import com.evolute.utils.ui.search.SearchDialog; import com.evolute.utils.ui.window.EditorWindow; import info.clearthought.layout.TableLayout; import info.clearthought.layout.TableLayoutConstraints; + +import java.awt.Color; import java.awt.Dimension; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.Hashtable; import java.util.List; +import java.util.Map; import java.util.Vector; import javax.swing.BorderFactory; import javax.swing.JCheckBox; +import javax.swing.JComboBox; import javax.swing.JLabel; +import javax.swing.JPanel; import javax.swing.JScrollPane; +import javax.swing.JSeparator; +import javax.swing.JTabbedPane; import javax.swing.JTextArea; import javax.swing.JTextField; import siprp.clientes.ClientesDataProvider; import siprp.clientes.ContactoPanel; import siprp.data.ContactoData; +import siprp.database.cayenne.objects.Prestadores; +import siprp.database.cayenne.objects.PrtGruposProtocolo; +import siprp.database.cayenne.providers.MedicinaDAO; import siprp.medicina.prestadores.data.PrestadoresData; /** - * + * * @author fpalma */ public class PrestadoresWindow extends EditorWindow { + private static final long serialVersionUID = 1L; + public static final String TITLE = "Prestadores"; - + protected JTextField nomeText; protected JCheckBox activoCheck; protected JCheckBox consultasCheck; @@ -57,32 +73,53 @@ public class PrestadoresWindow extends EditorWindow protected JTextField localidadeText; protected ContactoPanel contactoPanel; protected JTextField contribuinteText; - - + protected PrestadoresDataProvider provider; protected ClientesDataProvider clientesProvider; - + protected ComponentsHashtable components; - + protected PrestadoresData prestador; protected Integer gruposProtocolo[]; - + + private final JTabbedPane tabbedPane = new JTabbedPane(); + 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 labelMessage = new JLabel( " " ); + + private final Map mapLabel = new HashMap(); + private final Map mapComboBox = new HashMap(); + + private final List listAnalisadores = new ArrayList(); + private final List listGrupos = new ArrayList(); + + private final MedicinaDAO medicinaCayenneDAO = new MedicinaDAO(); + /** Creates a new instance of PrestadoresWindow */ - public PrestadoresWindow() - throws Exception + public PrestadoresWindow() throws Exception { - super( new int[][]{{ NEW_INDEX, EDIT_INDEX, CANCEL_INDEX, SAVE_INDEX, DELETE_INDEX, - SELECT_BYNAME_INDEX }} ); + super( new int[][] { + { + NEW_INDEX, EDIT_INDEX, CANCEL_INDEX, SAVE_INDEX, DELETE_INDEX, SELECT_BYNAME_INDEX + } + } ); provider = PrestadoresDataProvider.getProvider(); - clientesProvider = ( ClientesDataProvider ) ClientesDataProvider.getProvider(); + clientesProvider = (ClientesDataProvider) ClientesDataProvider.getProvider(); setupComponents(); setupComponentsHashtable(); } - - private void setupComponents() - throws Exception + + private void setupComponents() throws Exception { setTitle( TITLE ); + tabbedPane.addTab( "Prestadores", prestadoresPanel ); + tabbedPane.addTab( "Analisadores", analisadoresPanel ); + + setupAnalisadoresTab(); + JLabel nomeLabel = new JLabel( "Designa\u00e7\u00e3o" ); nomeText = new JTextField(); nomeText.setPreferredSize( new Dimension( 500, 20 ) ); @@ -100,7 +137,7 @@ public class PrestadoresWindow extends EditorWindow { gruposProtocolo.addAll( Arrays.asList( gruposProtocoloFalsos ) ); } - ecdsPanel = new CheckBoxPanel( gruposProtocolo.toArray( new IDObject[ gruposProtocolo.size() ] ) ); + ecdsPanel = new CheckBoxPanel( gruposProtocolo.toArray( new IDObject[gruposProtocolo.size()] ) ); JLabel contactoLabel = new JLabel( "Contacto" ); contactoPanel = new ContactoPanel(); contactoPanel.setPreferredSize( new Dimension( 350, 120 ) ); @@ -109,8 +146,7 @@ public class PrestadoresWindow extends EditorWindow moradaText = new JTextArea(); moradaText.setLineWrap( true ); moradaText.setWrapStyleWord( true ); - JScrollPane moradaScroll = new JScrollPane( moradaText, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, - JScrollPane.HORIZONTAL_SCROLLBAR_NEVER ); + 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(); @@ -122,36 +158,44 @@ public class PrestadoresWindow extends EditorWindow 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 ); + + 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( nomeLabel, new TableLayoutConstraints( 0, 0 ) ); - getContentPane().add( nomeText, new TableLayoutConstraints( 1, 0, 3, 0 ) ); - getContentPane().add( activoCheck, new TableLayoutConstraints( 0, 1, 2, 1 ) ); - getContentPane().add( consultasCheck, new TableLayoutConstraints( 0, 2 ) ); - getContentPane().add( ecdsCheck, new TableLayoutConstraints( 0, 3 ) ); - getContentPane().add( ecdsPanel, new TableLayoutConstraints( 1, 3, 2, 3 ) ); - getContentPane().add( contactoLabel, new TableLayoutConstraints( 0, 4 ) ); - getContentPane().add( contactoPanel, new TableLayoutConstraints( 1, 4, 2, 4 ) ); - getContentPane().add( moradaLabel, new TableLayoutConstraints( 0, 5 ) ); - getContentPane().add( moradaScroll, new TableLayoutConstraints( 1, 5, 3, 5 ) ); - getContentPane().add( codigoPostalLabel, new TableLayoutConstraints( 0, 6 ) ); - getContentPane().add( codigoPostalText, new TableLayoutConstraints( 1, 6 ) ); - getContentPane().add( localidadeCodigoPostalText, new TableLayoutConstraints( 2, 6, 3, 6 ) ); - getContentPane().add( localidadeLabel, new TableLayoutConstraints( 0, 7 ) ); - getContentPane().add( localidadeText, new TableLayoutConstraints( 1, 7, 3, 7 ) ); - getContentPane().add( contribuinteLabel, new TableLayoutConstraints( 0, 8 ) ); - getContentPane().add( contribuinteText, new TableLayoutConstraints( 1, 8 ) ); + 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() { components = new ComponentsHashtable(); @@ -165,17 +209,15 @@ public class PrestadoresWindow extends EditorWindow components.putComponent( PrestadoresData.ACTIVO, activoCheck ); components.putComponent( PrestadoresData.FAZ_CONSULTAS, consultasCheck ); components.putComponent( PrestadoresData.FAZ_ECDS, ecdsCheck ); - components.putComponent( PrestadoresData.CONTACTO_ID, - new JDOControllable( ( JDOProvider )Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER ), - ContactoData.class, new String[]{ ContactoData.ID }, - contactoPanel ) ); + components.putComponent( PrestadoresData.CONTACTO_ID, new JDOControllable( (JDOProvider) Singleton.getInstance( Singleton.DEFAULT_JDO_PROVIDER ), ContactoData.class, new String[] { + ContactoData.ID + }, contactoPanel ) ); } - public boolean searchByName() { SearchDialog search = new SearchDialog( provider ); - Integer id = ( Integer )search.getSelected(); + Integer id = (Integer) search.getSelected(); if( id == null ) { return false; @@ -186,8 +228,7 @@ public class PrestadoresWindow extends EditorWindow prestador = provider.getPrestadorByID( id ); gruposProtocolo = provider.getGruposProtocoloIDByPrestadorID( id ); reload( 0 ); - } - catch( Exception ex ) + } catch( Exception ex ) { DialogException.showExceptionMessage( ex, "Ocorreu um erro a carregar o prestador.", true ); return false; @@ -195,50 +236,49 @@ public class PrestadoresWindow extends EditorWindow return true; } - + public void enableComponents( int index, boolean enable ) { - String names[] = (String[])components.keySet().toArray( new String[0] ); + String names[] = (String[]) components.keySet().toArray( new String[0] ); ComponentController.setEnabled( names, enable, components ); ecdsPanel.setEnabled( enable ); } - + public void reload( int index ) { try { - String names[] = (String[])components.keySet().toArray( new String[0] ); + String names[] = (String[]) components.keySet().toArray( new String[0] ); ComponentController.fill( names, prestador.getHashData(), components ); ecdsPanel.setSelected( gruposProtocolo ); - } - catch( Exception ex ) + } catch( Exception ex ) { DialogException.showExceptionMessage( ex, "Erro a carregar dados", true ); - + } } - + public void clear( int index ) { - String names[] = (String[])components.keySet().toArray( new String[0] ); + String names[] = (String[]) components.keySet().toArray( new String[0] ); ComponentController.clear( names, components ); ecdsPanel.clear(); prestador = null; gruposProtocolo = null; } - + public boolean newItem( int index ) { return true; } - + public boolean save( int index ) { if( prestador == null ) { prestador = new PrestadoresData(); } - String names[] = (String[])components.keySet().toArray( new String[0] ); + String names[] = (String[]) components.keySet().toArray( new String[0] ); Hashtable data = prestador.getHashData(); ComponentController.save( names, data, components ); prestador.setHashData( data ); @@ -246,14 +286,128 @@ public class PrestadoresWindow extends EditorWindow try { provider.savePrestador( prestador ); - provider.setGruposProtocoloForPrestador( ( Integer ) prestador.get( PrestadoresData.ID ), - gruposProtocolo ); - } - catch( Exception ex ) + provider.setGruposProtocoloForPrestador( (Integer) prestador.get( PrestadoresData.ID ), gruposProtocolo ); + } catch( Exception ex ) { DialogException.showExceptionMessage( ex, "Erro a guardar dados", true ); return false; } return true; } + + private void setupAnalisadoresTab() + { + loadAnalisadoresTabData(); + setupAnalisadoresTabLayout(); + setupAnalisadoresTabComponents(); + placeAnalisadoresTabComponents(); + setupAnalisadoresTabListeners(); + } + + private void loadAnalisadoresTabData() + { + clearAnalisadoresTabData(); + listGrupos.addAll( medicinaCayenneDAO.getAllPrtGruposProtocolo() ); + listAnalisadores.addAll( medicinaCayenneDAO.getAllPrestadores() ); + } + + private void clearAnalisadoresTabData() + { + mapComboBox.clear(); + mapLabel.clear(); + listGrupos.clear(); + listAnalisadores.clear(); + shout(null); + } + + private void setupAnalisadoresTabLayout() + { + double[] cols = new double[] { + TableLayout.FILL, TableLayout.FILL + }; + double[] rows = new double[1 + listGrupos.size() + 2 ]; + for( int i = 0; i < rows.length; ++i ) + { + rows[i] = TableLayout.MINIMUM; + } + TableLayout layout = new TableLayout( cols, rows ); + layout.setHGap( 5 ); + layout.setVGap( 5 ); + analisadoresPanel.setLayout( layout ); + } + + private void setupAnalisadoresTabComponents() + { + Object[] analisadores = listAnalisadores.toArray(); + for( PrtGruposProtocolo grupo : listGrupos ) + { + JLabel label = new JLabel( grupo.getDescricao() ); + mapLabel.put( grupo, label ); + JComboBox combo = new JComboBox( analisadores ); + Prestadores analisador = grupo.getToAnalisador(); + combo.setSelectedItem( analisador == null ? Prestadores.prestadorNulo : analisador ); + mapComboBox.put( grupo, combo ); + } + labelMessage.setForeground( Color.RED.darker().darker() ); + } + + private void placeAnalisadoresTabComponents() + { + analisadoresPanel.add( labelGrupos, new TableLayoutConstraints( 0, 0 ) ); + analisadoresPanel.add( labelAnalisador, new TableLayoutConstraints( 1, 0 ) ); + for( int i = 0; i < listGrupos.size(); ++i ) + { + PrtGruposProtocolo grupo = listGrupos.get( i ); + JLabel label = mapLabel.get( grupo ); + analisadoresPanel.add( label, new TableLayoutConstraints( 0, i + 1 ) ); + JComboBox combo = mapComboBox.get( grupo ); + analisadoresPanel.add( combo, new TableLayoutConstraints( 1, i + 1 ) ); + } + int line = listGrupos.size() + 1; + analisadoresPanel.add( new JSeparator(), new TableLayoutConstraints( 0, line,1,line ) ); + ++line; + analisadoresPanel.add( labelMessage, new TableLayoutConstraints( 0, line,1,line ) ); + } + + private void setupAnalisadoresTabListeners() + { + for( PrtGruposProtocolo grupo : listGrupos ) + { + JComboBox combo = mapComboBox.get( grupo ); + setupListenersFor( combo ); + } + } + + private void setupListenersFor( JComboBox combo ) + { + combo.addItemListener( new ItemListener() + { + + @Override + public void itemStateChanged( ItemEvent itemEvent ) + { + if( ItemEvent.SELECTED == itemEvent.getStateChange() ) + { + JComboBox combo = (JComboBox) itemEvent.getSource(); + for( PrtGruposProtocolo grupo : mapComboBox.keySet() ) + { + if( mapComboBox.get( grupo ).equals( combo ) ) + { + Prestadores analisador = (Prestadores) combo.getSelectedItem(); + grupo.setToAnalisador( Prestadores.prestadorNulo.equals( analisador ) ? null : analisador ); + medicinaCayenneDAO.saveObject( grupo ); + shout( "Grupo: " + grupo.getDescricao() + " -> Analisador: " + analisador.getNome() + " (guardado)" ); + } + } + } + } + + } ); + } + + private void shout( String message ) + { + labelMessage.setText( message == null ? " " : message ); + } + } diff --git a/trunk/SIPRPSoft/src/siprp/update/UpdateList.java b/trunk/SIPRPSoft/src/siprp/update/UpdateList.java index 2291d3a1..83607f16 100644 --- a/trunk/SIPRPSoft/src/siprp/update/UpdateList.java +++ b/trunk/SIPRPSoft/src/siprp/update/UpdateList.java @@ -29,7 +29,8 @@ public class UpdateList new siprp.update.updates.V7_5_To_V7_6(), new siprp.update.updates.V7_6_To_V7_7(), new siprp.update.updates.V7_7_To_V7_8(), new siprp.update.updates.V7_8_To_V7_9(), new siprp.update.updates.V7_9_To_V8_0(), new siprp.update.updates.V8_0_To_V8_1(), - new siprp.update.updates.V8_1_To_V8_2(), new siprp.update.updates.V8_2_To_V8_3(), new siprp.update.updates.V8_3_To_V8_4() }; + new siprp.update.updates.V8_1_To_V8_2(), new siprp.update.updates.V8_2_To_V8_3(), + new siprp.update.updates.V8_3_To_V8_4(), new siprp.update.updates.V8_4_To_V8_5() }; protected static Executer EXECUTER; protected static double version = -1; diff --git a/trunk/SIPRPSoft/src/siprp/update/updates/V8_4_To_V8_5.java b/trunk/SIPRPSoft/src/siprp/update/updates/V8_4_To_V8_5.java new file mode 100644 index 00000000..a647f1bd --- /dev/null +++ b/trunk/SIPRPSoft/src/siprp/update/updates/V8_4_To_V8_5.java @@ -0,0 +1,59 @@ +/* + * V8_12_To_V8_3.java + * + * Created on December 19, 2007, 3:12 PM + * + * To change this template, choose Tools | Template Manager + * and open the template in the editor. + */ + +package siprp.update.updates; + +import com.evolute.utils.Singleton; +import com.evolute.utils.db.DBManager; +import com.evolute.utils.db.Executer; +import com.evolute.utils.sql.Assignment; +import com.evolute.utils.sql.Field; + +/** + * + * @author tsimao + * + */ +public class V8_4_To_V8_5 implements siprp.update.Update +{ + public V8_4_To_V8_5() + { + } + + public String[] listChanges() + { + return new String[] { + "Adicionado analisador [prestador] por PrtGruposProtocolo" + }; + } + + public double getStartVersion() + { + return 8.4; + } + + public double getEndVersion() + { + return 8.5; + } + + public void doUpdate() throws Exception + { + DBManager dbm = (DBManager) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER ); + Executer executer = dbm.getSharedExecuter(); + com.evolute.utils.sql.Update update = new com.evolute.utils.sql.Update( "ALTER TABLE prt_grupos_protocolo ADD COLUMN analisador_id int4;" + + "ALTER TABLE prt_grupos_protocolo ADD CONSTRAINT analisador_id_fkey FOREIGN KEY(analisador_id) REFERENCES prestadores(id);" ); + executer.executeQuery( update ); + } + + public String toString() + { + return "v" + getStartVersion() + " para v" + getEndVersion(); + } +}