Diego Blanco Moreno (diego.blanco@wanadoo.es) Dept. DSIP Univ. Complutense de Madrid 2004 Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 2 de 20 ndice Indice ............................................................................................................................ 2 1 Arquitectura de navegacion .................................................................................. 3 2 Arquitectura de clases........................................................................................... 4 2.1 Gestion de registros ...................................................................................... 4 2.1.1 Registros ............................................................................................... 5 2.1.2 Filtros .................................................................................................... 5 2.2 Midlet Principal ............................................................................................ 6 2.3 Menu Principal.............................................................................................. 7 2.4 Ventana de alta de datos ............................................................................... 9 2.5 Ventana de consulta de datos...................................................................... 10 2.6 Ventana de listado de registros ................................................................... 13 2.7 Ventana de modiIicacion de registro .......................................................... 14 2.8 Ventana de detalle de registro..................................................................... 16 2.9 Ventana de borrado de registro................................................................... 16 2.10 Ventana Alerta ConIirmacion..................................................................... 17 2.11 Ventana Alerta Error................................................................................... 18 2.12 Cuadro de Dialogo...................................................................................... 19
Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 3 de 20
1 Arquitectura de navegacin La siguiente biblioteca de clases presenta la funcionalidad bsica para gestionar el acceso y manipulacin de registros almacenados en los dispositivos mviles, incluyendo funcionalidades de visualizacin, creacin, bsqueda, modificacin y borrado de registros.
Las interfaces estn basadas en la arquitectura J2ME y el subconjunto de APIs asociadas.
Se plantea una navegacin con dos funcionalidades de entrada, para la creacin de registros y bsqueda de registros.
A partir de la bsqueda de registros, sobre la lista de resultados conseguidos, se pueden realizar modificaciones, borrados o visualizacin del detalle de los registros.
Figura 1: Arquitectura de navegacin
Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 4 de 20
2 Arquitectura de clases
La arquitectura de clases se ha construido de tal forma que se simplifique la reutilizacin del mecanismo de gestin de registros con independencia de la naturaleza de los mismos.
2.1 Gestin de registros
Los registros se gestionan mediante la clase DBMgr:
Figura 2: Clase DBMgr
La clase DBMgr contiene un repositorio de registros que creamos al instanciarla y todas las operaciones asociadas al uso de los mismos.
Las operaciones que nos permite esta clase son: Generar un repositorio a gestionar Abrir un repositorio existente para gestionarlo Cerrar un repositorio gestionado Borrar un repositorio gestionado Insertar registros en el repositorio Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 5 de 20 Eliminar registros del repositorio Buscar identificadores (equivalente a claves primarias de BBDD relacionales) asociados a unos parmetros de bsqueda Recuperar los registros con identificadores dados Eliminar registros con unos identificadores dados Definir un filtro de repositorio Eliminar el filtro asociado a un repositorio Recuperar el valor de una columna del registro
2.1.1 Registros Un registro es una cadena (java.lang.String) que va separada por el carcter definido en la variable de clase SEPARATOR. En la actualidad este valor es :.
As, sern registros vlidos las siguientes cadenas: Luis:Martin:Lopez: Casa Perez:::Madrid:
Y no lo sern: :Luis:Martin:Lopez Casa Perez::::Madrid
Cada uno de los campos del registro se tratar como una columna, comenzando en la posicin 0.
2.1.2 Filtros Un repositorio gestionado por DBMgr poseer un filtro. Este filtro nos permitir procesar slo aquellos registros que verifican el filtro. El filtro dar cmo vlidos slo los registros que cumplan la condicin de tener un valor concreto en una columna dada del registro.
Ejemplo: Dados los registros RegistroA:Lunes:13:Junio:2004 RegistroB:Lunes:20:Junio:2004 RegistroC:Martes:28:Junio:2004
Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 6 de 20 Si colocamos un filtro que indique que la columna 1 tiene que tener el valor Martes, slo se recuperar RegistroC:Martes:28:Junio:2004 al efectuar una bsqueda
El filtro corresponde a la clase DBFilter.
Figura 3: Clase DBFilter
Las instancias de DBMgr pueden no tener filtros, con lo que se podrn recuperar todos los registros que contengan o bien tener un nico filtro activo. El filtro se puede cambiar tantas veces como sea necesario.
Cuando se crea el filtro se proporciona el valor de la columna por la que se filtrar y el valor que se utilizar en la comparacin.
2.2 Midlet Principal El framework de clases se ha definido y utiliza desde un midlet principal. Este contiene: Una autoreferencia esttica, siguiendo un patrn singleton Una referencia al repositorio que va a almacenar la informacin relevante para el sistema Un men que contiene todas las opciones funcionales que se pueden realizar.
Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 7 de 20 El men presentar una serie de opciones al cargarse mediante las cuales interactuaremos con el sistema para presentar la funcionalidad correspondiente.
Figura 4: Clase MidletPrincipal
2.3 Men Principal La interaccin con el usuario se consigue mediante las opciones del men principal. A partir del men principal accedemos a las pantallas de la interfaz de creacin y consulta de registros.
Figura 5: Clase MenuPrincipal Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 8 de 20
La interaccin se consigue procesando la accin de usuario y derivando la navegacin a cualquiera de las interfaces de destino. /**Handle command events*/ public void commandAction(Command pCommand, Displayable pDisplayable) { /** @todo Add command handling code */ if (pCommand == CMD_EXIT) { // stop the MIDlet MidletPrincipal.quitApp(); } else { // User must have selected one of the menu items. Find out what is // selected and display the appropriate screen. String selectedItem = getString(getSelectedIndex());
if (selectedItem.equals(MENU_CHOICES[0])) { // Show the StopWatch screen. Display.getDisplay(MidletPrincipal.instance).setCurrent(vConDisp); } else if (selectedItem.equals(MENU_CHOICES[1])) { // Show the Options screen. Display.getDisplay(MidletPrincipal.instance).setCurrent(vAltaDisp); } . . .
Figura 6: Men principal en el mvil
Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 9 de 20 2.4 Ventana de alta de datos Desde la ventana de Alta se podr introducir la informacin necesaria para generar un registro. El constructor ser el encargado de definir los elementos que conformarn la interfaz de la ventana de alta de datos.
Se define un mtodo, validateFields(), que se podr emplear para certificar que toda la informacin introducida en la ventana es correcta. La ventana que permite cambiar los datos, CambioDisplay heredar el comportamiento de la ventana de Alta.
La navegacin y opciones de men que se pueden ejecutar se definen en el mtodo commandAction()
Figura 7: Clase MenuPrincipal Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 10 de 20
. . .
/** * * Handle command events * * @param pCommand Executed command * @param pDisplayable Display where event happened */ public void commandAction(Command pCommand, Displayable pDisplayable) { Alert vAlert; if (pCommand == CMD_OK) { if (validateFields()) { MidletPrincipal.vBD.insertRecord(vDato1.getString() + MidletPrincipal.vBD.SEPARATOR + vDato2.getString() + MidletPrincipal.vBD.SEPARATOR + vDateField1.getDate().getTime() + MidletPrincipal.vBD.SEPARATOR); vAlert = new AlertaConfirmacion("Se ha insertado con xito el registro"); Display.getDisplay(MidletPrincipal.instance).setCurrent(vAlert); } } else if (pCommand == CMD_BACK) { Display.getDisplay(MidletPrincipal.instance).setCurrent(vMenuPrincipal); } }
Si se acepta se inserta el registro que se compone a partir de la informacin que aparece en la ventana en el repositorio definido en el Midlet Principal. Si se cancela volveremos al men principal.
2.5 Ventana de consulta de datos
Desde la ventana de Consulta de datos se pueden introducir los datos que utilizaremos para filtrar en el repositorio de registros.
En el ejemplo del Framework la consulta se realiza por la columna indicada en el grupo de botones de opcin (radio buttons) para la cadena de texto Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 11 de 20
Figura 8: Ventana de consulta
Se lanzar una consulta contra el repositorio que nos devolver todos los identificadores de registro que verifiquen la consulta realizada. Si no existen datos para la consulta realizada, se mostrar una ventana de error indicndolo.
Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 12 de 20
Figura 9: No hay resultados para la consulta realizada
A partir de los datos de filtro de consulta cargaremos la ventana de listado de resultados, pasndolos como parmetros en la creacin de la misma.
Figura 10: Clase ConsultaDisplay
Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 13 de 20 2.6 Ventana de listado de registros
La ventana de listado de datos cumple dos funciones: Mostrar los resultados que cumplen el filtrado de datos realizado en la ventana de consulta Servir como enlace con las operaciones de ver detalle, modificacin y eliminacin para aquellos registros que seleccionemos.
Figura 11: Resultado de la consulta de registros
Esta ventana permite seleccionar y deseleccionar todos los elementos existentes para que cumplen el filtro de consulta.
Si deseamos Ver Detalle o Modificar algn elemento, slo podremos seleccionar un elemento. Si intentamos seleccionar ms de uno, nos indicar que esa operacin no se puede realizar. Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 14 de 20 Si seleccionamos modificar un registro, accederemos a la ventana de Modificacin. Si seleccionamos ver un registro, accederemos a la ventana de Ver Detalle. Si seleccionamos borrar uno o ms registros, se nos solicitar confirmacin y se proceder, si as se desea, al borrado de los mismos.
En cualquier operacin que modifique datos, el resultado se actualizar en la ventana de Listado.
Figura 12: Clase ListadoResultados
2.7 Ventana de modificacin de registro Desde esta ventana se puede editar la informacin de un registro seleccionado de la lista de registros y modificarlo
Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 15 de 20
Figura 13: Modificacin de un registro
Esta ventana es una variacin de la ventana de alta ya que nicamente define los nuevos constructores para cargar los campos con el valor del registro del repositorio asociado y el comportamiento asociado a los eventos de la ventana.
Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 16 de 20 Figura 14: Clase CambioDisplay
2.8 Ventana de detalle de registro Desde esta ventana se puede consultar el detalle de un registro del repositorio seleccionado en la ventana de listado de datos.
Esta ventana es una variacin de la ventana de modificacin en la que se inhibe la capacidad de efectuar modificaciones mediante una funcin de bloqueo de campos.
La carga de datos se realiza de la misma forma que se realiza en la ventana de detalle de registro, a partir de la ventana de listado de registros.
Figura 15: Clase VerDetalleDisplay
2.9 Ventana de borrado de registro La ventana de borrado es una ventana de confirmacin de eliminacin de datos ms que una interfaz con contenidos de registro propiamente dicha. Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 17 de 20 Desde esta ventana se confirma la operacin de borrado de los elementos seleccionados (1..n) de la consulta propiamente dicha.
Figura 16: Clase ConsultaDisplay
Una vez eliminados los registros, retornamos a la ventana de lista de registros donde se actualiza la informacin.
2.10 Ventana Alerta Confirmacin Esta ventana se puede utilizar para mostrar mensajes de alerta de confirmacin para la notificacin de la correcta terminacin de alguna opcin del sistema. No incorpora ninguna funcionalidad interactiva y slo se limita a mostrar el mensaje deseado.
Figura 17: Resultado de una alerta de confirmacin Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 18 de 20
Figura 18: Clase AlertaConfirmacion
2.11 Ventana Alerta Error Esta ventana se puede utilizar para mostrar mensajes de error para indicar la imposibilidad de ejecutar alguna operacin del sistema. No incorpora ninguna funcionalidad interactiva y slo se limita a mostrar el mensaje deseado.
Figura 19: Resultado de una alerta de error
Manual de usuario del Framework de interfaz para RMS (J2ME)
Pag. 19 de 20
Figura 20: Clase AlertaError
2.12 Cuadro de Dilogo Ventana que presenta una pregunta de forma interactiva para la que se puede contestar y procesar las respuestas dadas y actuar en consecuencia.
Es una construccin que permite responder a las preguntas de tipo binario SI-NO o CANCELAR-CONFIRMAR
Se puede instanciar en las funciones CommandAction y definir el tipo de consulta que se va a realizar al usuario as como el comportamiento que tendr el sistema en funcin de la respuesta que este proporcione:
Manual de usuario del Framework de interfaz para RMS (J2ME)