You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SIPRP/trunk/siprp/medicina/prestadores/PrestadoresDataProvider.java

108 lines
2.6 KiB

/*
* 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 );
}
}