Search in sources :

Example 11 with ColorMap

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

the class RasterSymbolizerDetails method populate.

/**
 * Populate.
 *
 * @param selectedSymbol the selected symbol
 */
/*
     * (non-Javadoc)
     * 
     * @see com.sldeditor.ui.iface.PopulateDetailsInterface#populate(com.sldeditor.ui.detail.selectedsymbol.SelectedSymbol)
     */
@Override
public void populate(SelectedSymbol selectedSymbol) {
    if (selectedSymbol != null) {
        RasterSymbolizer rasterSymbolizer = (RasterSymbolizer) selectedSymbol.getSymbolizer();
        if (rasterSymbolizer != null) {
            populateStandardData(rasterSymbolizer);
            // Opacity
            fieldConfigVisitor.populateField(FieldIdEnum.RASTER_OPACITY, rasterSymbolizer.getOpacity());
            // Contrast enhancement
            ContrastEnhancement contrast = rasterSymbolizer.getContrastEnhancement();
            GroupConfigInterface group = getGroup(GroupIdEnum.RASTER_CONTRAST);
            if (group != null) {
                group.enable(contrast != null);
            }
            if (contrast != null) {
                Expression gammaValue = contrast.getGammaValue();
                fieldConfigVisitor.populateField(FieldIdEnum.RASTER_CONTRAST_GAMMAVALUE, gammaValue);
                populateContrastMethod(contrast, GroupIdEnum.RASTER_OVERALL_CONTRAST_METHOD);
            }
            // Channel selection
            group = getGroup(GroupIdEnum.RASTER_CHANNELSELECTION);
            if (group != null) {
                MultiOptionGroup channelSelectionGroup = (MultiOptionGroup) group;
                ChannelSelection channelSelection = rasterSymbolizer.getChannelSelection();
                boolean enableChannelSelection = false;
                if (channelSelection != null) {
                    SelectedChannelType[] rgbChannels = channelSelection.getRGBChannels();
                    enableChannelSelection = ((channelSelection.getGrayChannel() != null) || (rgbChannels[0] != null) || (rgbChannels[1] != null) || (rgbChannels[2] != null));
                }
                channelSelectionGroup.enable(enableChannelSelection);
                if (enableChannelSelection) {
                    SelectedChannelType greyChannel = channelSelection.getGrayChannel();
                    if (greyChannel != null) {
                        channelSelectionGroup.setOption(GroupIdEnum.RASTER_GREY_CHANNEL_OPTION);
                        populateContrastEnhancementGroup(GroupIdEnum.RASTER_GREY_CHANNEL, FieldIdEnum.RASTER_RGB_GREY_NAME, GroupIdEnum.RASTER_RGB_CHANNEL_GREY_CONTRAST, FieldIdEnum.RASTER_RGB_CHANNEL_GREY_CONTRAST_GAMMA, GroupIdEnum.RASTER_RGB_CHANNEL_GREY_CONTRAST_METHOD, greyChannel);
                    } else {
                        SelectedChannelType[] rgbChannels = channelSelection.getRGBChannels();
                        channelSelectionGroup.setOption(GroupIdEnum.RASTER_RGB_CHANNEL_OPTION);
                        populateContrastEnhancementGroup(GroupIdEnum.RASTER_RGB_CHANNEL_RED, FieldIdEnum.RASTER_RGB_RED_NAME, GroupIdEnum.RASTER_RGB_CHANNEL_RED_CONTRAST, FieldIdEnum.RASTER_RGB_CHANNEL_RED_CONTRAST_GAMMA, GroupIdEnum.RASTER_RGB_CHANNEL_RED_CONTRAST_METHOD, rgbChannels[0]);
                        populateContrastEnhancementGroup(GroupIdEnum.RASTER_RGB_CHANNEL_GREEN, FieldIdEnum.RASTER_RGB_GREEN_NAME, GroupIdEnum.RASTER_RGB_CHANNEL_GREEN_CONTRAST, FieldIdEnum.RASTER_RGB_CHANNEL_GREEN_CONTRAST_GAMMA, GroupIdEnum.RASTER_RGB_CHANNEL_GREEN_CONTRAST_METHOD, rgbChannels[1]);
                        populateContrastEnhancementGroup(GroupIdEnum.RASTER_RGB_CHANNEL_BLUE, FieldIdEnum.RASTER_RGB_BLUE_NAME, GroupIdEnum.RASTER_RGB_CHANNEL_BLUE_CONTRAST, FieldIdEnum.RASTER_RGB_CHANNEL_BLUE_CONTRAST_GAMMA, GroupIdEnum.RASTER_RGB_CHANNEL_BLUE_CONTRAST_METHOD, rgbChannels[2]);
                    }
                }
            }
            // Colour map
            ColorMap colourMap = rasterSymbolizer.getColorMap();
            fieldConfigVisitor.populateComboBoxField(FieldIdEnum.RASTER_COLOURMAP_TYPE, Integer.valueOf(colourMap.getType()).toString());
            fieldConfigVisitor.populateColourMapField(FieldIdEnum.RASTER_COLOURMAP, colourMap);
            // Shaded relief
            ShadedRelief shadedRelief = rasterSymbolizer.getShadedRelief();
            group = getGroup(GroupIdEnum.RASTER_SHADEDRELIEF);
            if (group != null) {
                group.enable(shadedRelief != null);
            }
            if (shadedRelief != null) {
                fieldConfigVisitor.populateBooleanField(FieldIdEnum.RASTER_SHADEDRELIEF_BRIGHTNESS, shadedRelief.isBrightnessOnly());
                fieldConfigVisitor.populateField(FieldIdEnum.RASTER_SHADEDRELIEF_FACTOR, shadedRelief.getReliefFactor());
            }
            // Overlap behaviour
            OverlapBehavior overlapBehaviour = rasterSymbolizer.getOverlapBehavior();
            group = getGroup(GroupIdEnum.RASTER_OVERLAP);
            if (group != null) {
                group.enable(overlapBehaviour != null);
            }
            if (overlapBehaviour != null) {
                fieldConfigVisitor.populateComboBoxField(FieldIdEnum.RASTER_OVERLAP_BEHAVIOUR, overlapBehaviour.name());
            }
            if (vendorOptionRasterFactory != null) {
                vendorOptionRasterFactory.populate(rasterSymbolizer);
            }
        }
    }
}
Also used : RasterSymbolizer(org.geotools.styling.RasterSymbolizer) SelectedChannelType(org.geotools.styling.SelectedChannelType) ContrastEnhancement(org.geotools.styling.ContrastEnhancement) Expression(org.opengis.filter.expression.Expression) ChannelSelection(org.geotools.styling.ChannelSelection) ColorMap(org.geotools.styling.ColorMap) GroupConfigInterface(com.sldeditor.ui.detail.config.base.GroupConfigInterface) MultiOptionGroup(com.sldeditor.ui.detail.config.base.MultiOptionGroup) ShadedRelief(org.geotools.styling.ShadedRelief) OverlapBehavior(org.opengis.style.OverlapBehavior)

Aggregations

ColorMap (org.geotools.styling.ColorMap)11 ColorMapImpl (org.geotools.styling.ColorMapImpl)6 ColorMapEntryImpl (org.geotools.styling.ColorMapEntryImpl)5 Test (org.junit.Test)5 FieldConfigCommonData (com.sldeditor.ui.detail.config.FieldConfigCommonData)4 FieldConfigColourMap (com.sldeditor.ui.detail.config.colourmap.FieldConfigColourMap)4 Geometry (com.vividsolutions.jts.geom.Geometry)4 FilterFactory (org.opengis.filter.FilterFactory)4 UndoEvent (com.sldeditor.common.undo.UndoEvent)2 GroupConfigInterface (com.sldeditor.ui.detail.config.base.GroupConfigInterface)2 MultiOptionGroup (com.sldeditor.ui.detail.config.base.MultiOptionGroup)2 ChannelSelection (org.geotools.styling.ChannelSelection)2 ColorMapEntry (org.geotools.styling.ColorMapEntry)2 ContrastEnhancement (org.geotools.styling.ContrastEnhancement)2 RasterSymbolizer (org.geotools.styling.RasterSymbolizer)2 SelectedChannelType (org.geotools.styling.SelectedChannelType)2 ShadedRelief (org.geotools.styling.ShadedRelief)2 Expression (org.opengis.filter.expression.Expression)2 OverlapBehavior (org.opengis.style.OverlapBehavior)2 FieldIdEnum (com.sldeditor.common.xml.ui.FieldIdEnum)1