Herramientas Personales
Usted está aquí: Inicio Desarrollo Manual para desarrolladores gvSIG v1.1 GVSIG Tablas
Acciones de Documento

Tablas

por Grupo gvSIGÚltima modificación 01/06/2010 22:52

Las tablas en gvSIG son de dos tipos: Las que muestran los datos alfanuméricos de una capa que existe en alguna Vista, o las que han sido añadidas al proyecto como tablas independientes, y que pueden provenir de alguna base de datos, algún formato de los que gvSIG puede interpretar, o cualquier otra fuente de datos (ODBC, proceso en memoria, etc).

Las tablas que provienen de una capa están enlazadas a esa capa, y tienen una serie de propiedades y listeners de eventos asociados para permitir comportamientos como que al seleccionar en la capa, se refleje la selección en la tabla, y viceversa. Han sido añadidas al proyecto mediante el botón de “Mostrar Tabla” que hay en la Vista, y que se habilita cuando existe alguna capa activa.

La clase que representa el documento de Tabla es ProjectTable. Es básicamente un envoltorio alrededor de un objeto IEditableSource, que es de donde se sacan los datos reales (los valores de las filas). El resto de propiedades se utilizan para gestionar las capas asociadas a esa tabla, los campos que están visibles, los alias de esos campos, etc.

Normalmente nosotros trabajaremos con el modelo IEditableSource que hay por debajo, si es que queremos operar con los datos en estado puro.

Si necesitamos añadir funcionalidades a la ventana de tabla, entonces hay que mirar la clase com.iver.cit.gvsig.project.documents.table.gui.Table. Esta clase es la que implementa la parte visible del documento Tabla. Es bastante compleja, y probablemente susceptible de cambiar en la versión 2.0 de gvSIG, así que no vamos a entrar a fondo, pero sí un poquito por encima:

  • Tiene asociadas una serie de listeners para responder a los eventos de ratón y teclado (TableKeyListener, MouseRow, MouseHandler).
  • También responde a los eventos de selección (TableSelectionListener).
  • Existen métodos para la edición (columnas, filas, celdas) que están muy ligados al modelo interno de la tabla (accesible mediante getModel().getModelo() => getModel() devuelve el ProjectTable asociado, y ProjectTable.getModelo() devuelve el interfaz IeditableSource.

Hasta la fecha, las clases que implementan IEditableSource son EditableAdapter y VectorialEditableAdapter, que guardan las modificaciones en memoria hasta que se termina la edición y se escriben todos los datos. Este sistema presenta algunas inconveniencias, y debido a ello es probable que en la versión 2.0 se cambie, así que no vamos a extendernos en detalle sobre este apartado.


Hecho con Plone CMS, el Sistema de Gestión de Contenidos de Fuentes Abiertos

Este sitio cumple con los siguientes estándares: