use of org.geotools.styling.FeatureTypeStyle 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;
}
use of org.geotools.styling.FeatureTypeStyle 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;
}
use of org.geotools.styling.FeatureTypeStyle 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();
}
}
}
use of org.geotools.styling.FeatureTypeStyle in project sldeditor by robward-scisys.
the class SelectedSymbol method replaceFeatureTypeStyle.
/**
* Replace feature type style.
*
* @param newFTS the new fts
*/
public void replaceFeatureTypeStyle(FeatureTypeStyle newFTS) {
List<FeatureTypeStyle> ftsList = this.symbolData.getStyle().featureTypeStyles();
int indexFound = -1;
int index = 0;
FeatureTypeStyle oldFTS = null;
for (FeatureTypeStyle fts : ftsList) {
if (fts == this.symbolData.getFeatureTypeStyle()) {
oldFTS = fts;
indexFound = index;
break;
} else {
index++;
}
}
if (indexFound > -1) {
ftsList.remove(indexFound);
ftsList.add(indexFound, newFTS);
setFeatureTypeStyle(newFTS);
}
for (SLDTreeUpdatedInterface listener : treeUpdateListenerList) {
listener.updateNode(oldFTS, newFTS);
}
}
use of org.geotools.styling.FeatureTypeStyle in project sldeditor by robward-scisys.
the class DefaultSymbols method createNewLine.
/**
* Creates a new line symbol.
*
* @return the styled layer descriptor
*/
public static StyledLayerDescriptor createNewLine() {
StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor();
NamedLayer namedLayer = styleFactory.createNamedLayer();
sld.addStyledLayer(namedLayer);
Style style = styleFactory.createStyle();
namedLayer.addStyle(style);
List<FeatureTypeStyle> ftsList = style.featureTypeStyles();
FeatureTypeStyle fts = styleFactory.createFeatureTypeStyle();
ftsList.add(fts);
Rule rule = styleFactory.createRule();
fts.rules().add(rule);
LineSymbolizer line = createDefaultLineSymbolizer();
rule.symbolizers().add(line);
return sld;
}
Aggregations