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