diff --git a/trunk/SIPRPSoft/lib/evolute.jar b/trunk/SIPRPSoft/lib/evolute.jar index 7fb5c3d4..68f2b627 100644 Binary files a/trunk/SIPRPSoft/lib/evolute.jar and b/trunk/SIPRPSoft/lib/evolute.jar differ diff --git a/trunk/SIPRPSoft/lib/shst.jar b/trunk/SIPRPSoft/lib/shst.jar index 13996437..3944eec7 100644 Binary files a/trunk/SIPRPSoft/lib/shst.jar and b/trunk/SIPRPSoft/lib/shst.jar differ diff --git a/trunk/SIPRPSoft/properties/1-development/app.properties b/trunk/SIPRPSoft/properties/1-development/app.properties index 78a15754..2f1f4602 100644 --- a/trunk/SIPRPSoft/properties/1-development/app.properties +++ b/trunk/SIPRPSoft/properties/1-development/app.properties @@ -18,6 +18,7 @@ app.resources.j2se.initial-heap-size=256m app.resources.j2se.version=1.6.0+ shst.prestador.omissao.id=35 +shst.prestador.analisador.tab = true module_spellchecker=true diff --git a/trunk/SIPRPSoft/properties/2-testing/app.properties b/trunk/SIPRPSoft/properties/2-testing/app.properties index 6052a13d..c0e2b76f 100644 --- a/trunk/SIPRPSoft/properties/2-testing/app.properties +++ b/trunk/SIPRPSoft/properties/2-testing/app.properties @@ -27,6 +27,7 @@ jnlp.information.vendor=Evolute Lda jnlp.information.title=SIPRPSoft shst.prestador.omissao.id=35 +shst.prestador.analisador.tab = true module_spellchecker=true diff --git a/trunk/SIPRPSoft/properties/3-production/app.properties b/trunk/SIPRPSoft/properties/3-production/app.properties index 34e4c99e..fe047710 100644 --- a/trunk/SIPRPSoft/properties/3-production/app.properties +++ b/trunk/SIPRPSoft/properties/3-production/app.properties @@ -26,6 +26,7 @@ jnlp.information.vendor=Evolute Lda jnlp.information.title=SIPRPSoft shst.prestador.omissao.id=35 +shst.prestador.analisador.tab = true module_spellchecker=true diff --git a/trunk/SIPRPSoft/properties/4-WebApps/app.properties b/trunk/SIPRPSoft/properties/4-WebApps/app.properties index 28c3619e..4692efc4 100644 --- a/trunk/SIPRPSoft/properties/4-WebApps/app.properties +++ b/trunk/SIPRPSoft/properties/4-WebApps/app.properties @@ -27,6 +27,7 @@ jnlp.information.vendor=Evolute Lda jnlp.information.title=SIPRPSoft shst.prestador.omissao.id=35 +shst.prestador.analisador.tab = true app.icon.path=logo/icon.png diff --git a/trunk/SIPRPSoft/src/siprp/SIPRPTracker.java b/trunk/SIPRPSoft/src/siprp/SIPRPTracker.java index be92c9cd..bce3bcd8 100644 --- a/trunk/SIPRPSoft/src/siprp/SIPRPTracker.java +++ b/trunk/SIPRPSoft/src/siprp/SIPRPTracker.java @@ -19,8 +19,10 @@ import shst.higiene.mapa.MapaHigieneWindow; import shst.higiene.marcacoes.MarcacoesHigieneInterface; import shst.higiene.marcacoes.MarcacoesHigieneWindow; +import shst.medicina.MedicinaWindow; import shst.medicina.MedicinaWindowInterface; import shst.medicina.multi.MultiMarcacoesWindow; +import shst.medicina.prestadores.PrestadoresWindow; import siprp.clientes.AvisosPanel; import siprp.companydataloaders.SIPRPPropertiesLoader; import siprp.cursos.SIPRPCursosInit; @@ -30,12 +32,10 @@ import siprp.higiene.gestao.GestaoRelatorioWindow; import siprp.higiene.relatorio.RelatorioHigieneSegurancaWindow; import siprp.impressaofichas.ImpressaoFichasWindow; import siprp.lembretes.LembretesWindow; -import siprp.medicina.MedicinaWindow; import siprp.medicina.exames.ui.RecepcaoExamesWindow; import siprp.medicina.locais_analise.EnviarAnalisesWindow; import siprp.medicina.locais_realizacao.LocaisRealizacaoWindow; import siprp.medicina.presencas.RegistarPresencasWindow; -import siprp.medicina.prestadores.PrestadoresWindow; import siprp.pesquisas.RelatorioAnualWindow; import com.evolute.module.cursos.CursosWindow; diff --git a/trunk/SIPRPSoft/src/siprp/clientes/EstabelecimentoPanel.java b/trunk/SIPRPSoft/src/siprp/clientes/EstabelecimentoPanel.java index ac3d5e5b..ccd9fbab 100644 --- a/trunk/SIPRPSoft/src/siprp/clientes/EstabelecimentoPanel.java +++ b/trunk/SIPRPSoft/src/siprp/clientes/EstabelecimentoPanel.java @@ -32,12 +32,12 @@ import javax.swing.JTextField; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; +import shst.medicina.prestadores.PrestadoresDataProvider; import siprp.SIPRPTracker; import siprp.SingletonConstants; import siprp.data.outer.EmpresasData; import siprp.data.outer.EstabelecimentosData; import siprp.data.outer.HistoricoEstabelecimentoData; -import siprp.medicina.prestadores.PrestadoresDataProvider; import com.evolute.entity.ProviderInterface; import com.evolute.utils.Singleton; diff --git a/trunk/SIPRPSoft/src/siprp/medicina/locais_analise/EnviarAnalisesWindowLogic.java b/trunk/SIPRPSoft/src/siprp/medicina/locais_analise/EnviarAnalisesWindowLogic.java index ec835ef2..08becee8 100644 --- a/trunk/SIPRPSoft/src/siprp/medicina/locais_analise/EnviarAnalisesWindowLogic.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/locais_analise/EnviarAnalisesWindowLogic.java @@ -4,9 +4,9 @@ import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Date; +import shst.medicina.prestadores.PrestadoresDataProvider; import siprp.medicina.locais_realizacao.LocaisRealizacaoConstants; import siprp.medicina.locais_realizacao.LocaisRealizacaoDataProvider; -import siprp.medicina.prestadores.PrestadoresDataProvider; import com.evolute.utils.data.IDObject; import com.evolute.utils.ui.DialogException; diff --git a/trunk/SIPRPSoft/src/siprp/medicina/locais_realizacao/LocaisRealizacaoWindow.java b/trunk/SIPRPSoft/src/siprp/medicina/locais_realizacao/LocaisRealizacaoWindow.java index f46681d9..cbf427bb 100644 --- a/trunk/SIPRPSoft/src/siprp/medicina/locais_realizacao/LocaisRealizacaoWindow.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/locais_realizacao/LocaisRealizacaoWindow.java @@ -36,7 +36,7 @@ import javax.swing.event.ChangeListener; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; -import siprp.medicina.prestadores.PrestadoresDataProvider; +import shst.medicina.prestadores.PrestadoresDataProvider; import siprp.ui.SIPRPFrame; import com.evolute.utils.data.IDObject; diff --git a/trunk/SIPRPSoft/src/siprp/medicina/presencas/RegistarPresencasWindow.java b/trunk/SIPRPSoft/src/siprp/medicina/presencas/RegistarPresencasWindow.java index 9845f831..48ae7311 100644 --- a/trunk/SIPRPSoft/src/siprp/medicina/presencas/RegistarPresencasWindow.java +++ b/trunk/SIPRPSoft/src/siprp/medicina/presencas/RegistarPresencasWindow.java @@ -40,9 +40,10 @@ import org.jdom.Document; import org.jdom.Element; import org.jdom.output.XMLOutputter; +import shst.medicina.prestadores.PrestadoresDataProvider; import siprp.clientes.ClientesDataProvider; import siprp.medicina.MedicinaDataProvider; -import siprp.medicina.prestadores.PrestadoresDataProvider; + import siprp.ui.SIPRPFrame; import siprp.util.fop.FOPCreator; import siprp.util.fop.FOPPrinter; diff --git a/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresDataProvider.java b/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresDataProvider.java deleted file mode 100644 index 43d48aec..00000000 --- a/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresDataProvider.java +++ /dev/null @@ -1,238 +0,0 @@ -/* - * PrestadoresDataProvider.java - * - * Created on February 2, 2007, 9:53 AM - * - * To change this template, choose Tools | Template Manager - * and open the template in the editor. - */ - -package siprp.medicina.prestadores; - -import siprp.data.outer.ContactosData; -import siprp.data.outer.PrestadoresData; - -import com.evolute.entity.ProviderInterface; -import com.evolute.utils.Singleton; -import com.evolute.utils.arrays.Object2DArray; -import com.evolute.utils.arrays.Virtual2DArray; -import com.evolute.utils.data.IDObject; -import com.evolute.utils.data.MappableObject; -import com.evolute.utils.db.DBManager; -import com.evolute.utils.db.Executer; -import com.evolute.utils.sql.Assignment; -import com.evolute.utils.sql.Begin; -import com.evolute.utils.sql.Commit; -import com.evolute.utils.sql.Delete; -import com.evolute.utils.sql.Field; -import com.evolute.utils.sql.Insert; -import com.evolute.utils.sql.Rollback; -import com.evolute.utils.sql.Select; -import com.evolute.utils.ui.search.SearchDialog; -import com.evolute.utils.ui.search.SearchExecuter; - -/** - * - * @author fpalma - */ -public class PrestadoresDataProvider - implements SearchExecuter -{ - private static final Object LOCK = new Object(); - private static PrestadoresDataProvider instance = null; - - private static final String SEARCH_TITLE = "Procurar prestadores"; - private static final String SEARCH_COLUMNS[] = - new String[]{ "Designa\u00e7\u00e3o", "Servi\u00e7os" }; - - private Executer EXECUTER; - - private ProviderInterface JDO; - - /** Creates a new instance of PrestadoresDataProvider */ - public PrestadoresDataProvider() - throws Exception - { - DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER ); - EXECUTER = dbm.getSharedExecuter( this ); - JDO = ( ProviderInterface ) Singleton.getInstance( Singleton.DEFAULT_EVO_DATA_PROVIDER ); - } - - public static PrestadoresDataProvider getProvider() - throws Exception - { - synchronized( LOCK ) - { - if( instance == null ) - { - instance = new PrestadoresDataProvider(); - } - } - return instance; - } - - public boolean hasDetails() - { - return false; - } - - public String getSearchTitle() - { - return SEARCH_TITLE; - } - - public String[] getColumnNames() - { - return SEARCH_COLUMNS; - } - - public void showDetails(SearchDialog dialog, Object o) throws Exception - { - } - - public Virtual2DArray search(String pattern) throws Exception - { - pattern = pattern.trim().toLowerCase(); - pattern = pattern.replace( ' ', '%' ); - Select select = - new Select( new String[]{ "prestadores" }, - new String[]{ "id", "nome", "faz_consultas", "faz_ecds", "nome_plain" }, - new Field( "nome_plain" ).isLike( "%" + pattern + "%" ), - new String[]{ "nome_plain" }, - null ); - Virtual2DArray array = EXECUTER.executeQuery( select ); - Object data[][] = new Object[ array.columnLength() ][ 3 ]; - for( int n = 0; n < data.length; n++ ) - { - data[ n ][ 0 ] = array.get( n, 0 ); - data[ n ][ 1 ] = array.get( n, 1 ); - String str = ""; - if( "y".equals( array.get( n, 2 ) ) ) - { - str += "consultas"; - } - if( "y".equals( array.get( n, 3 ) ) ) - { - str += ( str.length() > 0 ? ", " : "" ) + "ecds"; - } - data[ n ][ 2 ] = str; - } - return new Object2DArray( data ); - } - - public void setGruposProtocoloForPrestador( Integer prestadorID, Integer gruposProtocoloID[] ) - throws Exception - { - EXECUTER.executeQuery( Begin.BEGIN ); - try - { - Delete delete = new Delete( "prestadores_grupos_protocolo", - new Field( "prestador_id" ).isEqual( prestadorID ) ); - EXECUTER.executeQuery( delete ); - Insert insert = - new Insert( "prestadores_grupos_protocolo", - new Assignment[]{ - new Assignment( new Field( "prestador_id" ), prestadorID ), - new Assignment( new Field( "grupo_protocolo_id" ), gruposProtocoloID ) } ); - EXECUTER.executeQuery( insert ); - } - catch( Exception ex ) - { - EXECUTER.executeQuery( Rollback.ROLLBACK ); - } - EXECUTER.executeQuery( Commit.COMMIT ); - } - - public Integer []getGruposProtocoloIDByPrestadorID( Integer prestadorID ) - throws Exception - { - Select select = - new Select( new String[]{ "prestadores_grupos_protocolo" }, - new String[]{ "grupo_protocolo_id" }, - new Field( "prestador_id" ).isEqual( prestadorID ) ); - Virtual2DArray array = EXECUTER.executeQuery( select ); - Integer ids[] = new Integer[ array.columnLength() ]; - for( int n = 0; n < ids.length; n++ ) - { - ids[ n ] = ( Integer ) array.get( n, 0 ); - } - return ids; - } - - public PrestadoresData getPrestadorByID( Integer id ) - throws Exception - { - return ( PrestadoresData ) JDO.load( PrestadoresData.class, id ); - } - - public void savePrestador( PrestadoresData prestador ) - throws Exception - { - if( prestador.get( PrestadoresData.CONTACTO_ID ) instanceof ContactosData ) - { - ContactosData contacto = ( ContactosData )prestador.get( PrestadoresData.CONTACTO_ID ); - contacto.save(); - prestador.set( PrestadoresData.CONTACTO_ID, contacto.get( ContactosData.ID ) ); - } - prestador.save(); - } - - public IDObject[] getPrestadoresActivos() - throws Exception - { - Select select = - new Select( new String[]{ "prestadores" }, - new String[]{ "id", "nome", "nome_plain" }, - new Field( "activo" ).isEqual( "y" ), - new String[]{ "nome_plain" }, null ); - Virtual2DArray array = EXECUTER.executeQuery( select ); - IDObject prestadores[] = new IDObject[ array.columnLength() ]; - for( int n = 0; n < prestadores.length; n++ ) - { - Integer id = ( Integer ) array.get( n, 0 ); - String nome = ( String ) array.get( n, 1 ); - prestadores[ n ] = new MappableObject( id, nome ); - } - return prestadores; - } - - public IDObject[] getPrestadoresConsultasActivos() - throws Exception - { - Select select = - new Select( new String[]{ "prestadores" }, - new String[]{ "id", "nome", "nome_plain" }, - new Field( "activo" ).isEqual( "y" ).and( - new Field( "faz_consultas" ).isEqual( "y" ) ), - new String[]{ "nome_plain" }, null ); - Virtual2DArray array = EXECUTER.executeQuery( select ); - IDObject prestadores[] = new IDObject[ array.columnLength() ]; - for( int n = 0; n < prestadores.length; n++ ) - { - Integer id = ( Integer ) array.get( n, 0 ); - String nome = ( String ) array.get( n, 1 ); - prestadores[ n ] = new MappableObject( id, nome ); - } - return prestadores; - } - - public IDObject[] getPrestadoresECDsActivos() - throws Exception - { - Select select = - new Select( new String[]{ "prestadores" }, - new String[]{ "id", "nome", "nome_plain" }, - new Field( "activo" ).isEqual( "y" ).and( - new Field( "faz_ecds" ).isEqual( "y" ) ), - new String[]{ "nome_plain" }, null ); - Virtual2DArray array = EXECUTER.executeQuery( select ); - IDObject prestadores[] = new IDObject[ array.columnLength() ]; - for( int n = 0; n < prestadores.length; n++ ) - { - Integer id = ( Integer ) array.get( n, 0 ); - String nome = ( String ) array.get( n, 1 ); - prestadores[ n ] = new MappableObject( id, nome ); - } - return prestadores; - } -} diff --git a/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresWindow.java b/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresWindow.java deleted file mode 100644 index d863c36f..00000000 --- a/trunk/SIPRPSoft/src/siprp/medicina/prestadores/PrestadoresWindow.java +++ /dev/null @@ -1,446 +0,0 @@ -/* - * PrestadoresWindow.java - * - * Created on February 2, 2007, 9:44 AM - * - * To change this template, choose Tools | Template Manager - * and open the template in the editor. - */ - -package siprp.medicina.prestadores; - -import static com.evolute.utils.strings.UnicodeLatin1Map.ccedil; -import static com.evolute.utils.strings.UnicodeLatin1Map.otilde; -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.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 leaf.ui.LeafDialog; -import siprp.clientes.ClientesDataProvider; -import siprp.clientes.ContactoPanel; -import siprp.data.outer.PrestadoresData; -import siprp.data.outer.PrtGruposProtocoloData; -import siprp.data.provider.MedicinaDataProvider; -import siprp.ui.SIPRPEditorWindow; - -import com.evolute.utils.data.IDObject; -import com.evolute.utils.dataui.ComponentController; -import com.evolute.utils.dataui.ComponentsHashtable; -import com.evolute.utils.dataui.wrappers.JTextComponentPlainFillerSaver; -import com.evolute.utils.error.ErrorLogger; -import com.evolute.utils.ui.DialogException; -import com.evolute.utils.ui.panel.CheckBoxPanel; -import com.evolute.utils.ui.search.SearchDialog; - -/** - * - * @author fpalma - */ -public class PrestadoresWindow extends SIPRPEditorWindow -{ - private static final long serialVersionUID = 1L; - - public static final String TITLE = "Prestadores"; - - protected JTextField nomeText; - protected JCheckBox activoCheck; - protected JCheckBox consultasCheck; - protected JCheckBox ecdsCheck; - protected CheckBoxPanel ecdsPanel; - protected JTextArea moradaText; - protected JTextField codigoPostalText; - protected JTextField localidadeCodigoPostalText; - 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; - - 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( "Tipos de ECDs" ); - private final JLabel labelAnalisador = new JLabel( "Analisadores" ); - 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 MedicinaDataProvider medicinaCayenneDAO; - - /** Creates a new instance of PrestadoresWindow */ - public PrestadoresWindow() throws Exception - { - super( new int[][] { - { - NEW_INDEX, EDIT_INDEX, CANCEL_INDEX, SAVE_INDEX, DELETE_INDEX, SELECT_BYNAME_INDEX - } - } ); - provider = PrestadoresDataProvider.getProvider(); - clientesProvider = (ClientesDataProvider) ClientesDataProvider.getProvider(); - medicinaCayenneDAO = MedicinaDataProvider.getProvider(); - setupComponents(); - setupComponentsHashtable(); - } - - private void setupComponents() - { - setTitle( TITLE ); - setSize( 800, 600 ); - tabbedPane.addTab( "Prestadores", prestadoresPanel ); - tabbedPane.addTab( "Analisadores", analisadoresPanel ); - - setupAnalisadoresTab(); - setupPrestadoresTab(); - // pack(); - } - - private void setupPrestadoresTab() - { - try - { - 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 ) - { - e.printStackTrace(); - } - } - - private void setupComponentsHashtable() - { - components = new ComponentsHashtable(); - components.putComponent( PrestadoresData.NOME, nomeText ); - components.putComponent( PrestadoresData.NOME_PLAIN, new JTextComponentPlainFillerSaver( nomeText ) ); - components.putComponent( PrestadoresData.MORADA, moradaText ); - components.putComponent( PrestadoresData.CODIGO_POSTAL, codigoPostalText ); - 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 ); - - components.putComponent( PrestadoresData.TO_CONTACTO_ID, contactoPanel ); - -// components.putComponent( PrestadoresData.CONTACTO_ID, -// new JDOControllable( (ProviderInterface) Singleton.getInstance( Singleton.DEFAULT_EVO_DATA_PROVIDER ), ContactosData.class, new String[] { -// ContactosData.ID -// }, contactoPanel ) ); - - } - - public boolean searchByName() - { - SearchDialog search = new SearchDialog( provider ); - Integer id = (Integer) search.getSelected(); - if( id == null ) - { - return false; - } - clear( 0 ); - try - { - prestador = provider.getPrestadorByID( id ); - gruposProtocolo = provider.getGruposProtocoloIDByPrestadorID( id ); - reload( 0 ); - } catch( Exception ex ) - { - DialogException.showExceptionMessage( ex, "Ocorreu um erro a carregar o prestador.", true ); - return false; - } - - return true; - } - - public void enableComponents( int index, boolean enable ) - { - 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] ); - ComponentController.fill( names, prestador.getHashData(), components ); - ecdsPanel.setSelected( gruposProtocolo ); - } 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] ); - 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] ); - Map data = prestador.getHashData(); - ComponentController.save( names, data, components ); - prestador.setHashData( data ); - - gruposProtocolo = ecdsPanel.getSelected(); - try - { - provider.savePrestador( prestador ); - provider.setGruposProtocoloForPrestador( (Integer) prestador.get( PrestadoresData.ID ), gruposProtocolo ); - } - catch( Exception ex ) - { - ErrorLogger.logExceptionAndShow( 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.MINIMUM, 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( PrtGruposProtocoloData grupo : listGrupos ) - { - JLabel label = new JLabel( grupo.getDescricao() ); - mapLabel.put( grupo, label ); - JComboBox combo = new JComboBox( analisadores ); - PrestadoresData analisador = grupo.toAnalisador_id(); - combo.setSelectedItem( analisador == null ? PrestadoresData.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 ) - { - PrtGruposProtocoloData 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( PrtGruposProtocoloData grupo : listGrupos ) - { - JComboBox combo = mapComboBox.get( grupo ); - setupListenersFor( combo ); - } - } - - private void setupListenersFor( JComboBox combo ) - { - combo.addItemListener( new ItemListener() - { - - @Override - public void itemStateChanged( ItemEvent itemEvent ) - { - try - { - if( ItemEvent.SELECTED == itemEvent.getStateChange() ) - { - JComboBox combo = (JComboBox) itemEvent.getSource(); - for( PrtGruposProtocoloData grupo : mapComboBox.keySet() ) - { - if( mapComboBox.get( grupo ).equals( combo ) ) - { - PrestadoresData analisador = (PrestadoresData) combo.getSelectedItem(); - grupo.setToAnalisador_id( PrestadoresData.prestadorNulo.equals( analisador ) ? null : analisador ); - grupo.save(); - shout( "Tipo de ECD: " + grupo.getDescricao() + " -> Analisador: " + analisador.getNome() + " [guardado]" ); - } - } - } - } catch( Exception e ) - { - LeafDialog.error( e ); - } - } - - } ); - } - - private void shout( String message ) - { - labelMessage.setText( message == null ? " " : message ); - } - -}