From 253492620864659d1704c32573a527adf9dc758a Mon Sep 17 00:00:00 2001 From: P Santos Date: Thu, 1 Apr 2004 10:56:14 +0000 Subject: [PATCH] no message git-svn-id: https://svn.coded.pt/svn/SIPRP@16 bb69d46d-e84e-40c8-a05a-06db0d633741 --- trunk/siprp/FichaDataProvider.java | 123 ++++++++++++++++++++++++++++- trunk/siprp/Main.java | 21 +++++ trunk/siprp/ficha/FichaWindow.java | 33 +++++++- 3 files changed, 172 insertions(+), 5 deletions(-) diff --git a/trunk/siprp/FichaDataProvider.java b/trunk/siprp/FichaDataProvider.java index b9c508dd..6744235d 100644 --- a/trunk/siprp/FichaDataProvider.java +++ b/trunk/siprp/FichaDataProvider.java @@ -6,17 +6,23 @@ package siprp; +import com.evolute.utils.*; +import com.evolute.utils.arrays.*; +import com.evolute.utils.db.*; import com.evolute.utils.db.keyretrievers.*; import com.evolute.utils.metadb.*; +import com.evolute.utils.ui.search.*; +import com.evolute.utils.sql.*; /** * * @author pars */ -public class FichaDataProvider extends MetaProvider { +public class FichaDataProvider extends MetaProvider implements SearchExecuter { private static final Object LOCK = new Object(); private static FichaDataProvider instance = null; + private final Executer executer; // empresas public static final String T_EMPRESAS = "empresas"; @@ -41,19 +47,20 @@ public class FichaDataProvider extends MetaProvider { // estabelecimentos public static final String T_ESTABELECIMENTOS = "estabelecimentos"; // ID + public static final String NOME = "nome"; public static final String LOCALIDADE = "localidade"; public static final String EMPRESA_ID = "empresa_id"; // INACTIVO public static final DBTable ESTABELECIMENTOS = new DBTable( T_ESTABELECIMENTOS, - new String[]{ LOCALIDADE, EMPRESA_ID, INACTIVO }, + new String[]{ NOME, LOCALIDADE, EMPRESA_ID, INACTIVO }, ID ); // trabalhadores public static final String T_TRABALHADORES = "trabalhadores"; // ID - public static final String NOME = "nome"; + // public static final String NOME = "nome"; public static final String SEXO = "sexo"; public static final String DATA_NASCIMENTO = "data_nascimento"; public static final String NACIONALIDADE = "nacionalidade"; @@ -121,13 +128,27 @@ public class FichaDataProvider extends MetaProvider { throw new RuntimeException( e ); } } + + public static final int SEARCH_EMPRESAS = 0; + public static final int SEARCH_ESTABELECIMENTOS = 1; + public static final int SEARCH_TRABALHADORES = 2; + public static final int SEARCH_EXAMES = 3; + private int SEARCH = 0; + private int SEARCH_EMPRESAS_ID = -1; + private int SEARCH_ESTABELECIMENTOS_ID = -1; + private int SEARCH_TRABALHADORES_ID = -1; + private int SEARCH_EXAMES_ID = -1; + /** Creates a new instance of FichaDataProvider */ public FichaDataProvider() throws Exception { + DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER /*SingletonConstants.DBMANAGER*/ ); + executer = dbm.getSharedExecuter( this ); + setDBTable( EXAMES ); - setKeyRetriever( new JDBCAutoKeyRetriever() ); + setKeyRetriever( JDBCAutoKeyRetriever.DEFAULT ); } public static MetaProvider getProvider() @@ -142,4 +163,98 @@ public class FichaDataProvider extends MetaProvider { } return instance; } + + public String[] getColumnNames() { + return new String[]{ "Nome" }; + } + + public String getSearchTitle() { + switch( SEARCH ) + { + case SEARCH_EMPRESAS: + return "Procurar empresa"; + case SEARCH_ESTABELECIMENTOS: + return "Procurar estabelecimento"; + case SEARCH_TRABALHADORES: + return "Procurar trabalhador"; + case SEARCH_EXAMES: + return "Procurar exame"; + } + return ""; + } + + public boolean hasDetails() { + return false; + } + + public void setSearch( int what ) + { + switch( what ) + { + case SEARCH_EMPRESAS: + case SEARCH_ESTABELECIMENTOS: + case SEARCH_TRABALHADORES: + case SEARCH_EXAMES: + SEARCH = what; + break; + } + } + + public void setSearchID( int what, int id ) + { + switch( what ) + { + case SEARCH_EMPRESAS: + SEARCH_EMPRESAS_ID = id; + break; + case SEARCH_ESTABELECIMENTOS: + SEARCH_ESTABELECIMENTOS_ID = id; + break; + case SEARCH_TRABALHADORES: + SEARCH_TRABALHADORES_ID = id; + break; + case SEARCH_EXAMES: + SEARCH_EXAMES_ID = id; + break; + } + } + + public Virtual2DArray search( String pattern ) throws Exception { + switch( SEARCH ) + { + case SEARCH_EMPRESAS: + return searchEmpresas( pattern ); + case SEARCH_ESTABELECIMENTOS: + return searchEstabelecimentos( pattern ); + case SEARCH_TRABALHADORES: + return searchTrabalhadores( pattern ); + case SEARCH_EXAMES: + return searchExames( pattern ); + } + return null; + } + + public Virtual2DArray searchEmpresas( String pattern ) throws Exception { + Select select = new Select( "SELECT e.id, e.designacao_social FROM empresas e;" ); + return executer.executeQuery( select ); + } + + public Virtual2DArray searchEstabelecimentos( String pattern ) throws Exception { + Select select = new Select( "SELECT e.id, e.nome FROM estabelecimentos e;" ); + return executer.executeQuery( select ); + } + + public Virtual2DArray searchTrabalhadores( String pattern ) throws Exception { + Select select = new Select( "SELECT t.id, t.nome FROM trabalhadores t;" ); + return executer.executeQuery( select ); + } + + public Virtual2DArray searchExames( String pattern ) throws Exception { + Select select = new Select( "SELECT e.id, e.data FROM exames e;" ); + return executer.executeQuery( select ); + } + + public void showDetails(SearchDialog dialog, Object o) throws Exception { + } + } diff --git a/trunk/siprp/Main.java b/trunk/siprp/Main.java index ef9933a0..80a3c63b 100644 --- a/trunk/siprp/Main.java +++ b/trunk/siprp/Main.java @@ -2,13 +2,34 @@ package siprp; import siprp.ficha.*; + +import com.evolute.utils.*; +import com.evolute.utils.db.*; +import com.evolute.utils.jdbc.*; +import com.evolute.utils.sql.*; + public class Main { public static void main( String args[] ) throws Exception { + String server = "192.168.0.12"; + String dbase = "test"; + String user = "admin"; + String passwd = ""; + + DBManager dbm = new JDBCManager( "jdbc:mysql://" + server + "/" + dbase, + user, passwd , 10, 8, 8, null ); + + Singleton.setInstance( Singleton.DEFAULT_DBMANAGER, dbm ); + + StatementExecuterFactory.initialize( + new DBStatementExecuter( dbm.getSharedExecuter() ) ); + + FichaWindow window = new FichaWindow(); + window.show(); } } \ No newline at end of file diff --git a/trunk/siprp/ficha/FichaWindow.java b/trunk/siprp/ficha/FichaWindow.java index 4976fbe1..705fead3 100644 --- a/trunk/siprp/ficha/FichaWindow.java +++ b/trunk/siprp/ficha/FichaWindow.java @@ -6,10 +6,14 @@ package siprp.ficha; +import siprp.*; + import java.awt.*; import javax.swing.*; +import com.evolute.utils.ui.search.*; import com.evolute.utils.ui.window.*; + /** * * @author fpalma @@ -21,7 +25,9 @@ public class FichaWindow extends TabbedWindow private TrabalhadorPanel trabalhadorPanel; private ObservacoesPanel observacoesPanel; private ExamePanel examePanel; - + + private FichaDataProvider fdpProvider; + private static int permissions[][] = new int[][]{ { NEW_INDEX, CANCEL_INDEX, SAVE_INDEX, DELETE_INDEX } }; @@ -33,6 +39,7 @@ public class FichaWindow extends TabbedWindow createPermissions( permissions ) ); setEditorManagerFactory( FichaAptidaoEditorManager.getEditorManagerFactory() ); upperPanel = (UpperPanel) getUpperPanel(); + fdpProvider = ( FichaDataProvider ) FichaDataProvider.getProvider(); setupComponents(); } @@ -105,6 +112,30 @@ public class FichaWindow extends TabbedWindow public boolean newItem( int index ) { + switch( index ) + { + case 0: + fdpProvider.setSearch( FichaDataProvider.SEARCH_EMPRESAS ); + SearchDialog search = new SearchDialog( fdpProvider, null, true, null, false ); + Integer empresaID = ( Integer )search.getSelected(); + + if( empresaID == null ) + { + return false; + } + + fdpProvider.setSearch( FichaDataProvider.SEARCH_ESTABELECIMENTOS ); + fdpProvider.setSearchID( FichaDataProvider.SEARCH_EMPRESAS, empresaID.intValue() ); + search = new SearchDialog( fdpProvider, null, true, null, false ); + Integer estabelecimentoID = ( Integer )search.getSelected(); + + if( estabelecimentoID == null ) + { + return false; + } + + break; + } return true; }