You are on page 1of 20

Manual de Usuario del Framework de

Interfaz para RMS (J2ME)


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()


. . .

this.addCommand(CMD_OK);
this.addCommand(CMD_BACK);

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)

Pag. 20 de 20

Figura 21: Resultado de un cuadro de dilogo


Figura 22: Clase NewDialogListener

You might also like