/*
* Created on 11/01/2005
*
* Window - Preferences - Java - Code Style - Code Templates
*/
package br.com.citframework.tld;
import java.text.NumberFormat;
import java.util.Locale;
import java.util.StringTokenizer;
import javax.servlet.jsp.JspException;
import org.apache.struts.taglib.bean.WriteTag;
import br.com.citframework.util.converter.ConverterUtils;
/**
* @author ney
*
* Window - Preferences - Java - Code Style - Code Templates
*/
public class FormatNumber extends WriteTag{
/**
*
*/
private static final long serialVersionUID = 6823703333271138561L;
private String decimal;
private String digitos;
public String getDigitos() {
return digitos;
}
public void setDigitos(String digitos) {
this.digitos = digitos;
}
public FormatNumber(){
setFormatKey("DOUBLE_KEY");
}
protected String formatValue(Object value) throws JspException {
if(value==null || value.toString().trim().length()==0){
return null;
}
if(ConverterUtils.possuiMascara(value.toString())){
value = ConverterUtils.retiraMascara(value.toString());
}
Integer dec = new Integer(getDecimal());
NumberFormat nf = NumberFormat.getInstance(new Locale("pt","BR"));
nf.setMaximumFractionDigits(dec.intValue());
nf.setMinimumFractionDigits(dec.intValue());
if(getDigitos()!=null && getDigitos().trim().length()>0){
nf.setMinimumIntegerDigits(new Integer(getDigitos()).intValue());
}
value = nf.format(new Double(value.toString().trim()));
if(getDecimal().equals("0")){
//System.out.print("Atrb_ant: "+getProperty()+" Valor:"+tmp+" ind "+toString().indexOf("."));
if( value.toString().indexOf(".")>-1){
StringTokenizer tok = new StringTokenizer(value.toString(),".");
String tmp2 ="";
while(tok.hasMoreTokens())
tmp2+=tok.nextToken();
if(tmp2.length()>0){
value = tmp2;
}
}
if(getProperty().toUpperCase().indexOf("CNPJ")>-1){
String mascaraCnpj = "##.###.###/####-##";
value = ConverterUtils.aplicaMascara(value.toString(),mascaraCnpj);
}else if(getProperty().toUpperCase().indexOf("CPF")>-1){
String mascaraCpf = "###.###.###-##";
value = ConverterUtils.aplicaMascara(value.toString(),mascaraCpf);
}
return value.toString();
}
try {
return value.toString();
} catch (Exception e) {
throw new JspException("Erro ao converter propriedade "+getProperty()+" = "+value+". "+e.getMessage());
}
}
public String getDecimal() {
return decimal;
}
public void setDecimal(String decimal) {
this.decimal = decimal;
}
}