I am using DynamicJasper (3.0.13) API for generating PDF.
Is it possible to keep field value alignment center if value is "-" otherwise horizontal. My current jrxml field is as given follow.
<textField>
<reportElement uuid="105ab8ed-5b63" x="0" y="0" width="200" height="20"/>
<textElement>
<font size="15"/>
</textElement>
<textFieldExpression>
<![CDATA[$F{firstName}]]>
</textFieldExpression>
</textField>
finally I got answer as per my structure for creating dynamic jasper template.
/**----------START------setting up conditional style and adding it in jasper design---------------*/
String expressionText = "$F{firstName}.trim().equals("-")";
JRDesignExpression cellExpression = new JRDesignExpression();
cellExpression.setText(expressionText);
JRDesignConditionalStyle conditionalCellStyle = new JRDesignConditionalStyle();
JRDesignStyle baseStyle = new JRDesignStyle();
conditionalCellStyle.setParentStyle(baseStyle);
conditionalCellStyle.setConditionExpression(cellExpression);
conditionalCellStyle.setHorizontalAlignment(HorizontalAlignEnum.CENTER);
baseStyle.setName("CONDITIONAL_STYLE");
baseStyle.setHorizontalAlignment(HorizontalAlignEnum.LEFT);
baseStyle.setBold(Boolean.FALSE);
baseStyle.setItalic(Boolean.FALSE);
baseStyle.setStrikeThrough(Boolean.FALSE);
baseStyle.setUnderline(Boolean.FALSE);
baseStyle.addConditionalStyle(conditionalCellStyle);
getJasperDesign().addStyle(baseStyle); //(here getJasperDesign() is a object of JasperDesign)
/**---------END-------setting up conditional style and adding it in jasper design---------------*/
/**----------START------setting up my text field---------------*/
JRDesignTextField cellTextField = new JRDesignTextField();
/**---------------------setting all other properties of textField--------------------*/
cellTextField.setStyle(getJasperDesign().getStylesMap().get("CONDITIONAL_STYLE")); //(here getJasperDesign() is a object of JasperDesign)
/**----------END------setting up my text field---------------*/