es.mcu.yingo.vista
Class DatosVistaVerDetalleImp

java.lang.Object
  extended by es.mcu.yingo.vista.DatosVistaAbstracto
      extended by es.mcu.yingo.vista.DatosVistaVerDetalleImp
All Implemented Interfaces:
DatosVistaVerDetalle

public class DatosVistaVerDetalleImp
extends DatosVistaAbstracto
implements DatosVistaVerDetalle

Implementación que recupera los datos del expediente para conocer el detalle
Esto se realiza en el controlador ControladorVerForm

Los permisos en esta clase funcionan del modo siguiente:
En el caso de que no se definan alguna de las propiedades de permiso, por defecto se concede el permiso para ver todos los datos a los que hace referencia.

Author:
carlos.garcia.h
See Also:
ControladorVerForm, AplicacionTipoImpl.getCamposMostrarDetalle()

Field Summary
protected  org.apache.commons.logging.Log logger
          Log de la aplicación
private  java.util.Map<java.lang.String,java.util.List<Campo>> permisoCamposSegunRol
          Relación de roles, con los campos que puede ver cada rol Si esta propiedad es null, todos ven todos los campos definidos en la lista de campos de la aplicación tipo
private  Permisos permisoExpedienteCompleto
          Define quien puede acceder a ver el detalle del expediente y quien no.
private  Permisos permisoParaVerPendientes
          Objeto que define los permisos para ver las tareas pendientes.
private  Permisos permisoParaVerRealizadas
          Objeto que define los permisos para ver las tareas realizadas.
private  SpringContextUtil springContextUtil
          Utilidad de contexto de la aplicación
 
Constructor Summary
DatosVistaVerDetalleImp()
          Constructor por defecto
 
Method Summary
protected  java.util.Map<java.lang.String,java.lang.String> cargarDatosExpediente(java.lang.String codExpediente, Usuario usuario)
          Carga los datos del expediente, filtrando los campos segun el rol que posea el usuario
private  void cargarDatosPorRol(java.lang.String rol, java.util.Map datos, java.util.Map<java.lang.String,java.lang.String> datosExpediente)
          Obtiene los datos del expedientes permitidos por el rol del usuario
protected  java.util.Collection cargarTareasPendientes(java.lang.String codExpediente, Usuario usuario)
          Obtiene las tareas pendientes del expediente.
protected  java.util.Collection cargarTareasRealizadas(java.lang.String codExpediente, Usuario usuario)
          Obtiene las tareas realizadas del expediente.
protected  java.util.Map<java.lang.String,java.lang.Object> datosRealizadaAMap(Dao dao, TareasRealizadas tarea, Usuario usuario)
          Devuelve un map con los datos de la tarea realizada.
 java.util.Map<java.lang.String,java.util.List<Campo>> getPermisoCamposSegunRol()
          Relación de roles, con los campos que puede ver cada rol
 Permisos getPermisoExpedienteCompleto()
          Define quien puede acceder a ver el detalle del expediente y quien no.
 Permisos getPermisoParaVerPendientes()
          Objeto que define los permisos para ver las tareas pendientes
 Permisos getPermisoParaVerRealizadas()
          Objeto que define los permisos para ver las tareas realizadas
 SpringContextUtil getSpringContextUtil()
           
 java.util.Map obtener(java.lang.String codExpediente, Usuario usuario)
          Obtiene todos los datos necesarios para mostrar el detalle del expediente
private  ListaCampos obtenerListaCampos()
          Obtiene la lista de campos con la que se mostrará el detalle
protected  java.util.Collection<TareasRealizadas> obtenerListaTareasRealizadas(java.lang.String codExpediente)
          Obtiene la lista de tareas realizadas
 void setPermisoCamposSegunRol(java.util.Map<java.lang.String,java.util.List<Campo>> permisoCamposSegunRol)
          Relación de roles, con los campos que puede ver cada rol
 void setPermisoExpedienteCompleto(Permisos permisoExpedienteCompleto)
          Define quien puede acceder a ver el detalle del expediente y quien no.
 void setPermisoParaVerPendientes(Permisos permisoParaVerPendientes)
          Objeto que define los permisos para ver las tareas pendientes
 void setPermisoParaVerRealizadas(Permisos permisoParaVerRealizadas)
          Objeto que define los permisos para ver las tareas realizadas
 void setSpringContextUtil(SpringContextUtil springContextUtil)
           
protected  boolean tienePermisoCancelar(Dao dao, java.lang.String codExpediente, Usuario usuario, java.util.Collection datosTarPendientes)
          Si se ha definido una tarea "estandar" de cancelación, esto es, una tarea cuyo id es igual a .cancelacion, y los permisos asociados a esa tarea son concedidos al usuario, devuelve true.
private  boolean tienePermisoPendientes(TareasPendientesId id, Usuario usuario)
          Comprueba si tiene permiso para ver las Pendientes
private  boolean tienePermisoRealizadas(TareasRealizadasId id, Usuario usuario)
          Comprueba si tiene permiso para ver las Realizadas
 
Methods inherited from class es.mcu.yingo.vista.DatosVistaAbstracto
getBaseDatos, getDaoConsultas, getIdAplicacion, setBaseDatos, setDaoConsultas, setIdAplicacion
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected final org.apache.commons.logging.Log logger
Log de la aplicación


springContextUtil

private SpringContextUtil springContextUtil
Utilidad de contexto de la aplicación


permisoExpedienteCompleto

private Permisos permisoExpedienteCompleto
Define quien puede acceder a ver el detalle del expediente y quien no. Si no se tiene permiso, no se ve ningun dato del expediente, ni tareas pendientes, ni realizadas, ni datos


permisoParaVerPendientes

private Permisos permisoParaVerPendientes
Objeto que define los permisos para ver las tareas pendientes. Se retira del detalle la tarea para la cual no se tiene permiso Por defecto se muestran todas si no se configura esta propiedad


permisoParaVerRealizadas

private Permisos permisoParaVerRealizadas
Objeto que define los permisos para ver las tareas realizadas. Se retira del detalle la tarea para la cual no se tiene permiso. Por defecto se muestran todas si no se configura esta propiedad


permisoCamposSegunRol

private java.util.Map<java.lang.String,java.util.List<Campo>> permisoCamposSegunRol
Relación de roles, con los campos que puede ver cada rol Si esta propiedad es null, todos ven todos los campos definidos en la lista de campos de la aplicación tipo

Constructor Detail

DatosVistaVerDetalleImp

public DatosVistaVerDetalleImp()
Constructor por defecto

Method Detail

obtener

public java.util.Map obtener(java.lang.String codExpediente,
                             Usuario usuario)
                      throws YingoException
Obtiene todos los datos necesarios para mostrar el detalle del expediente

Specified by:
obtener in interface DatosVistaVerDetalle
Parameters:
dao -
codExpediente -
usuario -
Returns:
Throws:
YingoException

cargarDatosExpediente

protected java.util.Map<java.lang.String,java.lang.String> cargarDatosExpediente(java.lang.String codExpediente,
                                                                                 Usuario usuario)
Carga los datos del expediente, filtrando los campos segun el rol que posea el usuario

Parameters:
codExpediente -
usuario -
Returns:

cargarDatosPorRol

private void cargarDatosPorRol(java.lang.String rol,
                               java.util.Map datos,
                               java.util.Map<java.lang.String,java.lang.String> datosExpediente)
Obtiene los datos del expedientes permitidos por el rol del usuario

Parameters:
rol -
datos -
datosExpediente -

obtenerListaCampos

private ListaCampos obtenerListaCampos()
Obtiene la lista de campos con la que se mostrará el detalle

Returns:

cargarTareasPendientes

protected java.util.Collection cargarTareasPendientes(java.lang.String codExpediente,
                                                      Usuario usuario)
                                               throws YingoException
Obtiene las tareas pendientes del expediente. La implementación estandar devuelve a la vista los objetos de negocio de la tabla TAREAS_PENDIENTES, lo cual no nos ofrece en la vista (jsp) demasiada información.

Si queremo añadir información a cada una de las tareas pendientes, se puede sobreescribir este método y devolver una colección de datos de otro tipo, por ejemplo: Cruzamos en una vista de base de datos, los datos de la tabla TAREAS_PENDIENTES con datos de otro tipo y mapeamos la vista en el objeto de negocio "VistaPendientesConDatosExtra". Devolvería este método una colección de objetos de este tipo, y en la jsp, podríamos recuperarlo como pendiente.propiedad_a, pendiente.propiedad_b...

Parameters:
dao -
codExpediente -
datosTarPendientes -
Returns:
Throws:
YingoException

tienePermisoPendientes

private boolean tienePermisoPendientes(TareasPendientesId id,
                                       Usuario usuario)
                                throws BaseDatosYingoException,
                                       YingoException
Comprueba si tiene permiso para ver las Pendientes

Parameters:
id -
usuario -
Returns:
Throws:
BaseDatosYingoException
YingoException

cargarTareasRealizadas

protected java.util.Collection cargarTareasRealizadas(java.lang.String codExpediente,
                                                      Usuario usuario)
                                               throws BaseDatosYingoException,
                                                      YingoException
Obtiene las tareas realizadas del expediente. En la vista, podremos mostrar los datos de la tabla TAREAS_RALIZADAS en la jsp, lo cual no dice mucho, idTarea, idUsuario, fecha... Si en la vista (jsp), se quieren recuperar más datos relacionados con la tareas realizadas, de puede sobreescribir este método y devolver una colección de objetos que nos de más informació, por ejemplo, se puede crear una vista de base de datos que cruce la tarea realizada con los datos del expediente de modo que devuelva Collection. De este modo en la vista, se pueden recorrer el objeto y extraer la información completa, por ejemplo. realizada.idTarea, realizada.nombreCompleto...

Parameters:
dao -
codExpediente -
datosExpediente -
datosTareasRealizadas -
Returns:
Throws:
YingoException
BaseDatosYingoException

datosRealizadaAMap

protected java.util.Map<java.lang.String,java.lang.Object> datosRealizadaAMap(Dao dao,
                                                                              TareasRealizadas tarea,
                                                                              Usuario usuario)
Devuelve un map con los datos de la tarea realizada. En el caso de que se quiera envíar al map de datos que será enviado a la vista mas datos, sobreescribir este método, poe ejemplo:

mapDatos.put( "tarea", tarea );
mapDatos.put( "dato_a", objeto_a );
mapDatos.put( "sato_b", onjeto_b );

Parameters:
dao -
tareasRealizadas -
Returns:

obtenerListaTareasRealizadas

protected java.util.Collection<TareasRealizadas> obtenerListaTareasRealizadas(java.lang.String codExpediente)
                                                                       throws BaseDatosYingoException
Obtiene la lista de tareas realizadas

Parameters:
codExpediente -
Returns:
Throws:
BaseDatosYingoException

tienePermisoRealizadas

private boolean tienePermisoRealizadas(TareasRealizadasId id,
                                       Usuario usuario)
                                throws BaseDatosYingoException,
                                       YingoException
Comprueba si tiene permiso para ver las Realizadas

Parameters:
id -
usuario -
Returns:
Throws:
BaseDatosYingoException
YingoException

tienePermisoCancelar

protected boolean tienePermisoCancelar(Dao dao,
                                       java.lang.String codExpediente,
                                       Usuario usuario,
                                       java.util.Collection datosTarPendientes)
                                throws YingoException
Si se ha definido una tarea "estandar" de cancelación, esto es, una tarea cuyo id es igual a .cancelacion, y los permisos asociados a esa tarea son concedidos al usuario, devuelve true. Si no se ha definido tarea canceladora, o no se tiene permiso, se devuelve false

En la aplicación se pueden definir mútiples tareas de cancelación, que no son otra cosa que tareas "lanzables", que tienen un cancelador asociado, pero en lo que concierne a este DatosVista, la cancelación estandar a la que hace referencia será la comentada anteriormente

En el caso de que se quiera enviar a la vista una lista de tareas calneladoras, se puede sobreescribir este método para gestionar de otro modo los permisos

Parameters:
dao -
codExpediente -
usuario -
datosTarPendientes -
Returns:
Throws:
YingoException

getSpringContextUtil

public SpringContextUtil getSpringContextUtil()
Returns:
the springContextUtil

setSpringContextUtil

public void setSpringContextUtil(SpringContextUtil springContextUtil)
Parameters:
springContextUtil - the springContextUtil to set

getPermisoParaVerPendientes

public Permisos getPermisoParaVerPendientes()
Objeto que define los permisos para ver las tareas pendientes

Returns:
the permisoParaVerPendientes

setPermisoParaVerPendientes

public void setPermisoParaVerPendientes(Permisos permisoParaVerPendientes)
Objeto que define los permisos para ver las tareas pendientes

Parameters:
permisoParaVerPendientes - the permisoParaVerPendientes to set

getPermisoParaVerRealizadas

public Permisos getPermisoParaVerRealizadas()
Objeto que define los permisos para ver las tareas realizadas

Returns:
the permisoParaVerRealizadas

setPermisoParaVerRealizadas

public void setPermisoParaVerRealizadas(Permisos permisoParaVerRealizadas)
Objeto que define los permisos para ver las tareas realizadas

Parameters:
permisoParaVerRealizadas - the permisoParaVerRealizadas to set

getPermisoCamposSegunRol

public java.util.Map<java.lang.String,java.util.List<Campo>> getPermisoCamposSegunRol()
Relación de roles, con los campos que puede ver cada rol

Returns:
the permisoCamposSegunRol

setPermisoCamposSegunRol

public void setPermisoCamposSegunRol(java.util.Map<java.lang.String,java.util.List<Campo>> permisoCamposSegunRol)
Relación de roles, con los campos que puede ver cada rol

Parameters:
permisoCamposSegunRol - the permisoCamposSegunRol to set

getPermisoExpedienteCompleto

public Permisos getPermisoExpedienteCompleto()
Define quien puede acceder a ver el detalle del expediente y quien no. Si no se tiene permiso, no se ve ningun dato del expediente, ni tareas pendientes, ni realizadas, ni datos

Returns:
the permisoExpedienteCompleto

setPermisoExpedienteCompleto

public void setPermisoExpedienteCompleto(Permisos permisoExpedienteCompleto)
Define quien puede acceder a ver el detalle del expediente y quien no. Si no se tiene permiso, no se ve ningun dato del expediente, ni tareas pendientes, ni realizadas, ni datos

Parameters:
permisoExpedienteCompleto - the permisoExpedienteCompleto to set