001 package railo.runtime.chart; 002 003 import java.util.Locale; 004 005 import railo.runtime.PageContext; 006 import railo.runtime.engine.ThreadLocalPageContext; 007 import railo.runtime.exp.PageException; 008 import railo.runtime.functions.international.LSCurrencyFormat; 009 import railo.runtime.functions.international.LSDateFormat; 010 import railo.runtime.op.Caster; 011 import railo.runtime.type.dt.DateTime; 012 013 public class LabelFormatUtil { 014 015 016 public static final int LABEL_FORMAT_NUMBER = 0; 017 public static final int LABEL_FORMAT_CURRENCY = 1; 018 public static final int LABEL_FORMAT_PERCENT = 2; 019 public static final int LABEL_FORMAT_DATE = 3; 020 021 public static String formatDate(PageContext pc,double value) { 022 DateTime d = Caster.toDate(Caster.toDouble(value),true,null,null); 023 024 try { 025 return LSDateFormat.call(pc, d); 026 } catch (PageException e) { 027 } 028 return Caster.toString(d,null); 029 } 030 031 public static String formatNumber(double value) { 032 return Caster.toString(value); 033 } 034 035 public static String formatPercent(double value) { 036 return Caster.toIntValue(value*100)+" %"; 037 } 038 039 public static String formatCurrency(PageContext pc,double value) { 040 //PageContext pc = Thread LocalPageContext.get(); 041 Locale locale=pc==null?Locale.US:pc.getLocale(); 042 return LSCurrencyFormat.local(locale, value); 043 } 044 045 public static String format(int labelFormat, double value) { 046 047 switch(labelFormat) { 048 case LABEL_FORMAT_CURRENCY: return formatCurrency(ThreadLocalPageContext.get(),value); 049 case LABEL_FORMAT_DATE: return formatDate(ThreadLocalPageContext.get(),value); 050 case LABEL_FORMAT_NUMBER: return formatNumber(value); 051 case LABEL_FORMAT_PERCENT: return formatPercent(value); 052 } 053 return Caster.toString(value); 054 } 055 }