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;
}
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);
}
}
}
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;
}
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();
}
}
}
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);
}
}
}
Aggregations