use of org.opengis.style.OverlapBehavior in project sldeditor by robward-scisys.
the class RasterSymbolizerDetails method updateOverlapBehavior.
/**
* Update overlap behavior.
*
* @return the overlap behavior
*/
private OverlapBehavior updateOverlapBehavior() {
GroupConfigInterface group;
OverlapBehavior overlapBehavior = null;
group = getGroup(GroupIdEnum.RASTER_OVERLAP);
if (group.isPanelEnabled()) {
ValueComboBoxData overlapBehaviorValue = fieldConfigVisitor.getComboBox(FieldIdEnum.RASTER_OVERLAP_BEHAVIOUR);
overlapBehavior = OverlapBehavior.valueOf(overlapBehaviorValue.getKey());
}
return overlapBehavior;
}
use of org.opengis.style.OverlapBehavior in project sldeditor by robward-scisys.
the class RasterSymbolizerDetailsTest method testRasterSymbolizerDetailsColourChannel.
/**
* Test method for {@link
* com.sldeditor.ui.detail.RasterSymbolizerDetails#RasterSymbolizerDetails(com.sldeditor.filter.v2.function.FunctionNameInterface)}.
* Test method for {@link com.sldeditor.ui.detail.RasterSymbolizerDetails#isDataPresent()}. Test
* method for {@link
* com.sldeditor.ui.detail.RasterSymbolizerDetails#populate(com.sldeditor.common.data.SelectedSymbol)}.
* Test method for {@link
* com.sldeditor.ui.detail.RasterSymbolizerDetails#dataChanged(com.sldeditor.ui.detail.config.FieldId)}.
* Test method for {@link
* com.sldeditor.ui.detail.RasterSymbolizerDetails#getFieldDataManager()}. Test method for
* {@link com.sldeditor.ui.detail.RasterSymbolizerDetails#preLoadSymbol()}.
*/
@Test
public void testRasterSymbolizerDetailsColourChannel() {
RasterSymbolizerDetails panel = new RasterSymbolizerDetails();
panel.populate(null);
// Set up test data
StyledLayerDescriptor sld = DefaultSymbols.createNewSLD();
SelectedSymbol.getInstance().createNewSLD(sld);
NamedLayer namedLayer = DefaultSymbols.createNewNamedLayer();
String expectedNameLayerValue = "named layer test value";
namedLayer.setName(expectedNameLayerValue);
Style style = DefaultSymbols.createNewStyle();
String expectedNameStyleValue = "style test value";
style.setName(expectedNameStyleValue);
namedLayer.addStyle(style);
FeatureTypeStyle fts = DefaultSymbols.createNewFeatureTypeStyle();
String expectedNameFTSValue = "feature type style test value";
fts.setName(expectedNameFTSValue);
style.featureTypeStyles().add(fts);
Rule rule = DefaultSymbols.createNewRule();
String expectedRuleValue = "rule test value";
rule.setName(expectedRuleValue);
StyleFactoryImpl styleFactory = (StyleFactoryImpl) CommonFactoryFinder.getStyleFactory();
FilterFactory ff = CommonFactoryFinder.getFilterFactory();
ContrastEnhancement contrastEnhancement = (ContrastEnhancement) styleFactory.contrastEnhancement(ff.literal(.5), "ramp");
SelectedChannelType redChannel = styleFactory.createSelectedChannelType("red", contrastEnhancement);
SelectedChannelType greenChannel = styleFactory.createSelectedChannelType("green", contrastEnhancement);
SelectedChannelType blueChannel = styleFactory.createSelectedChannelType("blue", contrastEnhancement);
SelectedChannelType[] channels = new SelectedChannelType[3];
channels[0] = redChannel;
channels[1] = greenChannel;
channels[2] = blueChannel;
RasterSymbolizer symbolizer = DefaultSymbols.createDefaultRasterSymbolizer();
symbolizer.setChannelSelection(styleFactory.createChannelSelection(channels));
String expectedNameValue = "symbolizer test value";
symbolizer.setName(expectedNameValue);
OverlapBehavior overlapBehavior = OverlapBehavior.EARLIEST_ON_TOP;
symbolizer.setOverlapBehavior(overlapBehavior);
ShadedRelief shadedRelief = styleFactory.createShadedRelief(ff.literal(0.75));
symbolizer.setShadedRelief(shadedRelief);
rule.symbolizers().add(symbolizer);
fts.rules().add(rule);
sld.layers().add(namedLayer);
SelectedSymbol.getInstance().addNewStyledLayer(namedLayer);
SelectedSymbol.getInstance().setStyledLayer(namedLayer);
SelectedSymbol.getInstance().setStyle(style);
SelectedSymbol.getInstance().setFeatureTypeStyle(fts);
SelectedSymbol.getInstance().setRule(rule);
SelectedSymbol.getInstance().setSymbolizer(symbolizer);
panel.populate(SelectedSymbol.getInstance());
GraphicPanelFieldManager fieldDataManager = panel.getFieldDataManager();
assertNotNull(fieldDataManager);
panel.dataChanged(null);
FieldConfigString nameField = (FieldConfigString) fieldDataManager.get(FieldIdEnum.NAME);
assertNull(nameField);
assertTrue(panel.isDataPresent());
// Reset to default value
panel.preLoadSymbol();
}
use of org.opengis.style.OverlapBehavior in project sldeditor by robward-scisys.
the class RasterSymbolizerDetails method updateSymbol.
/**
* Update symbol.
*/
private void updateSymbol() {
// Contrast enhancement
Expression gammaValueExpression = fieldConfigVisitor.getExpression(FieldIdEnum.RASTER_CONTRAST_GAMMAVALUE);
ContrastEnhancement contrastEnhancement = updateContrastEnhancement(gammaValueExpression);
// Colour map
ColorMap colorMap = updateColourMap();
// Channel selection
ChannelSelection channelSelection = updateEnhancementGroup();
//
// Overlap
//
OverlapBehavior overlapBehavior = updateOverlapBehavior();
//
// Shaded relief
//
ShadedRelief shadedRelief = updateShadedRelief();
Symbolizer symbolizer = null;
StandardData standardData = getStandardData();
Expression opacityExpression = fieldConfigVisitor.getExpression(FieldIdEnum.RASTER_OPACITY);
// Geometry field
Expression geometryField = ExtractGeometryField.getGeometryField(fieldConfigVisitor);
RasterSymbolizer rasterSymbolizer = getStyleFactory().rasterSymbolizer(standardData.getName(), geometryField, standardData.getDescription(), (standardData.getUnit() != null) ? standardData.getUnit().getUnit() : null, opacityExpression, channelSelection, overlapBehavior, colorMap, contrastEnhancement, shadedRelief, symbolizer);
if (vendorOptionRasterFactory != null) {
vendorOptionRasterFactory.updateSymbol(rasterSymbolizer);
}
rasterSymbolizer.setOverlapBehavior(overlapBehavior);
SelectedSymbol.getInstance().replaceSymbolizer(rasterSymbolizer);
this.fireUpdateSymbol();
}
use of org.opengis.style.OverlapBehavior in project sldeditor by robward-scisys.
the class RasterSymbolizerDetails method populateOverlapBehavior.
/**
* Populate overlap behavior.
*
* @param rasterSymbolizer the raster symbolizer
*/
private void populateOverlapBehavior(RasterSymbolizer rasterSymbolizer) {
OverlapBehavior overlapBehaviour = rasterSymbolizer.getOverlapBehavior();
GroupConfigInterface group = getGroup(GroupIdEnum.RASTER_OVERLAP);
if (group != null) {
group.enable(overlapBehaviour != null);
}
if (overlapBehaviour != null) {
fieldConfigVisitor.populateComboBoxField(FieldIdEnum.RASTER_OVERLAP_BEHAVIOUR, overlapBehaviour.name());
}
}
Aggregations