Añado los fuentes de java
This commit is contained in:
@@ -0,0 +1,180 @@
|
||||
/**
|
||||
* @(#) Paginacion.java
|
||||
*/
|
||||
|
||||
package com.tarisan.control;
|
||||
|
||||
import com.tarisan.excepcion.ExcepcionTarisan;
|
||||
import com.tarisan.log.*;
|
||||
import java.sql.*;
|
||||
|
||||
/**
|
||||
* Clase de apoyo utilizada para realizar la paginación de los datos.
|
||||
* @author <a href="mailto:sistemas@imqnavarra.com">Dpto. Informática</a>.
|
||||
* @version 1.0, 29/09/2003
|
||||
*/
|
||||
|
||||
public class Paginacion
|
||||
{
|
||||
|
||||
/**
|
||||
* Número de página que se le presenta al usuario.
|
||||
*/
|
||||
private int intNumPagina=0;
|
||||
|
||||
/**
|
||||
* Número de páginas totales de las que está compuesta la consulta realizada por el usuario.
|
||||
* <br>Este valor se calcula utulizando el número de filas por página.
|
||||
*/
|
||||
private int intNumPaginasTotales=0;
|
||||
|
||||
/**
|
||||
* Número de registros totales de los que está compuesta la consulta realizada por el usuario.
|
||||
*/
|
||||
private int intNumRegistrosTotales=0;
|
||||
|
||||
/**
|
||||
* Número de filas por página que se le van a mostrar al usuario.
|
||||
* <br>Este atributo se inicializa cuando se arranca el servidor de aplicaciones.
|
||||
* <br>El valor de este atributo se coge del fichero properties.
|
||||
*/
|
||||
private static int intFilasPorPagina;
|
||||
|
||||
|
||||
/**
|
||||
* Establece en un atributo de la clase el número de filas por página.
|
||||
* @param filasPorPagina Entero que indica el número de filas por pagina.
|
||||
*/
|
||||
public static void setFilasPorPagina(int filasPorPagina)
|
||||
{
|
||||
intFilasPorPagina = filasPorPagina;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Obtiene el número de filas por página utilizados en la paginación.
|
||||
* @return Valor numérico que indica el número de filas por página.
|
||||
*/
|
||||
public static int getFilasPorPagina()
|
||||
{
|
||||
return intFilasPorPagina;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Obtiene el número de página que se le presenta al usuario.
|
||||
* @return Valor numérico que indica el número de página actual.
|
||||
*/
|
||||
public int getNumeroPagina()
|
||||
{
|
||||
return intNumPagina;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Establece en un atributo de la clase el número de la página actual que se le presenta al usuario.
|
||||
* @param numeroPagina Entero que indica el número de pagina.
|
||||
*/
|
||||
public void setNumeroPagina(int numeroPagina)
|
||||
{
|
||||
intNumPagina=numeroPagina;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Obtiene el número de páginas totales.
|
||||
* @return Valor numérico que indica el número de páginas totales.
|
||||
*/
|
||||
public int getNumeroPaginasTotales()
|
||||
{
|
||||
return intNumPaginasTotales;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Obtiene el número de registros totales.
|
||||
* @return Valor numérico que indica el número de registros totales.
|
||||
*/
|
||||
public int getNumeroRegistrosTotales()
|
||||
{
|
||||
return intNumRegistrosTotales;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Inicializa el objeto <code>Paginacion</code> para su uso.
|
||||
* @param rs Objeto <code>ResultSet</code> que contiene los datos de la consulta realizada por el usuario.
|
||||
*/
|
||||
public void inicializarPaginacion(ResultSet rs) throws ExcepcionTarisan
|
||||
{
|
||||
try
|
||||
{
|
||||
rs.last();
|
||||
intNumRegistrosTotales = rs.getRow();
|
||||
rs.beforeFirst();
|
||||
intNumPaginasTotales = intNumRegistrosTotales / intFilasPorPagina;
|
||||
|
||||
if (intNumRegistrosTotales % intFilasPorPagina != 0)
|
||||
intNumPaginasTotales++;
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error al inicializar la paginacion: " + e);
|
||||
throw new ExcepcionTarisan(e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Realiza la paginación de los datos obtenidos. Consiste en posicionarse en el
|
||||
* registro correspondiente a la página que el usuario desea consultar sobre el objeto <code>ResultSet</code>.
|
||||
* @param rs Objeto <code>ResultSet</code> que contiene los datos de la consulta realizada por el usuario.
|
||||
* @param pagina Entero que nos indica la página que el usuario desea visualizar.
|
||||
*/
|
||||
public void realizarPaginacion(ResultSet rs, int pagina) throws ExcepcionTarisan
|
||||
{
|
||||
int posicion;
|
||||
|
||||
try
|
||||
{
|
||||
if (pagina!=0 && intNumRegistrosTotales!=0)
|
||||
{
|
||||
posicion = ((pagina - 1) * intFilasPorPagina);
|
||||
if (posicion == 0)
|
||||
rs.beforeFirst();
|
||||
else
|
||||
rs.absolute(posicion);
|
||||
|
||||
intNumPagina = pagina;
|
||||
}
|
||||
else
|
||||
intNumPagina = 0;
|
||||
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
LogTarisan.logger.log(NivelLog.ERROR, "Error al realizar la paginacion: " + e);
|
||||
throw new ExcepcionTarisan(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Indica si la página cargada se trata de la última página.
|
||||
* @return Valor booleano que indica si es la última página.
|
||||
*/
|
||||
public boolean esUltimaPagina()
|
||||
{
|
||||
return (intNumPagina == intNumPaginasTotales);
|
||||
}
|
||||
|
||||
/**
|
||||
* Indica si la página cargada se trata de la primera página.
|
||||
* @return Valor booleano que indica si es la primera página.
|
||||
*/
|
||||
public boolean esPrimeraPagina()
|
||||
{
|
||||
return (intNumPagina == 1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user