[Gvsig_desarrolladores] sacar info de XMLItem[]

marcos boullón magán marcosboullon en gmail.com
Lun Dic 18 11:01:35 CET 2006


Hola a todos,

¿Algún alma caritativa podría enseñarme algo de código para extraer
información de un XMLItem[]? Por favor... A lo mejor es una tontería
(por si alguien se lo preguntaba, mi conocimiento de sax es nulo),
pero es que simplemente no me sale.


Quería hacer una herramienta con la funcionalidad de la
InfoToolExtension, y mirando el código (InfoToolExtension.java,
InfoToolListener.java, FInfoDialog.java, InfoToolViewer.java) me quedo
atascado con un XMLItem[] donde se supone que están las capas sobre
las que pregunto, las estructuras de esas capas bajo el punto de
consulta y sus atributos.

Por comparación con el código presente (estoy en gvSIG 1.0 rc3, pero
imagino que será muy parecido en el 1.0 estable), tengo algo como...

XMLItem[] items = ....
for(int i=0; i<items.length; i++) {
  XMLItem item = items[i];
  FLayer layer = item.getLayer();
  if(layer instanceof InfoByPoint) {
    try { ... } catch {}
...

En la herramienta InfoToolExtension lo solucionan con...

FInfoDialog dlgXML = new FInfoDialog;
try {
  dlgXML.setModel(new XMLContent() { ... });
... } catch {}
DefaultTreeModel treeModel = (DefaultTreeModel) dlgXML.getXmlTree().getModel();
...

Pero hay dos cosas que no me gustan. Primero, que no quiero utilizar
un diálogo para extraer la información, sino que quiero manejarla yo
(por ejemplo, volcarla a stdout); y segundo, que ni siquiera me
compila, sino que me da un "package com.iver.utiles.xmlViewer does not
exist [...] import com.iver.utiles.xmlViewer.XMLContent". Así que
asumo que xmlViewer es una clase que no está preparada para ser
utilizada directamente por las extensiones, sino que resuelve un
problema particular en un caso puntual.


Hay un correo antiguo donde Francisco José daba código para
implementar una utilidad similar (ver mensaje "Botón de Información y
algunos ejemplos", 29 de Agosto), pero era para la versión 0.6 y ahora
no funciona (¿o será torpeza mía?):

java.lang.NullPointerException at
com.iver.cit.gvsig.fmap.operations.strategies.QueryByPointVisitor.start(Unknown
Source) at com.iver.cit.gvsig.fmap.operations.strategies.DefaultStrategy.process(Unknown
Source) at com.iver.cit.gvsig.fmap.operations.strategies.DefaultStrategy.process(Unknown
Source) at com.iver.cit.gvsig.fmap.layers.FLyrVect.process(Unknown
Source) at es.usc.laborate.gvsig.extinfotool2.ExtInfoTool2$ExtInfoTool2Listener.point(ExtInfoTool2.java:232)

Gracias y perdonad el rollo,

M.

-- 
-- marcos boullón magán
-- universidade de Santiago de Compostela




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