Search in sources :

Example 1 with UserLayerImpl

use of org.geotools.styling.UserLayerImpl in project sldeditor by robward-scisys.

the class SLDUtils method findRule.

/**
 * Find rule.
 *
 * @param sld the sld
 * @param ruleToFind the rule to find
 * @param otherSLD the other SLD
 * @return the rule
 */
public static Rule findRule(StyledLayerDescriptor sld, Rule ruleToFind, StyledLayerDescriptor otherSLD) {
    if (sld != null) {
        List<StyledLayer> styledLayerList = sld.layers();
        if (styledLayerList != null) {
            int styledLayerIndex = 0;
            int styleIndex = 0;
            int ftsIndex = 0;
            int ruleIndex = 0;
            boolean isNamedLayer = true;
            for (StyledLayer styledLayer : styledLayerList) {
                List<Style> styleList = null;
                if (styledLayer instanceof NamedLayerImpl) {
                    NamedLayerImpl namedLayerImpl = (NamedLayerImpl) styledLayer;
                    styleList = namedLayerImpl.styles();
                    isNamedLayer = true;
                } else if (styledLayer instanceof UserLayerImpl) {
                    UserLayerImpl userLayerImpl = (UserLayerImpl) styledLayer;
                    styleList = userLayerImpl.userStyles();
                    isNamedLayer = false;
                }
                if (styleList != null) {
                    styleIndex = 0;
                    for (Style style : styleList) {
                        ftsIndex = 0;
                        for (FeatureTypeStyle fts : style.featureTypeStyles()) {
                            ruleIndex = 0;
                            for (Rule rule : fts.rules()) {
                                if (rule == ruleToFind) {
                                    return findEquivalentRule(otherSLD, styledLayerIndex, isNamedLayer, styleIndex, ftsIndex, ruleIndex);
                                }
                                ruleIndex++;
                            }
                            ftsIndex++;
                        }
                        styleIndex++;
                    }
                }
                styledLayerIndex++;
            }
        }
    }
    return null;
}
Also used : UserLayerImpl(org.geotools.styling.UserLayerImpl) StyledLayer(org.geotools.styling.StyledLayer) NamedLayerImpl(org.geotools.styling.NamedLayerImpl) Style(org.geotools.styling.Style) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) Rule(org.geotools.styling.Rule)

Example 2 with UserLayerImpl

use of org.geotools.styling.UserLayerImpl in project sldeditor by robward-scisys.

the class SelectedSymbol method replaceStyle.

/**
 * Replace style.
 *
 * @param newStyle the new style
 */
public void replaceStyle(Style newStyle) {
    List<Style> styleList = null;
    if (this.symbolData.getStyledLayer() instanceof NamedLayerImpl) {
        NamedLayerImpl namedLayer = (NamedLayerImpl) this.symbolData.getStyledLayer();
        styleList = namedLayer.styles();
    } else if (this.symbolData.getStyledLayer() instanceof UserLayerImpl) {
        UserLayerImpl userLayer = (UserLayerImpl) this.symbolData.getStyledLayer();
        styleList = userLayer.userStyles();
    }
    if (styleList != null) {
        Style oldStyle = null;
        int indexFound = -1;
        int index = 0;
        for (Style style : styleList) {
            if (style == this.symbolData.getStyle()) {
                oldStyle = style;
                indexFound = index;
                break;
            } else {
                index++;
            }
        }
        if (indexFound > -1) {
            styleList.remove(indexFound);
            styleList.add(indexFound, newStyle);
            setStyle(newStyle);
        }
        for (SLDTreeUpdatedInterface listener : treeUpdateListenerList) {
            listener.updateNode(oldStyle, newStyle);
        }
    }
}
Also used : UserLayerImpl(org.geotools.styling.UserLayerImpl) NamedLayerImpl(org.geotools.styling.NamedLayerImpl) Style(org.geotools.styling.Style) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle)

Example 3 with UserLayerImpl

use of org.geotools.styling.UserLayerImpl in project sldeditor by robward-scisys.

the class SelectedSymbol method hasOnlyOneRule.

/**
 * Checks for only one rule.
 *
 * @return true, if successful
 */
public boolean hasOnlyOneRule() {
    boolean oneRule = false;
    StyledLayer[] styledLayers = sld.getStyledLayers();
    int noOfRules = 0;
    if (styledLayers != null) {
        for (StyledLayer styledLayer : styledLayers) {
            List<Style> styleList = null;
            if (styledLayer instanceof NamedLayerImpl) {
                NamedLayerImpl namedLayerImpl = (NamedLayerImpl) styledLayer;
                styleList = namedLayerImpl.styles();
            } else if (styledLayer instanceof UserLayerImpl) {
                UserLayerImpl userLayerImpl = (UserLayerImpl) styledLayer;
                styleList = userLayerImpl.userStyles();
            }
            if (styleList != null) {
                for (Style style : styleList) {
                    for (FeatureTypeStyle fts : style.featureTypeStyles()) {
                        noOfRules += fts.rules().size();
                    }
                }
            }
        }
    }
    oneRule = (noOfRules == 1);
    logger.debug(String.format("Number of rules : %d", noOfRules));
    return oneRule;
}
Also used : UserLayerImpl(org.geotools.styling.UserLayerImpl) StyledLayer(org.geotools.styling.StyledLayer) NamedLayerImpl(org.geotools.styling.NamedLayerImpl) Style(org.geotools.styling.Style) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle)

Example 4 with UserLayerImpl

use of org.geotools.styling.UserLayerImpl in project sldeditor by robward-scisys.

the class SelectedSymbol method updateInternalData.

/**
 * Update internal data based on the supplied mask.
 *
 * @param maskValue the mask value
 */
private void updateInternalData(SelectedSymbolMask.SymbolMaskEnum maskValue) {
    SymbolData localSymbolData = new SymbolData();
    SelectedSymbolMask mask = new SelectedSymbolMask(maskValue);
    if (sld == null) {
        return;
    }
    StyledLayer[] styledLayers = sld.getStyledLayers();
    if (styledLayers != null) {
        localSymbolData.initialiseSelectedStyledLayerIndex();
        for (StyledLayer styledLayer : styledLayers) {
            localSymbolData.setStyledLayer(styledLayer);
            if (styledLayer == symbolData.getStyledLayer()) {
                this.symbolData.update(localSymbolData);
                return;
            }
            List<Style> styleList = null;
            if ((styledLayer instanceof NamedLayerImpl) && mask.shouldContinue(SelectedSymbolMask.SymbolMaskEnum.E_STYLED_LAYER)) {
                NamedLayerImpl namedLayerImpl = (NamedLayerImpl) styledLayer;
                styleList = namedLayerImpl.styles();
            } else if ((styledLayer instanceof UserLayerImpl) && mask.shouldContinue(SelectedSymbolMask.SymbolMaskEnum.E_STYLED_LAYER)) {
                UserLayerImpl userLayerImpl = (UserLayerImpl) styledLayer;
                styleList = userLayerImpl.userStyles();
            }
            if (mask.shouldContinue(SelectedSymbolMask.SymbolMaskEnum.E_STYLE) && (styleList != null)) {
                localSymbolData.initialiseSelectedStyleIndex();
                for (Style style : styleList) {
                    localSymbolData.setStyle(style);
                    if (style == symbolData.getStyle()) {
                        this.symbolData.update(localSymbolData);
                        return;
                    }
                    if (mask.shouldContinue(SelectedSymbolMask.SymbolMaskEnum.E_FEATURE_TYPE_STYLE)) {
                        localSymbolData.initialiseSelectedFTSIndex();
                        for (FeatureTypeStyle fts : style.featureTypeStyles()) {
                            localSymbolData.setFeatureTypeStyle(fts);
                            if (fts == symbolData.getFeatureTypeStyle()) {
                                this.symbolData.update(localSymbolData);
                                return;
                            }
                            if (mask.shouldContinue(SelectedSymbolMask.SymbolMaskEnum.E_RULE)) {
                                localSymbolData.initialiseSelectedRuleIndex();
                                for (Rule rule : fts.rules()) {
                                    localSymbolData.setRule(rule);
                                    if (rule == symbolData.getRule()) {
                                        this.symbolData.update(localSymbolData);
                                        return;
                                    }
                                    if (mask.shouldContinue(SelectedSymbolMask.SymbolMaskEnum.E_SYMBOLIZER)) {
                                        localSymbolData.initialiseSelectedSymbolizerIndex();
                                        for (Symbolizer symbol : rule.symbolizers()) {
                                            localSymbolData.setSymbolizer(symbol);
                                            if (symbol == this.symbolData.getSymbolizer()) {
                                                this.symbolData.update(localSymbolData);
                                                return;
                                            } else {
                                                localSymbolData.incrementSelectedSymbolizerIndex();
                                            }
                                        }
                                    }
                                    localSymbolData.incrementSelectedRuleIndex();
                                }
                            }
                            localSymbolData.incrementSelectedFTSIndex();
                        }
                    }
                    localSymbolData.incrementSelectedStyleIndex();
                }
            }
            localSymbolData.incrementSelectedStyledLayerIndex();
        }
    }
}
Also used : UserLayerImpl(org.geotools.styling.UserLayerImpl) StyledLayer(org.geotools.styling.StyledLayer) NamedLayerImpl(org.geotools.styling.NamedLayerImpl) Style(org.geotools.styling.Style) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) Rule(org.geotools.styling.Rule) Symbolizer(org.geotools.styling.Symbolizer) RasterSymbolizer(org.geotools.styling.RasterSymbolizer)

Example 5 with UserLayerImpl

use of org.geotools.styling.UserLayerImpl in project sldeditor by robward-scisys.

the class SelectedSymbol method addNewStyle.

/**
 * Adds the new style.
 *
 * @param style the style
 */
public void addNewStyle(Style style) {
    if (this.symbolData.getStyledLayer() == null) {
        ConsoleManager.getInstance().error(this, "styledLayer == null");
    } else {
        if (this.symbolData.getStyledLayer() instanceof NamedLayerImpl) {
            NamedLayerImpl namedLayer = (NamedLayerImpl) this.symbolData.getStyledLayer();
            List<Style> styleList = namedLayer.styles();
            styleList.add(style);
        } else if (this.symbolData.getStyledLayer() instanceof UserLayerImpl) {
            UserLayerImpl userLayer = (UserLayerImpl) this.symbolData.getStyledLayer();
            List<Style> styleList = userLayer.userStyles();
            styleList.add(style);
        }
    }
}
Also used : UserLayerImpl(org.geotools.styling.UserLayerImpl) NamedLayerImpl(org.geotools.styling.NamedLayerImpl) Style(org.geotools.styling.Style) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) ArrayList(java.util.ArrayList) List(java.util.List)

Aggregations

UserLayerImpl (org.geotools.styling.UserLayerImpl)21 NamedLayerImpl (org.geotools.styling.NamedLayerImpl)18 Style (org.geotools.styling.Style)18 FeatureTypeStyle (org.geotools.styling.FeatureTypeStyle)17 StyledLayer (org.geotools.styling.StyledLayer)16 Rule (org.geotools.styling.Rule)10 Symbolizer (org.geotools.styling.Symbolizer)5 LineSymbolizer (org.geotools.styling.LineSymbolizer)3 PointSymbolizer (org.geotools.styling.PointSymbolizer)3 PolygonSymbolizer (org.geotools.styling.PolygonSymbolizer)3 RasterSymbolizer (org.geotools.styling.RasterSymbolizer)3 StyledLayerDescriptor (org.geotools.styling.StyledLayerDescriptor)3 GroupConfigInterface (com.sldeditor.ui.detail.config.base.GroupConfigInterface)2 MultiOptionGroup (com.sldeditor.ui.detail.config.base.MultiOptionGroup)2 FeatureTypeConstraint (org.geotools.styling.FeatureTypeConstraint)2 RemoteOWS (org.geotools.styling.RemoteOWS)2 UserLayer (org.geotools.styling.UserLayer)2 SelectedSymbol (com.sldeditor.common.data.SelectedSymbol)1 DataSourceInterface (com.sldeditor.datasource.DataSourceInterface)1 OptionGroup (com.sldeditor.ui.detail.config.base.OptionGroup)1