[Gvsig_desarrolladores] Atrapar cierre de una vista

César Martínez Izquierdo cesar.martinez en iver.es
Mar Mar 25 13:09:44 CET 2008


Juan Lucas Dominguez Rubio escribió:
> Hola
>  
> Hace un tiempo también estuve buscando cómo hacer eso y no encontré la manera.
>  
> La única alternativa (un pelín chapucera, lo reconozco) que se me ocurre es consultar periódicamente (con un Timer) el array de ventanas presentes y mirar si la que buscas está ahí o no.
>  
> Juan Lucas Domínguez Rubio
> Prodevelop SL, Valencia (España)
> Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
> http://www.prodevelop.es <http://www.prodevelop.es/> 
> 
> ________________________________
> 
> De: gvsig_desarrolladores-bounces en runas.cap.gva.es en nombre de Jose Luis Celda Ibañez
> Enviado el: mar 25/03/2008 12:46
> Para: Lista de Desarrolladores de gvSIG
> Asunto: Re: [Gvsig_desarrolladores] Atrapar cierre de una vista
> 
> 
> 
> 
> César Martínez Izquierdo escribió:
>> Jose Luis Celda Ibañez escribió:
>>> Hola a todos,
>>>
>>> Estamos programando un extensión de callejeros sobre WPS.
>>>
>>> Nuestra extensión se vincula a la vista activa, en el momento que se
>>> "activa/ejecuta".
>>>
>>> Necesito saber cuando la vista es cerrada por interacción del usuario.
>>>
>>> Existe algun punto donde me pueda engancharme para obtener esta
>>> informacion?
>>>
>>> Gracias a todos.
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> Asunto:
>>> Atrapar cierre de una vista
>>> De:
>>> José Luis Celda Ibáñez <jcelda en logex.es>
>>> Fecha:
>>> Sun, 23 Mar 2008 22:14:17 +0100
>>> Para:
>>> Lista de Desarrolladores de gvSIG
>>> <gvsig_desarrolladores en runas.cap.gva.es>
>>>
>>> Para:
>>> Lista de Desarrolladores de gvSIG
>>> <gvsig_desarrolladores en runas.cap.gva.es>
>>>
>>>
>>> Hola a todos,
>>>
>>> Estamos programando un extensión de callejeros sobre WPS.
>>>
>>> Nuestra extensión se vincula a la vista activa, en el momento que se
>>> "activa/ejecuta".
>>>
>>> Necesito saber cuando la vista es cerrada por interacción del usuario.
>>>
>>> Existe algun punto donde me pueda engancharme para obtener esta
>>> informacion?
>>>
>>> Gracias a todos.
>>>
>> Hola, si tu ventana implementa la interfaz IWindowListener, será
>> avisada del cierre de la ventana con el método windowClosed(). Este
>> método se llama antes de que la ventana sea efectivamente cerrada.
>>
>> Si la ventana es una vista estándar de gvSIG, me temo de que no hay
>> forma de "subscribirse" para ser avisado de que se ha cerrado.
>> Deberías crearte una vista personalizada (que extienda de la de gvSIG)
>> y que implemente IWindowListener.
>>
>> Espero que te sea de utilidad.
>> Saludos,
>>
>>
> 
> Vaya, que pena pues, porque el tema de crear una vista personalizada, no
> lo tengo nada claro...
> 
> Las vistas, se crean desde el proyecto, pulsando el boton nuevo, como es
> normal... y no tengo ni idea si me puedo intercalar en ese mecanismo, ni
> como, ni donde (ni cuando!) :-)
> 
> Gracias de todos modos...
> 

Otra forma (también un poco chapucera) sería crearte una extensión, y en 
sus métodos isVisible() o isEnabled() incluir el método que detecte si 
la ventana activa sigue siendo la misma.

Estos métodos (isVisible e isEnabled) se llaman básicamente cuando se 
produce un cambio en las ventanas o bien cuando se llama al método 
ejecuta algún ACTION_COMMAND de Andami, así que es un buen momento para 
realizar la comprobación. Eso sí, ojo con incluir comprobaciones muy 
costosas en esos métodos, ya que se ejecutan para efectuar el repintado 
de la interfaz.

Saludos,

-- 
César Martínez Izquierdo
Equipo de desarrollo gvSIG
http://www.gvsig.gva.es

IVER T.I.
C/ Lérida 20
46009 Valencia - Spain
http://www.iver.es


Este mensaje y sus archivos son confidenciales. No está permitida su reproducción o distribución sin la autorización expresa de "IVER Tecnologías de la Información". Si usted no es el destinatario previsto, queda desautorizado cualquier uso, acceso o copia de este mensaje. Si ha recibido este mensaje por error, por favor bórrelo e infórmenos por esta misma vía.




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