package railo.runtime.chart;
import java.util.Locale;
import railo.runtime.PageContext;
import railo.runtime.engine.ThreadLocalPageContext;
import railo.runtime.exp.PageException;
import railo.runtime.functions.international.LSCurrencyFormat;
import railo.runtime.functions.international.LSDateFormat;
import railo.runtime.op.Caster;
import railo.runtime.type.dt.DateTime;
public class LabelFormatUtil {
public static final int LABEL_FORMAT_NUMBER = 0;
public static final int LABEL_FORMAT_CURRENCY = 1;
public static final int LABEL_FORMAT_PERCENT = 2;
public static final int LABEL_FORMAT_DATE = 3;
public static String formatDate(PageContext pc,double value) {
DateTime d = Caster.toDate(Caster.toDouble(value),true,null,null);
try {
return LSDateFormat.call(pc, d);
} catch (PageException e) {
}
return Caster.toString(d,null);
}
public static String formatNumber(double value) {
return Caster.toString(value);
}
public static String formatPercent(double value) {
return Caster.toIntValue(value*100)+" %";
}
public static String formatCurrency(PageContext pc,double value) {
//PageContext pc = Thread LocalPageContext.get();
Locale locale=pc==null?Locale.US:pc.getLocale();
return LSCurrencyFormat.local(locale, value);
}
public static String format(int labelFormat, double value) {
switch(labelFormat) {
case LABEL_FORMAT_CURRENCY: return formatCurrency(ThreadLocalPageContext.get(),value);
case LABEL_FORMAT_DATE: return formatDate(ThreadLocalPageContext.get(),value);
case LABEL_FORMAT_NUMBER: return formatNumber(value);
case LABEL_FORMAT_PERCENT: return formatPercent(value);
}
return Caster.toString(value);
}
}