[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