[Gvsig_desarrolladores] ¿Se pueden crear ventanas dentro de Andami del tipo JFrame?

Dantón Ceballos danton.ceballos en iver.es
Mie Jul 16 12:47:57 CEST 2008


Pablo Piqueras Bartolomé escribió:
> Jorge Bellido Diez escribió:
>> Hola a todos .. Cuando añado una ventana desde mi plugin utilizo la instrucción PluginServices.getMDIManager().addWindow(panel); 
>> Estas ventanas son del tipo JPanel en vez del tipo Jframe.
>> Necesito controlar cuando se cierra mi ventana por lo que quería deshabilitar el cierre automático al pulsar la X de la ventana. En la web he visto que se puede usar la instrucción
>> setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE); siempre que la clase sea del tipo Jframe
>> ¿Se puede extrapolar esto a la clase Jpanel? ¿Se pueden crear ventanas dentro de Andami del tipo JFrame?
>>
>>
>> -----Mensaje original-----
>> De: gvsig_desarrolladores-bounces en runas.cap.gva.es [mailto:gvsig_desarrolladores-bounces en runas.cap.gva.es] En nombre de Jorge Bellido Diez
>> Enviado el: lunes, 07 de julio de 2008 13:07
>> Para: Lista de Desarrolladores de gvSIG
>> Asunto: RE: [Gvsig_desarrolladores] Cómo cancelar el cierre de mi ventana en Andami
>>
>> Hola Victor,.. He redefinido mi clase añadiendo el interfaz WindowListener e incorporo el método windowClossing. 
>> Me debo de dejar algo porque no me responden estos método al ejecutar el código. 
>> Me podrias pasar un breve ejemplillo..? Muchas gracias, Jorge
>>
>> public class VentanaInfoExpediente extends javax.swing.JPanel implements SingletonWindow, IWindowListener, WindowListener  {
>>
>>
>> 	public void windowClosing(WindowEvent e) {
>> 		// TODO Auto-generated method stub
>> 		System.out.println("cerrannndo..");
>> 		
>> 	}
>>
>>  
>>
>>
>>
>> -----Mensaje original-----
>> De: gvsig_desarrolladores-bounces en runas.cap.gva.es [mailto:gvsig_desarrolladores-bounces en runas.cap.gva.es] En nombre de Víctor Velarde Gutiérrez Enviado el: lunes, 07 de julio de 2008 12:28
>> Para: 'Lista de Desarrolladores de gvSIG'
>> Asunto: RE: [Gvsig_desarrolladores] Cómo cancelar el cierre de mi ventana en Andami
>>
>> Hola,
>>
>> Prueba con el evento windowClosing...
>>   
>>  
>> Saludos,
>>
>> Víctor Velarde
>>  
>>  
>>
>> -----Mensaje original-----
>> De: gvsig_desarrolladores-bounces en runas.cap.gva.es
>> [mailto:gvsig_desarrolladores-bounces en runas.cap.gva.es] En nombre de Jorge Bellido Diez Enviado el: lunes, 07 de julio de 2008 12:16
>> Para: Lista de Desarrolladores de gvSIG
>> Asunto: [Gvsig_desarrolladores] Cómo cancelar el cierre de mi ventana en Andami
>>
>> Hola a todos.. tenia una duda sobre andami..
>> tengo una ventana en la que edito unos valores alfanuméricos y quisiera que al cerrarla me pregunte si deseo guardarlos.. he definido mi clase de la siguiente manera: 
>>
>> 	public class VentanaInfoExpediente extends javax.swing.JPanel implements SingletonWindow,IWindowListener { ...
>>
>> El caso es que en el método escribo el código a guardar pero,la ventana siempre se cierra.
>>
>> 	public void windowClosed() {
>>
>> 	    int n=0;
>>
>> 	    if (this.editando){
>> 			n = JOptionPane.showConfirmDialog( this,
>> 						"¿Desea guardar los
>> cambios?",
>> 						"salir",
>> 	
>> JOptionPane.YES_NO_CANCEL_OPTION);
>>
>> 			this.setEditando(false,n);
>> 		}
>>
>> 	if (n==2)         // cancelamos el cierre de la ventana
>> 		//.. Desconozco la orden..
>>
>> }
>>
>> ¿Cuál es la orden que tengo que utilizar para cancelar el cierre de la ventana cuando ya estoy dentro del procedimiento windowClosed ?
>>  
>> Muchas gracias y un saludo;
>> Jorge Bellido
>>
>>
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en runas.cap.gva.es
>> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>>
>>
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en runas.cap.gva.es
>> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>>
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en runas.cap.gva.es
>> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>>
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en runas.cap.gva.es
>> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>>
>>
>>   
> Hola Jorge,
>
> hay 2 tipos de "ventanas" (de tipo IWindow) que gestiona /_fwAndami /: 
> JInternalFrame, y JDialog, ninguna de ambas es de tipo JFrame.
>
> En principio se podría tratar el "cierre de ventana" según la 
> "naturaleza" Java de dichos componentes.
>
> Particularmente, una ventana puede tener implementado algún método 
> para la notificación de cierre. El *modo más habitual (y formal en 
> gvSIG) *es que un componente de tipo "IWindow", tambien implemente 
> "IWindowListener", de _fwAndami.
>
> En este último caso, por ejemplo para el caso de un /JPanel/ que 
> implementa IWindow, IWindowLister, ... puedes reimplementar el método 
> /"public void windowClosed()"/, que se ejecutará una vez cerrada la 
> ventana.
>
> Ten en cuenta que si heredas de alguna clase que implemente IWindow, 
> esta ya puede tener lógica implementada para el cierre, y te interese 
> utilizarla en vez de reemplazarla.
>
>
> Espero haberte ayudado.
>
> Saludos.
>
> -- 
> Pablo Piqueras Bartolomé
>
> Equipo de gvSIG
> IVER T.I. S.A.
> C/. Lérida, 20
> 46005 - Valencia (Spain)
> www.iver.es
> www.gvsig.com
>
> 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.
> ------------------------------------------------------------------------
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>   
Hola Pablo.
Es cierto que implementando el interfaz  IWindowListener se puede 
escuchar el evento windowClosed y detectar cuando la ventana se ha 
cerrado, pero no hay forma de evitar el cierre. Lo interesante sería 
detectar que "se ha solicitado el cierre", realizar las acciones 
pertinentes (validaciones, etc.) y poder cancelar ese cierre si se 
considerase oportuno.

Jorge: Yo soy un novato en esto pero creo que para usar el 
setDefaultCloseOperation deberías acceder a la ventana subyacente al 
IWindow de Andami (JInternalFrame o JDialog) y hacer con ella lo que 
quieras: cambiarle la acción por defecto en el cierre, especificar unas 
dimensiones mínimas, etc. Esto no es muy ortodoxo, pero creo que 
funcionaría. Si existe algún otro modo... por favor, compartidlo.

Saludos.

-- 
Dantón Ceballos <danton.ceballos en iver.es>
IVER Tecnologias de la Información S.A.
C/ Lérida 20 - 46009 VALENCIA
Tlf: 902 25 25 40
Fax: 963 16 27 16
Web: 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