[Gvsig_desarrolladores] gvSIG: Notificaciones de edición

Joaquin Jose del Cerro Murciano jjdelcerro en gvsig.org
Vie Jun 20 04:24:44 CEST 2014


El 19 de junio de 2014, 11:09, Miguel R. Luaces <luaces en udc.es> escribió:

> Hola,
>
> una dudas técnica. Al migrar a gvSIG 2.1 ha desaparecido la clase import
> org.gvsig.editing.EditionNotifycation que usabamos para enganchar al
> proceso de edición y mostrar un formulario personalizado. ¿Me das una pista
> de como hay que hacerlo ahora?
>
> Hola Miguel,
pues eso ha cambiado....
el MapControlLocator tiene un metodo getEditingNotificationManager.
Se trata de un manager que recoge todas las notificaciones de edicion sobre
capas y tablas en gvSIG. Permite registrarse como obserbador para poder
monitorizar que operaciones de edicion se estan haciendo sobre que
tablas/capas o recoger las notificaciones de los editores de datos (por
ejemplo si tu aplicacion edita datos de una capa o tabla estaria bien que
informase de ello a este manager para que el resto de gvSIG se enterase)
para reenviarlas a sus objervadores.

Hemos decidido sacarlo de la extension de edicion ya que se pueden estar
haciendo modificaciones en capas desde otros sitios y de esa forma se
pueden redirigir esas modificciones tambien a quien interese.

Actualmente recibe las notificaciones de plugin de edicion y del documento
tabla y las redirige a los obserbadores que esten interesadas en ello.

Te avisa antes de hacer la operacion y despues de hacerla para que lo
atrapes cuando te interese, y ademas, permite indicar que te interesa
cancelar la operacion. Por ejemplo, te avisa antes de insertar un registro
y una vez se ha insertado. Si atrapas el aviso de que se va a insertar un
registro puedes cancelar la insercion o no, o modificar los datos de la
feature que se va a insertar. Estas notificaciones se hacen a nivel de la
apliaccion, no de la libreria de acceso a datos, con lo que es "sano"
presentar interfaz de usuario en caso de que lo precises. Ojo, que despues
de avisarte de que se va a insertar una feature, se sigue comprobando que
la feature tiene rellenos los campos que debe tener y en caso de que no se
le piden al usuario. Para esto ultimo tambien tienes la posibilidad de
cancelarlo, aunque no deberias de hacerlo a no ser que sea estrictamente
necesario ya que pueden acabar guardandose datos incoherentes si lo haces
sin tener muy claro lo que quieres hacer.


Puedes encontrar un pequeño ejemplo de uso del EditingNotificationManager
en el menu de herramientas->desarrollo no recuerdo que opcion exactamente
(algo de monitor edicion), pero hay una que te muestra un formulario que te
va mostrando las modificaciones en datos que se hacen en gvSIG, y te
permite forzar a mostrar un formulario con los datos que se van a guardar e
incluso cancelar la operacion. Se trata de una erramienta mas que nada para
depuracion y ejemplo de como usar el EditingNotificationManager. El fuente
de eso puedes verlo en:

https://redmine.gvsig.net/redmine/projects/gvsig-desktop/repository/entry/trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/develtools/EditingListenerPanel.java

Tamalo a modo de ejemplo pero ten en cuenta que puede que no todo lo que
hace te sea necesario en tu caso.

Siempre que puedas escribe a la lista de desarrollo en lugar de a mi correo
personal, asi las consultas pueden serles utilies a otros desarrolladores.

Un saludo
Joaquin






> Un saludo,
>   Miguel
>



-- 
--------------------------------------
Joaquin Jose del Cerro Murciano
Development and software arquitecture manager at gvSIG Team
jjdelcerro en gvsig.com
jjdelcerro en gvsig.org
gvSIG Association
www.gvsig.com
www.gvsig.org
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20140620/8e81c120/attachment.htm 


Más información sobre la lista de distribución gvSIG_desarrolladores