Search in sources :

Example 11 with Font

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

the class DefaultSymbols method createDefaultTextSymbolizer.

/**
 * Creates the default text symbolizer.
 *
 * @return the text symbolizer
 */
public static TextSymbolizer createDefaultTextSymbolizer() {
    Expression fontFamily = ff.literal("Serif");
    Expression fontSize = ff.literal(10.0);
    Expression fontStyle = ff.literal("normal");
    Expression fontWeight = ff.literal("normal");
    Expression rotation = ff.literal(0.0);
    Expression label = ff.literal("Test");
    String geometryFieldName = null;
    Expression geometryField = ff.property(geometryFieldName);
    String name = Localisation.getString(SLDTreeTools.class, "TreeItem.newText");
    AnchorPoint anchor = null;
    Displacement displacement = null;
    PointPlacement pointPlacement = (PointPlacement) styleFactory.pointPlacement(anchor, displacement, rotation);
    Expression fillColour = ff.literal(DEFAULT_COLOUR);
    Expression fillColourOpacity = ff.literal(1.0);
    Fill fill = styleFactory.fill(null, fillColour, fillColourOpacity);
    Halo halo = null;
    List<Expression> fontFamilyList = new ArrayList<Expression>();
    fontFamilyList.add(fontFamily);
    Font font = (Font) styleFactory.font(fontFamilyList, fontStyle, fontWeight, fontSize);
    Description description = null;
    Unit<Length> unit = null;
    TextSymbolizer newTextSymbolizer = (TextSymbolizer) styleFactory.textSymbolizer(name, geometryField, description, unit, label, font, pointPlacement, halo, fill);
    return newTextSymbolizer;
}
Also used : PointPlacement(org.geotools.styling.PointPlacement) Fill(org.geotools.styling.Fill) Description(org.geotools.styling.Description) ArrayList(java.util.ArrayList) Displacement(org.opengis.style.Displacement) Font(org.geotools.styling.Font) AnchorPoint(org.geotools.styling.AnchorPoint) Expression(org.opengis.filter.expression.Expression) Length(javax.measure.quantity.Length) TextSymbolizer(org.geotools.styling.TextSymbolizer) Halo(org.geotools.styling.Halo)

Example 12 with Font

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

the class TextSymbolizerDetails method updateSymbol.

/**
 * Update symbol.
 */
private void updateSymbol() {
    if (!Controller.getInstance().isPopulating()) {
        Expression haloRadius = fieldConfigVisitor.getExpression(FieldIdEnum.HALO_RADIUS);
        // Label placement
        LabelPlacement labelPlacement = null;
        MultiOptionGroup labelPlacementPanel = (MultiOptionGroup) getGroup(GroupIdEnum.PLACEMENT);
        OptionGroup labelPlacementOption = labelPlacementPanel.getSelectedOptionGroup();
        if (labelPlacementOption.getId() == GroupIdEnum.POINTPLACEMENT) {
            AnchorPoint anchor = null;
            GroupConfigInterface anchorPointPanel = getGroup(GroupIdEnum.ANCHORPOINT);
            if (anchorPointPanel == null) {
                String errorMessage = String.format("%s : %s", Localisation.getString(TextSymbolizerDetails.class, "TextSymbol.error1"), GroupIdEnum.ANCHORPOINT);
                ConsoleManager.getInstance().error(this, errorMessage);
            } else if (anchorPointPanel.isPanelEnabled()) {
                Expression anchorPointH = fieldConfigVisitor.getExpression(FieldIdEnum.ANCHOR_POINT_H);
                Expression anchorPointV = fieldConfigVisitor.getExpression(FieldIdEnum.ANCHOR_POINT_V);
                anchor = (AnchorPoint) getStyleFactory().anchorPoint(anchorPointH, anchorPointV);
            }
            // 
            // Displacement
            // 
            Displacement displacement = null;
            GroupConfigInterface displacementPanel = getGroup(GroupIdEnum.DISPLACEMENT);
            if (displacementPanel == null) {
                ConsoleManager.getInstance().error(this, String.format("%s : %s", Localisation.getString(TextSymbolizerDetails.class, "TextSymbol.error1"), GroupIdEnum.DISPLACEMENT));
            } else if (displacementPanel.isPanelEnabled()) {
                displacement = getStyleFactory().displacement(fieldConfigVisitor.getExpression(FieldIdEnum.DISPLACEMENT_X), fieldConfigVisitor.getExpression(FieldIdEnum.DISPLACEMENT_Y));
            }
            // 
            // Rotation
            // 
            Expression rotation = null;
            GroupConfigInterface rotationPanel = getGroup(GroupIdEnum.ROTATION);
            if (rotationPanel == null) {
                ConsoleManager.getInstance().error(this, String.format("%s : %s", Localisation.getString(TextSymbolizerDetails.class, "TextSymbol.error1"), GroupIdEnum.ROTATION));
            } else if (rotationPanel.isPanelEnabled()) {
                rotation = fieldConfigVisitor.getExpression(FieldIdEnum.ANGLE);
            }
            labelPlacement = getStyleFactory().pointPlacement(anchor, displacement, rotation);
        } else if (labelPlacementOption.getId() == GroupIdEnum.LINEPLACEMENT) {
            Expression offset = fieldConfigVisitor.getExpression(FieldIdEnum.PERPENDICULAR_OFFSET);
            Expression initialGap = fieldConfigVisitor.getExpression(FieldIdEnum.INITIAL_GAP);
            Expression gap = fieldConfigVisitor.getExpression(FieldIdEnum.GAP);
            boolean repeated = fieldConfigVisitor.getBoolean(FieldIdEnum.REPEATED);
            boolean aligned = fieldConfigVisitor.getBoolean(FieldIdEnum.ALIGN);
            boolean generalizedLine = fieldConfigVisitor.getBoolean(FieldIdEnum.GENERALISED_LINE);
            labelPlacement = getStyleFactory().linePlacement(offset, initialGap, gap, repeated, aligned, generalizedLine);
        }
        FieldConfigColour fdmFillColour = (FieldConfigColour) fieldConfigManager.get(FieldIdEnum.FILL_COLOUR);
        Expression fillColour = fdmFillColour.getColourExpression();
        Expression fillColourOpacity = fieldConfigVisitor.getExpression(FieldIdEnum.TEXT_OPACITY);
        Fill fill = getStyleFactory().createFill(fillColour, fillColourOpacity);
        FieldConfigColour fdmHaloColour = (FieldConfigColour) fieldConfigManager.get(FieldIdEnum.HALO_COLOUR);
        Expression haloFillColour = fdmHaloColour.getColourExpression();
        Expression haloFillColourOpacity = fdmHaloColour.getColourOpacityExpression();
        Fill haloFill = getStyleFactory().fill(null, haloFillColour, haloFillColourOpacity);
        // 
        // Halo
        // 
        Halo halo = null;
        GroupConfigInterface haloPanel = getGroup(GroupIdEnum.HALO);
        if (haloPanel.isPanelEnabled()) {
            halo = (Halo) getStyleFactory().halo(haloFill, haloRadius);
        }
        // 
        // Font
        // 
        Font font = extractFont();
        // Any changes made to the font details need to be reflected
        // back to the FieldConfigFontPreview field
        fieldConfigVisitor.populateFontField(FieldIdEnum.FONT_PREVIEW, font);
        StandardData standardData = getStandardData();
        Expression label = fieldConfigVisitor.getExpression(FieldIdEnum.LABEL);
        Expression geometryField = fieldConfigVisitor.getExpression(FieldIdEnum.GEOMETRY);
        String geometryFieldName = null;
        Expression defaultGeometryField = getFilterFactory().property(geometryFieldName);
        TextSymbolizer textSymbolizer = (TextSymbolizer) getStyleFactory().textSymbolizer(standardData.name, defaultGeometryField, standardData.description, standardData.unit, label, font, labelPlacement, halo, fill);
        if ((geometryField != null) && !geometryField.toString().isEmpty()) {
            textSymbolizer.setGeometry(geometryField);
        }
        if (vendorOptionTextFactory != null) {
            vendorOptionTextFactory.updateSymbol(textSymbolizer);
        }
        SelectedSymbol.getInstance().replaceSymbolizer(textSymbolizer);
        this.fireUpdateSymbol();
    }
}
Also used : Fill(org.opengis.style.Fill) Displacement(org.geotools.styling.Displacement) Font(org.geotools.styling.Font) OptionGroup(com.sldeditor.ui.detail.config.base.OptionGroup) MultiOptionGroup(com.sldeditor.ui.detail.config.base.MultiOptionGroup) AnchorPoint(org.geotools.styling.AnchorPoint) LabelPlacement(org.geotools.styling.LabelPlacement) Expression(org.opengis.filter.expression.Expression) TextSymbolizer(org.geotools.styling.TextSymbolizer) FieldConfigColour(com.sldeditor.ui.detail.config.FieldConfigColour) GroupConfigInterface(com.sldeditor.ui.detail.config.base.GroupConfigInterface) MultiOptionGroup(com.sldeditor.ui.detail.config.base.MultiOptionGroup) Halo(org.geotools.styling.Halo)

Example 13 with Font

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

the class FieldConfigFont method populateField.

/**
 * Populate string field, overridden if necessary.
 *
 * @param value the value
 */
@Override
public void populateField(String value) {
    StyleBuilder styleBuilder = new StyleBuilder();
    Font font = styleBuilder.createFont(defaultValue, DEFAULT_FONT_SIZE);
    populateField(font);
}
Also used : StyleBuilder(org.geotools.styling.StyleBuilder) Font(org.geotools.styling.Font)

Example 14 with Font

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

the class FieldConfigFontPreview method populateField.

/**
 * Populate string field, overridden if necessary.
 *
 * @param value the value
 */
@Override
public void populateField(String value) {
    StyleBuilder styleBuilder = new StyleBuilder();
    Font font = styleBuilder.createFont(defaultValue, DEFAULT_FONT_SIZE);
    populateField(font);
}
Also used : StyleBuilder(org.geotools.styling.StyleBuilder) Font(org.geotools.styling.Font)

Example 15 with Font

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

the class FontUtils method getFont.

/**
 * Converts a org.geotools.styling.Font to java.awt.Font
 *
 * @param font the GeoTools font
 * @return the Java font
 */
public static java.awt.Font getFont(Font font) {
    LiteralExpressionImpl sizeExpression = ((LiteralExpressionImpl) font.getSize());
    Object obj = sizeExpression.getValue();
    int size = 10;
    if (obj instanceof String) {
        size = Integer.valueOf((String) obj);
    } else if (obj instanceof Double) {
        size = ((Double) obj).intValue();
    } else {
        size = Integer.valueOf(((String) obj).toString());
    }
    int styleMask = java.awt.Font.PLAIN;
    String styleName = font.getStyle().toString();
    if (styleName != null) {
        if (styleName.compareToIgnoreCase("ITALIC") == 0) {
            styleMask |= java.awt.Font.ITALIC;
        }
    }
    String weightName = font.getWeight().toString();
    if (weightName != null) {
        if (weightName.compareToIgnoreCase("BOLD") == 0) {
            styleMask |= java.awt.Font.BOLD;
        }
    }
    String name = font.getFamily().get(0).toString();
    java.awt.Font newFont = new java.awt.Font(name, styleMask, size);
    return newFont;
}
Also used : LiteralExpressionImpl(org.geotools.filter.LiteralExpressionImpl) Font(org.geotools.styling.Font)

Aggregations

Font (org.geotools.styling.Font)23 TextSymbolizer (org.geotools.styling.TextSymbolizer)9 Test (org.junit.Test)8 Expression (org.opengis.filter.expression.Expression)7 ArrayList (java.util.ArrayList)6 Rule (org.geotools.styling.Rule)5 StyleBuilder (org.geotools.styling.StyleBuilder)5 StyleFactoryImpl (org.geotools.styling.StyleFactoryImpl)5 FilterFactory (org.opengis.filter.FilterFactory)5 AnchorPoint (org.geotools.styling.AnchorPoint)4 FeatureTypeStyle (org.geotools.styling.FeatureTypeStyle)4 Style (org.geotools.styling.Style)4 StyledLayerDescriptor (org.geotools.styling.StyledLayerDescriptor)4 FieldConfigCommonData (com.sldeditor.ui.detail.config.FieldConfigCommonData)3 Displacement (org.geotools.styling.Displacement)3 Halo (org.geotools.styling.Halo)3 NamedLayer (org.geotools.styling.NamedLayer)3 Symbolizer (org.geotools.styling.Symbolizer)3 SLDData (com.sldeditor.common.data.SLDData)2 StyleWrapper (com.sldeditor.common.data.StyleWrapper)2