vineri, 4 decembrie 2015

[OmniFaces utilities 2.0] Format the given number in the given pattern


[OmniFaces utilities] The formatNumber() function format the given number in the given pattern. This is useful when you want to format numbers in for example the title attribute of an UI component, or the itemLabel attribute of select item, or wherever you can't use the <f:convertNumber> tag. The format locale will be set to the one as obtained by Faces#getLocale().

Function:
See also: Faces#getLocale()
Usage:

Let's suppose that we have a map that contains several chemistry numbers, as below:

// in real cases, you may hit a database
private final Map<Float, String> chemistryMap
        = Collections.unmodifiableMap(new HashMap<Float, String>() {
 {
  put(27.734336f, "CO2");
  put(337.2054654f, "HF");
  put(313.783343f, "C6H12O6");
  put(1229.2344f, "C8H18");
  put(3.648f, "P4O10"); }
});

public Map<Float, String> getChemistryMap() {
 return chemistryMap;
}

Now, we can display a list containing these chemistry numbers. The quantities are formatted via of:formatNumber() using two patterns:

// #.000
<h:selectOneListbox style="width:100px;">
 <f:selectItems value="#{bookBean.chemistryMap.entrySet()}" var="t" 
                itemLabel="#{of:formatNumber(t.key, '#.000')}" itemValue="#{t.value}"/>
</h:selectOneListbox>

// 000.0000
<h:selectOneListbox style="width:100px;">
 <f:selectItems value="#{bookBean.chemistryMap.entrySet()}" var="t" 
                itemLabel="#{of:formatNumber(t.key, '000.0000')}" itemValue="#{t.value}"/>
</h:selectOneListbox>

Output:

Niciun comentariu:

Trimiteți un comentariu