[Gvsig_desarrolladores] <label-set>

Juan Guillermo Jordán Aldasoro jjordan en robotica.uv.es
Mar Jul 1 15:39:34 CEST 2008


Buenas

Estamos realizando una extensión para gvSIG y queremos escribir en la 
barra de estado. Hemos leído en la documentación que existe un tag en el 
fichero config.xml llamado <label-set> para este mismo propósito.

Hemos buscado en el workspace extensiones que hagan uso de esta 
etiqueta, y sólo la hemos encontrado el config.xml de appgvSIG. Este es 
un extracto del config.xml:

	<label-set class-name="com.iver.cit.gvsig.project.documents.view.gui.View">
		<label id="units" size="85"/>
		<label id="x" size="126"/>
		<label id="y" size="126"/>
		<label id="4" size="110"/>
		<label id="5" size="140"/>
		<label id="projection" size="85"/>
	</label-set>
	<label-set class-name="com.iver.cit.gvsig.gui.layout.Layout">
		<label id="units" size="80"/>
		<label id="2" size="180"/>
		<label id="3" size="180"/>
		<label id="4" size="50"/>
		<label id="5" size="50"/>
	</label-set>


Según la documentación, las etiquetas sólo son visibles cuando la vista 
activa es instancia del nombre de la clase declarada en el atributo 
class-name de label-set. Según esto, para que nuestras etiquetas fueran 
visibles al trabajar con una vista, yo interpreto que habría que poner 
como class-name la clase View o la clase Layout también. Es decir, en el 
config.xml de nuestra extensión aparecería:

	<label-set class-name="com.iver.cit.gvsig.project.documents.view.gui.View">
		<label id="gpsx" size="126"/>
		<label id="gpsy" size="126"/>
	</label-set>

Posteriormente, deberíamos poder escribir en las etiquetas con:

PluginServices.getMainFrame().getStatusBar().setMessage("gpsx",valorx);
PluginServices.getMainFrame().getStatusBar().setMessage("gpsy",valory);


Esto no funciona, de hecho ni siquiera aparecen las etiquetas en la 
barra de estado. He trazado el funcionamiento de la aplicación y he 
encontrado que al abrir la vista, hace una llamada al método 
setLabelSet(Label[] labels) de la clase 
com.iver.andami.ui.mdiFrame.NewStatusBar. Este parámetro labels incluye 
las etiquetas definidas en el config.xml de appgvSIG, pero ninguna de 
las que define nuestro plugin.

¿Alguien que haya usado esta característica <label-set> nos puede echar 
un cable?

Gracias
Juan G. Jordán Aldasoro
Instituto de Robótica



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