[Gvsig_desarrolladores] Siguiendo con lo del plugin...

Fernando González Cortés fernando.gonzalez en iver.es
Mie Abr 6 11:29:19 CEST 2005


Yo entiendo que la llamada
PluginServices.getMDIManager().getActiveView() devuelve null y al hacer
el casting salta la excepción que comentas.

Desconozco si tienes acceso a los javadoc del proyecto, pero seguramente
sí. Si no lo tienes coméntalo porque es interesante que lo tengas. Es
interesante por el siguiente motivo:

En la documentación javadoc de la interfaz MDIManager, tienes lo
siguiente en el método getActiveView():

	 * Obtiene una referencia al panel de la ultima vista no modal que se
	 * activó en la aplicación.
	 *
	 * @return referencia al panel activo o null si no hay ninguna vista
activa

Esto quiere decir que se devuelve null porque no hay ninguna vista
activa.

Supongo que la excepción te salta en el método execute de la extensión.
Ante esto, tenemos dos aproximaciones:
1) La rápida: 
	Se comprueba si este valor es distinto de null.
2) La profesional (o sea la tuya ;):
	Se implementa el método isVisible o isEnable de manera que sólo se
devuelva true cuando haya una vista activa. De esta manera sólo se
activarán o visualizarán los controles de la extensión (menú o
herramienta) cuando haya una vista activa (Esto se puede generalizar:
los métodos isVisible e isEnabled sirven para especificar las
precondiciones del método execute).

En cualquier caso, la gestión de vistas de Andami es la parte más
compleja del proyecto y por tanto es susceptible de tener bugs todavía.

No se si me he explicado... si no ya sabes

un saludo
Fernando

El mié, 06-04-2005 a las 11:08, ricardo.borrallo en telvent.abengoa.com
escribió:
> 
> 
> Buenos dias a todos. He estado mirando el codigo que me enviaste Francisco
> y es identico al que aparece en la herramienta del zoom previo, cosa que ya
> me adelantasteis.
> 
> Me he hecho mi propio plugin clonando el codigo de zoom previo y me da el
> siguiente error:
> 
> java.lang.ClassCastException: null. Lo da al hacer la captura de la vista.
> En:
> 
> View vista = (View) PluginServices.getMDIManager().getActiveView()
> 
> Espero vuestras sugerencias.
> 
> Ricardo Borrallo Asencio.
> Telvent Interactiva.
> ***********Internet Email Confidentiality Footer*************
> This email and any files transmitted with it are confidential and intended
> solely for the use of the organization or individual to whom they are
> addressed.  It is expressly forbidden to retransmit or copy email and/or
> this  attached files without our permission .  If you are not the
> addressee indicated in this message (or responsible for delivery of the
> message to such person), you may not copy or deliver this message
> to anyone. In such case, you should destroy this message and kindly
> notify the sender by reply email. Please advise immediately if you or
> your employer does not consent to Internet email for messages of this
> kind.  Opinions, conclusions and other information in this message that
> do not relate to the official business of my firm shall be understood as
> neither given nor endorsed by it.
> 
> 
> ______________________________________________________________________
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores




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