rrenkert@33: package de.intevation.mxd.reader; rrenkert@25: rrenkert@25: import java.io.IOException; rrenkert@25: rrenkert@25: import org.apache.log4j.Logger; rrenkert@25: rrenkert@25: import com.esri.arcgis.carto.ILayer; rrenkert@25: import com.esri.arcgis.carto.FeatureLayer; rrenkert@42: import com.esri.arcgis.geodatabase.FeatureClassName; rrenkert@58: import com.esri.arcgis.geodatabase.IDataset; rrenkert@58: import com.esri.arcgis.geodatabase.IFeatureClass; rrenkert@42: import com.esri.arcgis.system.IName; rrenkert@29: rrenkert@29: import org.w3c.dom.Element; rrenkert@29: rrenkert@33: import de.intevation.mxd.utils.MapToXMLUtils; rrenkert@33: rrenkert@25: /** rrenkert@43: * Reads Layer information. rrenkert@25: * rrenkert@25: * @author Raimund Renkert rrenkert@25: */ rrenkert@43: public class FeatureLayerReader rrenkert@43: implements ILayerReader { rrenkert@25: rrenkert@31: /** rrenkert@31: * The logger. rrenkert@31: */ rrenkert@31: private static final Logger logger = rrenkert@31: Logger.getLogger(FeatureLayerReader.class); rrenkert@25: rrenkert@31: /** rrenkert@31: * Privte member. rrenkert@31: */ rrenkert@29: private FeatureLayer layer; rrenkert@31: private MapToXMLUtils util; rrenkert@25: rrenkert@31: rrenkert@31: public FeatureLayerReader(ILayer layer) rrenkert@31: throws Exception { rrenkert@43: if(layer instanceof FeatureLayer) { rrenkert@29: this.layer = (FeatureLayer)layer; rrenkert@43: } rrenkert@43: else { rrenkert@29: throw new Exception("Not an instance of FeatureLayer: " + rrenkert@31: layer.getClass().toString()); rrenkert@43: } rrenkert@25: } rrenkert@25: rrenkert@25: /** rrenkert@31: * Setter for XML document helper. rrenkert@31: * rrenkert@31: * @param util The helper for storing map information. rrenkert@29: */ rrenkert@43: public void setUtil(MapToXMLUtils util) { rrenkert@31: this.util = util; rrenkert@29: } rrenkert@29: rrenkert@29: /** rrenkert@25: * Reads the Layer content. rrenkert@31: * rrenkert@31: * @return The layer XML element. rrenkert@25: */ rrenkert@31: public Element read() rrenkert@74: throws Exception { rrenkert@25: logger.debug("read()"); rrenkert@74: Element layerElement = util.addLayer(); rrenkert@25: rrenkert@31: layerElement.setAttribute("name", layer.getName()); rrenkert@31: layerElement.setAttribute("min_scale", rrenkert@31: String.valueOf(layer.getMinimumScale())); rrenkert@31: layerElement.setAttribute("max_scale", rrenkert@31: String.valueOf(layer.getMaximumScale())); rrenkert@31: if(layer.isVisible()) { rrenkert@31: layerElement.setAttribute("status", "on"); rrenkert@25: } rrenkert@31: else { rrenkert@31: layerElement.setAttribute("status", "off"); rrenkert@25: } rrenkert@25: rrenkert@40: int type = layer.getShapeType(); rrenkert@40: switch (type) { rrenkert@62: case 0: layerElement.setAttribute("type", "none"); break; rrenkert@62: case 1: layerElement.setAttribute("type", "point"); break; rrenkert@62: case 3: layerElement.setAttribute("type", "line"); break; rrenkert@40: } rrenkert@40: rrenkert@31: layerElement.setAttribute("definition_query", rrenkert@31: layer.getDefinitionExpression()); rrenkert@42: IName fcn = layer.getDataSourceName(); rrenkert@42: if(fcn instanceof FeatureClassName) { rrenkert@42: FeatureClassName name = (FeatureClassName)fcn; rrenkert@42: layerElement.setAttribute("data_source", name.getName()); rrenkert@42: } rrenkert@31: rrenkert@58: layerElement.setAttribute( rrenkert@58: "workspace", rrenkert@58: layer.getWorkspace().getPathName()); rrenkert@31: return layerElement; rrenkert@25: } rrenkert@25: } rrenkert@25: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :