Search in sources :

Example 1 with DataSourceFieldInterface

use of com.sldeditor.common.datasource.DataSourceFieldInterface in project sldeditor by robward-scisys.

the class MXDParser method importLayer.

/**
 * Import layer.
 *
 * @param layer the layer
 * @param outputFormat the output format
 * @return the styled layer descriptor
 */
private SLDDataInterface importLayer(JsonObject layer, SLDOutputFormatEnum outputFormat) {
    StyledLayerDescriptor sld = null;
    String layerName = layer.get("name").getAsString();
    double minScale = layer.get("minScale").getAsDouble();
    double maxScale = layer.get("maxScale").getAsDouble();
    int transparency = layer.get("transparency").getAsInt();
    JsonElement renderElement = layer.get("renderer");
    sld = getRenderer(layerName, minScale, maxScale, transparency, renderElement);
    JsonElement labelRenderArrayElement = layer.get("labelRenderers");
    if (labelRenderArrayElement != null) {
        processLabelRenderer(sld, labelRenderArrayElement.getAsJsonArray(), transparency);
    }
    JsonElement fieldArray = layer.get("fields");
    List<DataSourceFieldInterface> fieldList = processFields(layerName, fieldArray);
    JsonElement dataSourcePropertiesElement = layer.get("dataSource");
    DataSourcePropertiesInterface dataSourceProperties = processDataSource(layerName, dataSourcePropertiesElement);
    String sldContents = SLDWriterFactory.createWriter(outputFormat).encodeSLD(sld);
    StyleWrapper styleWrapper = new StyleWrapper(layerName, layerName);
    SLDDataInterface sldData = new SLDData(styleWrapper, sldContents);
    sldData.setDataSourceProperties(dataSourceProperties);
    sldData.setFieldList(fieldList);
    sldData.setReadOnly(true);
    return sldData;
}
Also used : SLDData(com.sldeditor.common.SLDData) StyledLayerDescriptor(org.geotools.styling.StyledLayerDescriptor) StyleWrapper(com.sldeditor.common.StyleWrapper) SLDDataInterface(com.sldeditor.common.SLDDataInterface) JsonElement(com.google.gson.JsonElement) DataSourceFieldInterface(com.sldeditor.common.datasource.DataSourceFieldInterface) DataSourcePropertiesInterface(com.sldeditor.common.datasource.DataSourcePropertiesInterface)

Example 2 with DataSourceFieldInterface

use of com.sldeditor.common.datasource.DataSourceFieldInterface in project sldeditor by robward-scisys.

the class MXDParser method processFields.

/**
 * Process fields.
 *
 * @param layerName the layer name
 * @param fieldArrayElement the field array element
 * @return the list
 */
private List<DataSourceFieldInterface> processFields(String layerName, JsonElement fieldArrayElement) {
    List<DataSourceFieldInterface> fieldList = new ArrayList<DataSourceFieldInterface>();
    if (fieldArrayElement != null) {
        JsonArray fieldArray = fieldArrayElement.getAsJsonArray();
        for (int index = 0; index < fieldArray.size(); index++) {
            JsonObject fieldObject = null;
            try {
                fieldObject = fieldArray.get(index).getAsJsonObject();
            } catch (IllegalStateException e) {
                ConsoleManager.getInstance().error(this, "Layer : " + layerName);
                ConsoleManager.getInstance().exception(this, e);
            }
            if (fieldObject != null) {
                Class<?> fieldType = convertFieldType(fieldObject.get("type").getAsString());
                DataSourceField esriField = new DataSourceField(fieldObject.get("field").getAsString(), fieldType);
                fieldList.add(esriField);
            }
        }
    }
    return fieldList;
}
Also used : JsonArray(com.google.gson.JsonArray) DataSourceFieldInterface(com.sldeditor.common.datasource.DataSourceFieldInterface) ArrayList(java.util.ArrayList) JsonObject(com.google.gson.JsonObject) DataSourceField(com.sldeditor.common.datasource.DataSourceField)

Aggregations

DataSourceFieldInterface (com.sldeditor.common.datasource.DataSourceFieldInterface)2 JsonArray (com.google.gson.JsonArray)1 JsonElement (com.google.gson.JsonElement)1 JsonObject (com.google.gson.JsonObject)1 SLDData (com.sldeditor.common.SLDData)1 SLDDataInterface (com.sldeditor.common.SLDDataInterface)1 StyleWrapper (com.sldeditor.common.StyleWrapper)1 DataSourceField (com.sldeditor.common.datasource.DataSourceField)1 DataSourcePropertiesInterface (com.sldeditor.common.datasource.DataSourcePropertiesInterface)1 ArrayList (java.util.ArrayList)1 StyledLayerDescriptor (org.geotools.styling.StyledLayerDescriptor)1