Mercurial > mxd2map
diff src/java/de/intevation/mxd/reader/GdbRasterCatalogLayerReader.java @ 36:472aa36d0e01
Added a new layer reader and symbol reader.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 12 Apr 2011 14:43:58 +0200 |
parents | |
children | ef7ca23c4233 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/java/de/intevation/mxd/reader/GdbRasterCatalogLayerReader.java Tue Apr 12 14:43:58 2011 +0200 @@ -0,0 +1,87 @@ +package de.intevation.mxd.reader; + +import java.io.IOException; + +import org.apache.log4j.Logger; + +import com.esri.arcgis.carto.ILayer; +import com.esri.arcgis.carto.GdbRasterCatalogLayer; + +import org.w3c.dom.Element; + +import de.intevation.mxd.utils.MapToXMLUtils; + +/** + * Reads Layer information.. + * + * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> + */ +public class GdbRasterCatalogLayerReader implements ILayerReader{ + + /** + * The logger. + */ + private static final Logger logger = + Logger.getLogger(GdbRasterCatalogLayerReader.class); + + /** + * Privte member. + */ + private GdbRasterCatalogLayer layer; + private MapToXMLUtils util; + + + public GdbRasterCatalogLayerReader(ILayer layer) + throws Exception { + if(layer instanceof GdbRasterCatalogLayer) + this.layer = (GdbRasterCatalogLayer)layer; + else + throw new Exception("Not an instance of GdbRastaCatalogLayer: " + + layer.getClass().toString()); + } + + /** + * Setter for XML document helper. + * + * @param util The helper for storing map information. + */ + public void setUtil(MapToXMLUtils util){ + this.util = util; + } + + /** + * Reads the Layer content. + * + * @return The layer XML element. + */ + public Element read() + throws IOException { + logger.debug("read()"); + Element layerElement; + try { + layerElement = util.addLayer(); + } + catch(Exception e) { + e.printStackTrace(); + return null; + } + + layerElement.setAttribute("name", layer.getName()); + layerElement.setAttribute("min_scale", + String.valueOf(layer.getMinimumScale())); + layerElement.setAttribute("max_scale", + String.valueOf(layer.getMaximumScale())); + if(layer.isVisible()) { + layerElement.setAttribute("status", "on"); + } + else { + layerElement.setAttribute("status", "off"); + } + + layerElement.setAttribute("definition_query", + layer.getDefinitionExpression()); + + return layerElement; + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :