/* * 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 com.evolute.utils.Singleton; import com.evolute.utils.arrays.Object2DArray; import com.evolute.utils.arrays.Virtual2DArray; import com.evolute.utils.db.DBManager; import com.evolute.utils.db.Executer; import com.evolute.utils.sql.Field; 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; /** Creates a new instance of PrestadoresDataProvider */ public PrestadoresDataProvider() throws Exception { DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER ); EXECUTER = dbm.getSharedExecuter( this ); } 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 ); } }