[Gvsig_desarrolladores] Persistencia entre proyectos
Vicente Caballero
vicente.caballero en iver.es
Mie Mayo 25 11:14:41 CEST 2005
Hola Jaume.
No se si te faltará algún atributo o no, pero la creación de una capa se
debe de hacer en LayerFactory y para recuperarla tienes que añadir una
condición más (en public void setXMLEntity(XMLEntity xml) throws
XMLException de FLayers). Y como ejemplo te vendrá bien el caso de WMS:
else if (className.equals(FLyrWMS.class.getName())) {
try {
layer = LayerFactory.createLayer(s[i],
StringUtilities.string2Rect(
xml.getChild(i).getStringProperty("fullExtent")),
new URL(xml.getChild(i).getStringProperty("host")),
xml.getChild(i).getStringProperty("format"),
xml.getChild(i).getStringProperty("layerQuery"),
xml.getChild(i).getStringProperty("infoLayerQuery"),
xml.getChild(i).getStringProperty("srs"));
} catch (MalformedURLException e) {
throw new XMLException(e);
}
}
En este caso no se utiliza el setXMLEntity() de FLyrWMS, se carga en FLayers
todos los atributos de la capa que queremos recuperar, si necesitas
inicializar la capa con más atributos de los que tienes pensado para el
método createLayer de LayerFactory de dicha capa, puedes añadir el método
setXMLEntity de la capa WCS y ejecutarlo desde el setXMLEntity de FLayers.
.
Espero que te ayude esto.
Un saludo:
Vicente Caballero Navarro
Equipo de desarrollo gvSIG
http://www.gvsig.gva.es
IVER Tecnologías de la Información
C/ Salamanca 50-52. Valencia 46005
Tel: 96 316 34 00
Valencia - España
----- Original Message -----
From: "Jaume Dominguez" <jaume.dominguez en iver.es>
To: "Desarrolladors gvSIG" <gvsig_desarrolladores en runas.cap.gva.es>
Sent: Wednesday, May 25, 2005 10:31 AM
Subject: [Gvsig_desarrolladores] Persistencia entre proyectos
Hola, estoy intentando averiguar qué es exactamente lo que se debe de
hacer para guardar las propiedades de una capa cuando guardamos el
proyecto, para posteriormente recuperarla sin tener que pasarse por el
wizard y añadirla.
Estos son los métodos que IMAGINO que tengo que incluir en la clase
FLyrWCS. No se si estoy olvidando algo, que no he entendido el
funcionamiento.
/**
* Devuelve el XMLEntity con la información necesaria para reproducir la
* capa.
*
* @return XMLEntity.
* @throws XMLException
*/
public XMLEntity getXMLEntity() throws XMLException {
XMLEntity xml = super.getXMLEntity();
xml.putProperty("wcs.fullExtent", StringUtilities.rect2String(fullExtent));
xml.putProperty("wcs.host", host.toExternalForm());
xml.putProperty("wcs.layerQuery", coverageQuery);
xml.putProperty("wcs.format", format);
xml.putProperty("wcs.srs", SRS);
xml.putProperty("wcs.time", time);
xml.putProperty("wcs.parameter", parameter);
xml.putProperty("wcs.label", label);
xml.putProperty("wcs.name", name);
return xml;
}
/**
* A partir del XMLEntity reproduce la capa.
*
* @param xml XMLEntity
*
* @throws XMLException
* @throws DriverException
* @throws DriverIOException
*/
public void setXMLEntity(XMLEntity xml) throws XMLException {
super.setXMLEntity(xml);
fullExtent = StringUtilities.string2Rect(xml
.getStringProperty("wcs.fullExtent"));
try {
host = new URL(xml.getStringProperty("wcs.host"));
} catch (MalformedURLException e) {
throw new XMLException(e);
}
coverageQuery = xml.getStringProperty("wcs.layerQuery");
format = xml.getStringProperty("wcs.format");
SRS = xml.getStringProperty("wcs.srs");
time = xml.getStringProperty("wcs.time");
parameter = xml.getStringProperty("wcs.parameter");
label = xml.getStringProperty("wcs.label");
name = xml.getStringProperty("wcs.name");
}
¿Como se ve la cosa?
_______________________________________________
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