use of org.geotools.styling.Rule in project sldeditor by robward-scisys.
the class SLDExternalImages method externalGraphicSymbolVisitor.
/**
* Find the SLD graphical symbols.
*
* @param resourceLocator the resource locator
* @param sld the sld
* @param externalImageList the external image list
* @param process the process
*/
private static void externalGraphicSymbolVisitor(URL resourceLocator, StyledLayerDescriptor sld, List<String> externalImageList, ProcessGraphicSymbolInterface process) {
if (sld == null) {
return;
}
if (process == null) {
return;
}
for (StyledLayer styledLayer : sld.layers()) {
List<Style> styles = null;
if (styledLayer instanceof NamedLayer) {
NamedLayerImpl namedLayer = (NamedLayerImpl) styledLayer;
styles = namedLayer.styles();
} else if (styledLayer instanceof UserLayer) {
UserLayerImpl userLayer = (UserLayerImpl) styledLayer;
styles = userLayer.userStyles();
}
if (styles != null) {
for (Style style : styles) {
for (FeatureTypeStyle fts : style.featureTypeStyles()) {
for (Rule rule : fts.rules()) {
for (Symbolizer symbolizer : rule.symbolizers()) {
if (symbolizer instanceof PointSymbolizer) {
PointSymbolizer point = (PointSymbolizer) symbolizer;
if (point.getGraphic() != null) {
process.processGraphicalSymbol(resourceLocator, point.getGraphic().graphicalSymbols(), externalImageList);
}
} else if (symbolizer instanceof LineSymbolizer) {
LineSymbolizer line = (LineSymbolizer) symbolizer;
updateStroke(resourceLocator, line.getStroke(), externalImageList, process);
} else if (symbolizer instanceof PolygonSymbolizer) {
PolygonSymbolizer polygon = (PolygonSymbolizer) symbolizer;
updateStroke(resourceLocator, polygon.getStroke(), externalImageList, process);
updateFill(resourceLocator, polygon.getFill(), externalImageList, process);
}
}
}
}
}
}
}
}
use of org.geotools.styling.Rule in project sldeditor by robward-scisys.
the class SLDUtils method findEquivalentSymbolizer.
/**
* Find equivalent symbolizer in another SLD.
*
* @param otherSLD the other SLD
* @param styledLayerIndex the styled layer index
* @param isNamedLayer the is named layer
* @param styleIndex the style index
* @param ftsIndex the fts index
* @param ruleIndex the rule index
* @param symbolizerIndex the symbolizer index
* @return the symbolizer
*/
private static Symbolizer findEquivalentSymbolizer(StyledLayerDescriptor otherSLD, int styledLayerIndex, boolean isNamedLayer, int styleIndex, int ftsIndex, int ruleIndex, int symbolizerIndex) {
if (otherSLD != null) {
List<StyledLayer> styledLayerList = otherSLD.layers();
if (styledLayerList != null) {
try {
StyledLayer styledLayer = styledLayerList.get(styledLayerIndex);
List<Style> styleList = null;
if (isNamedLayer) {
NamedLayerImpl namedLayerImpl = (NamedLayerImpl) styledLayer;
styleList = namedLayerImpl.styles();
} else {
UserLayerImpl userLayerImpl = (UserLayerImpl) styledLayer;
styleList = userLayerImpl.userStyles();
}
if (styleList != null) {
Style style = styleList.get(styleIndex);
FeatureTypeStyle fts = style.featureTypeStyles().get(ftsIndex);
Rule rule = fts.rules().get(ruleIndex);
return rule.symbolizers().get(symbolizerIndex);
}
} catch (IndexOutOfBoundsException exception) {
// Do nothing
}
}
}
return null;
}
use of org.geotools.styling.Rule in project sldeditor by robward-scisys.
the class SLDUtils method findSymbolizer.
/**
* Find symbolizer.
*
* @param sld the sld
* @param symbolizerToFind the symbolizer to find
* @param otherSLD the other SLD
* @return the symbolizer
*/
public static Symbolizer findSymbolizer(StyledLayerDescriptor sld, Symbolizer symbolizerToFind, StyledLayerDescriptor otherSLD) {
List<StyledLayer> styledLayerList = sld.layers();
if (styledLayerList != null) {
int styledLayerIndex = 0;
int styleIndex = 0;
int ftsIndex = 0;
int ruleIndex = 0;
int symbolizerIndex = 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()) {
symbolizerIndex = 0;
for (org.opengis.style.Symbolizer symbolizer : rule.symbolizers()) {
if (symbolizer == symbolizerToFind) {
return findEquivalentSymbolizer(otherSLD, styledLayerIndex, isNamedLayer, styleIndex, ftsIndex, ruleIndex, symbolizerIndex);
}
symbolizerIndex++;
}
ruleIndex++;
}
ftsIndex++;
}
styleIndex++;
}
}
styledLayerIndex++;
}
}
return null;
}
use of org.geotools.styling.Rule in project sldeditor by robward-scisys.
the class SelectedSymbol method replaceRule.
/**
* Replace rule.
*
* @param newRule the new rule
*/
public void replaceRule(Rule newRule) {
List<Rule> ruleList = (List<Rule>) this.symbolData.getFeatureTypeStyle().rules();
int indexFound = -1;
int index = 0;
Rule oldRule = null;
for (Rule rule : ruleList) {
if (rule == this.symbolData.getRule()) {
oldRule = rule;
indexFound = index;
break;
} else {
index++;
}
}
if (indexFound > -1) {
ruleList.remove(indexFound);
ruleList.add(indexFound, newRule);
setRule(newRule);
}
for (SLDTreeUpdatedInterface listener : treeUpdateListenerList) {
listener.updateNode(oldRule, newRule);
}
}
use of org.geotools.styling.Rule in project sldeditor by robward-scisys.
the class SelectedSymbol method removeRule.
/**
* Removes the rule.
*
* @param ruleToDelete the rule to delete
*/
public void removeRule(Rule ruleToDelete) {
List<Rule> ruleList = (List<Rule>) this.symbolData.getFeatureTypeStyle().rules();
int indexFound = -1;
int index = 0;
for (Rule rule : ruleList) {
if (rule == ruleToDelete) {
indexFound = index;
break;
} else {
index++;
}
}
if (indexFound > -1) {
ruleList.remove(indexFound);
}
}
Aggregations