package org.broadleafcommerce.core.web.processor;
import java.text.NumberFormat;
import org.broadleafcommerce.common.money.Money;
import org.broadleafcommerce.common.web.BroadleafRequestContext;
import org.broadleafcommerce.core.web.processor.PriceTextDisplayProcessor;
import org.thymeleaf.Arguments;
import org.thymeleaf.dom.Element;
import org.thymeleaf.standard.expression.StandardExpressionProcessor;
public class PriceTextDisplayProcessorEx extends PriceTextDisplayProcessor{
protected String getText(Arguments arguments, Element element, String attributeName) {
Money price;
try {
price = (Money) StandardExpressionProcessor.processExpression(arguments, element.getAttributeValue(attributeName));
} catch (ClassCastException e) {
Number value = (Number) StandardExpressionProcessor.processExpression(arguments, element.getAttributeValue(attributeName));
price = new Money(value.doubleValue());
}
if (price == null) {
return "Not Available";
}
BroadleafRequestContext brc = BroadleafRequestContext.getBroadleafRequestContext();
if (brc.getJavaLocale() != null) {
NumberFormat format = NumberFormat.getCurrencyInstance(brc.getJavaLocale());
if(price.getCurrency().getCurrencyCode().equals("AUD")){
return "☯ " + price.getAmount().toString();
}
format.setCurrency(price.getCurrency());
return format.format(price.getAmount());
} else {
return "$ " + price.getAmount().toString();
}
}
}