public class NuevaMedicionPresenter extends java.lang.Object implements PresenterFunctions, PresenterFunctions.NuevaMedicionFunctions
En concreto, se encarga de "cargar" los Spinners con el array de items que le corresponde a a cada uno, obtener toda la informacion sobre el paciente al que se le va a asignar la medicion para enviar esa informacion a la Vista (NuevaMedicionFragment), y que la muestre al usuario.
Se encarga, ademas, de gestionar cuando se cargan los Spinners, asi como las opciones con las que lo hacen en funcion del item seleccionado por el usuario en anteriores Spinners.
Por ultimo, filtra toda la informacion introducida por el usuario con respecto a la nueva medicion y se la envia al Modelo, con el fin de introducirla finalmente en la Base de Datos. Tambien se encarga de indicar a la Vista que muestre al usuario si se ha producido algun error durante el filtrado o almacenamiento de esta informacion.
Esta clase forma parte de la aplicacion TFG-Goniometer, desarrollada para el Trabajo de Fin de Grado - Grado en Ingenieria Informatica (Universidad de Valladolid)
NuevaMedicionFragment
,
MainModel
PresenterFunctions.HomeFunctions, PresenterFunctions.MainFunctions, PresenterFunctions.MedicionFunctions, PresenterFunctions.NuevaMedicionFunctions, PresenterFunctions.NuevoPacienteFunctions, PresenterFunctions.PacientesFunctions, PresenterFunctions.PerfilPacienteFunctions, PresenterFunctions.SobreAppFunctions, PresenterFunctions.UltimasMedicionesFunctions
Constructor and Description |
---|
NuevaMedicionPresenter(android.app.Fragment fragment,
MainModel model)
Constructor principal de la clase
|
Modifier and Type | Method and Description |
---|---|
void |
getInformacionPaciente(java.lang.String nombre,
int id,
java.lang.String fechaHora,
java.lang.String lecturaGoniometro)
Metodo que se encarga de obtener la informacion relativa a un paciente a partir del nombre e
ID del mismo, mediante una consulta a la Base de Datos.
|
void |
loadSpinners(android.widget.Spinner joint_side,
android.widget.Spinner joint,
android.widget.Spinner movement,
android.widget.Spinner movement_type)
Metodo que se encarga de "cargar" con contenido cada uno de los Spinners inicialmente.
|
void |
onCreate()
Metodo que se encarga de enviar a la Vista (NuevaMedicionFragment) los nombres
de las constantes para obtener los parametros de tipo Bundle recibidos en la
creacion del Fragment.
|
void |
onDestroy()
Perform any final cleanup before an activity is destroyed.
|
void |
onDoneClicked(java.lang.String nombre,
int id,
java.lang.String fecha_hora,
java.lang.String joint_side,
java.lang.String joint,
java.lang.String joint_other,
java.lang.String movement,
java.lang.String movement_other,
java.lang.String movement_type,
java.lang.String movement_type_other,
java.lang.String lectura_goniometro)
Evento ClickListener que se llama cuando el usuario ha pulsado sobre el boton
"HECHO" en NuevaMedicionFragment.
|
void |
onItemSelectedListener(android.widget.Spinner spinner1,
android.widget.Spinner spinner2)
Evento ItemSelectedListener que se llama cuando el usuario ha pulsado sobre alguno
de los elementos de uno de los Spinner en NuevaMedicionFragment.
|
public NuevaMedicionPresenter(android.app.Fragment fragment, MainModel model)
fragment
- Fragmento (Vista) con la que mantiene una relacion 1-a-1.model
- Modelo (unico) de la aplicacion.public void onCreate()
onCreate
in interface PresenterFunctions.NuevaMedicionFunctions
public void loadSpinners(android.widget.Spinner joint_side, android.widget.Spinner joint, android.widget.Spinner movement, android.widget.Spinner movement_type)
Solo se "cargan" por completo los Spinners que indican el lado del cuerpo en el que se hace la medicion, y el que indica si el movimiento ha sido realizado unica y exclusivamente por el paciente, o ha necesitado ayuda para realizarlo.
El resto de Spinners se "cargan" con un valor por defecto para que no aparezan vacios en un principio.
loadSpinners
in interface PresenterFunctions.NuevaMedicionFunctions
joint_side
- Spinner en el que se indica el lado del cuerpo en el que se
encuentra la articulacion sobre la que se ha realizado la medicionjoint
- Spinner en el que se indica la articulacion en concreto que ha
realizado el movimientomovement
- Spinner en el que se indica el movimiento que ha realizado dicha
articulacionmovement_type
- Spinner en el que se indica si el movimiento ha sido realizado
unica y exclusivamente por el usuario, o ha necesitado ayudapublic void getInformacionPaciente(java.lang.String nombre, int id, java.lang.String fechaHora, java.lang.String lecturaGoniometro)
Posteriormente, envia esta informacion a la Vista (NuevaMedicionFragment) para que se la muestre al usuario.
getInformacionPaciente
in interface PresenterFunctions.NuevaMedicionFunctions
nombre
- Nombre del pacienteid
- ID del pacientefechaHora
- Fecha y hora a la que se realizo la medicionlecturaGoniometro
- Lectura final del goniometro (angulo de desplazamiento)public void onItemSelectedListener(android.widget.Spinner spinner1, android.widget.Spinner spinner2)
Se encarga de, en funcion de cual de los 4 Spinner es el que recibe el evento, "cargar" el siguiente Spinner con un determinado Array en funcion del item que se haya seleccionado sobre el primero para, asi, limitar la articulacion y el movimiento que puede introducir el usuario, evitando, de esta manera, introducir valores absurdos en articulaciones que no pueden realizar un determinado movimiento.
Ademas, se encarga de mostrar u ocultar el LinearLayout que contiene el EditText en el que el usuario puede escribir, en caso de haber seleccionado en alguno de los Spinner la opcion "Otro/a".
onItemSelectedListener
in interface PresenterFunctions.NuevaMedicionFunctions
spinner1
- Spinner que recibe el evento ItemSelectedspinner2
- Spinner que, opcionalmente, se "cargara" en funcion del valor
seleccionado en el primer Spinnerpublic void onDoneClicked(java.lang.String nombre, int id, java.lang.String fecha_hora, java.lang.String joint_side, java.lang.String joint, java.lang.String joint_other, java.lang.String movement, java.lang.String movement_other, java.lang.String movement_type, java.lang.String movement_type_other, java.lang.String lectura_goniometro)
Se encarga de:
1.- Verificar que el usuario ha introducido toda la informacion obligatoria (marcada con *). 2.- Enviar la informacion al Modelo para que se introduzca en la Base de Datos. 3.- Solicitar a la Vista (NuevaMedicionFragment) que muestre un mensaje dependiendo de si la insercion en la Base de Datos ha sido exitosa o no. 4.- Si la insercion se realizo con exito, borrar el Fragment actual y mostrar el perfil del paciente actualizado con la nueva medicion ya insertada.
onDoneClicked
in interface PresenterFunctions.NuevaMedicionFunctions
nombre
- Nombre del pacienteid
- ID del pacientefecha_hora
- Fecha y hora de la medicionjoint_side
- Lado en el que se encuentra la articulacion (o columna vertebral)joint
- Articulacion sobre la que se ha realizado la medicionjoint_other
- Articulacion (en caso de haber seleccionado la opcion "Otra" en el
Spinner jointmovement
- Movimiento que ha realizado la articulacionmovement_other
- Movimiento en caso de haber seleccionado la opcion "Otro" en el
Spinner movementmovement_type
- Modo en el que se ha realizado el movimiento (con/sin ayuda)movement_type_other
- Modo en caso de haber seleccionado la opcion "Otro" en el
Spinner movement_typelectura_goniometro
- Lectura final del goniometro (angulo de desplazamiento)public void onDestroy()
Se encarga de liberar la referencia al Fragment con el que esta asociado.
onDestroy
in interface PresenterFunctions