Search in sources :

Example 36 with GroupConfigInterface

use of com.sldeditor.ui.detail.config.base.GroupConfigInterface in project sldeditor by robward-scisys.

the class PolygonFillDetails method setSymbolTypeVisibility.

/**
 * Sets the symbol type visibility.
 *
 * @param panelId the panel id
 * @param selectedItem the selected item
 */
private void setSymbolTypeVisibility(Class<?> panelId, String selectedItem) {
    Map<GroupIdEnum, Boolean> groupList = fieldEnableState.getGroupIdList(panelId.getName(), selectedItem);
    for (GroupIdEnum groupId : groupList.keySet()) {
        boolean groupEnabled = groupList.get(groupId);
        GroupConfigInterface groupConfig = fieldConfigManager.getGroup(this.getClass(), groupId);
        if (groupConfig != null) {
            groupConfig.setGroupStateOverride(groupEnabled);
        } else {
            ConsoleManager.getInstance().error(this, "Failed to find group : " + groupId.toString());
        }
    }
    Map<FieldIdEnum, Boolean> fieldList = fieldEnableState.getFieldIdList(panelId.getName(), selectedItem);
    for (FieldIdEnum fieldId : fieldList.keySet()) {
        boolean fieldEnabled = fieldList.get(fieldId);
        FieldConfigBase fieldConfig = fieldConfigManager.get(fieldId);
        if (fieldConfig != null) {
            CurrentFieldState fieldState = fieldConfig.getFieldState();
            fieldState.setFieldEnabled(fieldEnabled);
            fieldConfig.setFieldState(fieldState);
        } else {
            ConsoleManager.getInstance().error(this, "Failed to find field : " + fieldId.toString());
        }
    }
}
Also used : FieldConfigBase(com.sldeditor.ui.detail.config.FieldConfigBase) CurrentFieldState(com.sldeditor.ui.detail.config.base.CurrentFieldState) GroupConfigInterface(com.sldeditor.ui.detail.config.base.GroupConfigInterface) FieldIdEnum(com.sldeditor.common.xml.ui.FieldIdEnum) GroupIdEnum(com.sldeditor.common.xml.ui.GroupIdEnum)

Example 37 with GroupConfigInterface

use of com.sldeditor.ui.detail.config.base.GroupConfigInterface in project sldeditor by robward-scisys.

the class RasterSymbolizerDetails method populateContrastMethod.

/**
 * Populate contrast method.
 *
 * @param contrastEnhancement the contrast enhancement
 * @param contrastMethodGroup the contrast method group
 */
private void populateContrastMethod(ContrastEnhancement contrastEnhancement, GroupIdEnum contrastMethodGroup) {
    GroupConfigInterface group = getGroup(contrastMethodGroup);
    if (group != null) {
        GroupIdEnum selectedNormalizeMethod = GroupIdEnum.UNKNOWN;
        MultiOptionGroup contrastNormalizeMethodGroup = (MultiOptionGroup) group;
        if (contrastEnhancement != null) {
            ContrastMethod contrastMethod = contrastEnhancement.getMethod();
            if (contrastMethod != null) {
                String contrastMethodString = contrastMethod.name();
                for (OptionGroup option : contrastNormalizeMethodGroup.getGroupList()) {
                    if (option.getLabel().compareToIgnoreCase(contrastMethodString) == 0) {
                        selectedNormalizeMethod = option.getId();
                    }
                }
            }
        }
        contrastNormalizeMethodGroup.setOption(selectedNormalizeMethod);
    }
}
Also used : OptionGroup(com.sldeditor.ui.detail.config.base.OptionGroup) MultiOptionGroup(com.sldeditor.ui.detail.config.base.MultiOptionGroup) GroupConfigInterface(com.sldeditor.ui.detail.config.base.GroupConfigInterface) ContrastMethod(org.opengis.style.ContrastMethod) MultiOptionGroup(com.sldeditor.ui.detail.config.base.MultiOptionGroup) GroupIdEnum(com.sldeditor.common.xml.ui.GroupIdEnum)

Example 38 with GroupConfigInterface

use of com.sldeditor.ui.detail.config.base.GroupConfigInterface in project sldeditor by robward-scisys.

the class RasterSymbolizerDetails method populateContrastEnhancementGroup.

/**
 * Populate contrast enhancement group.
 *
 * @param channelGroup the channel group
 * @param nameField the name field
 * @param contrastGroup the contrast group
 * @param gammaField the gamma field
 * @param methodField the method field
 * @param channelType the channel type
 */
private void populateContrastEnhancementGroup(GroupIdEnum channelGroup, FieldIdEnum nameField, GroupIdEnum contrastGroup, FieldIdEnum gammaField, GroupIdEnum methodField, SelectedChannelType channelType) {
    String name = "";
    if (channelType != null) {
        name = channelType.getChannelName();
    }
    fieldConfigVisitor.populateTextField(nameField, name);
    GroupConfigInterface contrastGrp = getGroup(contrastGroup);
    ContrastEnhancement contrastEnhancement = null;
    if (channelType != null) {
        contrastEnhancement = channelType.getContrastEnhancement();
    }
    contrastGrp.enable(contrastEnhancement != null);
    if (contrastEnhancement != null) {
        fieldConfigVisitor.populateField(gammaField, contrastEnhancement.getGammaValue());
        populateContrastMethod(contrastEnhancement, methodField);
    }
}
Also used : ContrastEnhancement(org.geotools.styling.ContrastEnhancement) GroupConfigInterface(com.sldeditor.ui.detail.config.base.GroupConfigInterface)

Example 39 with GroupConfigInterface

use of com.sldeditor.ui.detail.config.base.GroupConfigInterface 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 = null;
    GroupConfigInterface group = getGroup(GroupIdEnum.RASTER_CONTRAST);
    if (group.isPanelEnabled()) {
        String method = null;
        group = getGroup(GroupIdEnum.RASTER_OVERALL_CONTRAST_METHOD);
        if (group != null) {
            MultiOptionGroup contrastNormalizeMethodGroup = (MultiOptionGroup) group;
            OptionGroup selectedOption = contrastNormalizeMethodGroup.getSelectedOptionGroup();
            if (selectedOption != null) {
                method = selectedOption.getLabel();
            }
        }
        contrastEnhancement = (ContrastEnhancement) getStyleFactory().contrastEnhancement(gammaValueExpression, method);
    }
    // Colour map
    ColorMap colorMap = fieldConfigVisitor.getColourMap(FieldIdEnum.RASTER_COLOURMAP);
    ValueComboBoxData colourMapType = fieldConfigVisitor.getComboBox(FieldIdEnum.RASTER_COLOURMAP_TYPE);
    colorMap.setType(Integer.valueOf(colourMapType.getKey()));
    // Channel selection
    ChannelSelection channelSelection = null;
    group = getGroup(GroupIdEnum.RASTER_CHANNELSELECTION);
    if (group != null) {
        if (group.isPanelEnabled()) {
            MultiOptionGroup contrastEnhancementGroup = (MultiOptionGroup) group;
            OptionGroup selectedOption = contrastEnhancementGroup.getSelectedOptionGroup();
            if (selectedOption.getId() == GroupIdEnum.RASTER_GREY_CHANNEL_OPTION) {
                // Grey option group
                SelectedChannelType greyChannel = extractContrastEnhancementGroup(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);
                channelSelection = getStyleFactory().channelSelection(greyChannel);
            } else {
                SelectedChannelType redChannel = extractContrastEnhancementGroup(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);
                SelectedChannelType greenChannel = extractContrastEnhancementGroup(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);
                SelectedChannelType blueChannel = extractContrastEnhancementGroup(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);
                SelectedChannelType[] channels = new SelectedChannelType[3];
                channels[0] = redChannel;
                channels[1] = greenChannel;
                channels[2] = blueChannel;
                channelSelection = getStyleFactory().createChannelSelection(channels);
            }
        }
    }
    // 
    // Overlap
    // 
    OverlapBehavior overlapBehavior = null;
    group = getGroup(GroupIdEnum.RASTER_OVERLAP);
    if (group.isPanelEnabled()) {
        ValueComboBoxData overlapBehaviorValue = fieldConfigVisitor.getComboBox(FieldIdEnum.RASTER_OVERLAP_BEHAVIOUR);
        overlapBehavior = OverlapBehavior.valueOf(overlapBehaviorValue.getKey());
    }
    // 
    // Shaded relief
    // 
    ShadedRelief shadedRelief = null;
    group = getGroup(GroupIdEnum.RASTER_SHADEDRELIEF);
    if (group.isPanelEnabled()) {
        shadedRelief = new ShadedReliefImpl();
        shadedRelief.setBrightnessOnly(fieldConfigVisitor.getBoolean(FieldIdEnum.RASTER_SHADEDRELIEF_BRIGHTNESS));
        shadedRelief.setReliefFactor(fieldConfigVisitor.getExpression(FieldIdEnum.RASTER_SHADEDRELIEF_FACTOR));
    }
    Symbolizer symbolizer = null;
    StandardData standardData = getStandardData();
    Expression opacityExpression = fieldConfigVisitor.getExpression(FieldIdEnum.RASTER_OPACITY);
    // Geometry field
    Expression geometryField = ExtractGeometryField.getGeometryField(fieldConfigVisitor);
    RasterSymbolizer rasterSymbolizer = (RasterSymbolizer) getStyleFactory().rasterSymbolizer(standardData.name, geometryField, standardData.description, standardData.unit, opacityExpression, channelSelection, overlapBehavior, colorMap, contrastEnhancement, shadedRelief, symbolizer);
    if (vendorOptionRasterFactory != null) {
        vendorOptionRasterFactory.updateSymbol(rasterSymbolizer);
    }
    rasterSymbolizer.setOverlapBehavior(overlapBehavior);
    SelectedSymbol.getInstance().replaceSymbolizer(rasterSymbolizer);
    this.fireUpdateSymbol();
}
Also used : ColorMap(org.geotools.styling.ColorMap) ShadedRelief(org.geotools.styling.ShadedRelief) Symbolizer(org.geotools.styling.Symbolizer) RasterSymbolizer(org.geotools.styling.RasterSymbolizer) ValueComboBoxData(com.sldeditor.ui.widgets.ValueComboBoxData) SelectedChannelType(org.geotools.styling.SelectedChannelType) RasterSymbolizer(org.geotools.styling.RasterSymbolizer) ContrastEnhancement(org.geotools.styling.ContrastEnhancement) OptionGroup(com.sldeditor.ui.detail.config.base.OptionGroup) MultiOptionGroup(com.sldeditor.ui.detail.config.base.MultiOptionGroup) Expression(org.opengis.filter.expression.Expression) ChannelSelection(org.geotools.styling.ChannelSelection) ShadedReliefImpl(org.geotools.styling.ShadedReliefImpl) GroupConfigInterface(com.sldeditor.ui.detail.config.base.GroupConfigInterface) MultiOptionGroup(com.sldeditor.ui.detail.config.base.MultiOptionGroup) OverlapBehavior(org.opengis.style.OverlapBehavior)

Example 40 with GroupConfigInterface

use of com.sldeditor.ui.detail.config.base.GroupConfigInterface in project sldeditor by robward-scisys.

the class RasterSymbolizerDetails method extractContrastEnhancementGroup.

/**
 * Extract contrast enhancement group.
 *
 * @param channelGroup the channel group
 * @param nameField the name field
 * @param contrastGroup the contrast group
 * @param gammaField the gamma field
 * @param contrastMethod the contrast method
 * @return the selected channel type
 */
private SelectedChannelType extractContrastEnhancementGroup(GroupIdEnum channelGroup, FieldIdEnum nameField, GroupIdEnum contrastGroup, FieldIdEnum gammaField, GroupIdEnum contrastMethod) {
    SelectedChannelType channelType = null;
    GroupConfigInterface group = getGroup(channelGroup);
    if (group.isPanelEnabled()) {
        String channelName = fieldConfigVisitor.getText(nameField);
        GroupConfigInterface contrastGrp = getGroup(contrastGroup);
        ContrastEnhancement contrastEnhancement = null;
        if (contrastGrp.isPanelEnabled()) {
            Expression gammaExpression = fieldConfigVisitor.getExpression(gammaField);
            GroupConfigInterface constrastMethodGroup = getGroup(contrastMethod);
            if (constrastMethodGroup != null) {
                String method = null;
                MultiOptionGroup constrastMethodGroup2 = (MultiOptionGroup) constrastMethodGroup;
                OptionGroup selectedOption = constrastMethodGroup2.getSelectedOptionGroup();
                if (selectedOption != null) {
                    method = selectedOption.getLabel();
                }
                contrastEnhancement = (ContrastEnhancement) getStyleFactory().contrastEnhancement(gammaExpression, method);
            }
        }
        channelType = getStyleFactory().createSelectedChannelType(channelName, contrastEnhancement);
    }
    return channelType;
}
Also used : SelectedChannelType(org.geotools.styling.SelectedChannelType) ContrastEnhancement(org.geotools.styling.ContrastEnhancement) OptionGroup(com.sldeditor.ui.detail.config.base.OptionGroup) MultiOptionGroup(com.sldeditor.ui.detail.config.base.MultiOptionGroup) Expression(org.opengis.filter.expression.Expression) GroupConfigInterface(com.sldeditor.ui.detail.config.base.GroupConfigInterface) MultiOptionGroup(com.sldeditor.ui.detail.config.base.MultiOptionGroup)

Aggregations

GroupConfigInterface (com.sldeditor.ui.detail.config.base.GroupConfigInterface)45 MultiOptionGroup (com.sldeditor.ui.detail.config.base.MultiOptionGroup)18 FieldConfigBase (com.sldeditor.ui.detail.config.FieldConfigBase)13 Expression (org.opengis.filter.expression.Expression)13 OptionGroup (com.sldeditor.ui.detail.config.base.OptionGroup)9 FieldIdEnum (com.sldeditor.common.xml.ui.FieldIdEnum)8 GroupIdEnum (com.sldeditor.common.xml.ui.GroupIdEnum)8 ChannelSelection (org.geotools.styling.ChannelSelection)8 RasterSymbolizer (org.geotools.styling.RasterSymbolizer)7 Test (org.junit.Test)7 GroupConfig (com.sldeditor.ui.detail.config.base.GroupConfig)6 AnchorPoint (org.geotools.styling.AnchorPoint)6 Displacement (org.geotools.styling.Displacement)6 RasterSymbolizerDetails (com.sldeditor.ui.detail.RasterSymbolizerDetails)5 Box (javax.swing.Box)5 ContrastEnhancement (org.geotools.styling.ContrastEnhancement)5 StyleFactoryImpl (org.geotools.styling.StyleFactoryImpl)5 GraphicalSymbol (org.opengis.style.GraphicalSymbol)5 CurrentFieldState (com.sldeditor.ui.detail.config.base.CurrentFieldState)4 Graphic (org.geotools.styling.Graphic)4