Estou utilizando rich faces e seu componente JQuery, para realizar formatação de campos decimais, estou utilizando o maskMoney e atribui uma precisão de 3 casas no meu input text, e tenho um campo disabled que é booleano, ele é acionado caso tenha mais coisas associadas a outro item no form abaixo, mesmo sabendo que a função disabled é apenas vísivel ela não faz nada de diferente, quando a minha função disabled é acionada tem como eu tirar as casas decimais dela.
Fiz dessa forma abaixo:
<f:facet name="header">
<h:outputLabel value="#{messages.conversion}"/>
</f:facet>
<h:inputText id="fldConversion" value="#{row.vlConversion}" label="#{messages.conversion}"
maxLength="25" disabled="#{defaultMBean.canDisabledConversion(row)}">
<a4j:ajax event="change" immediate="true" render="@all, partnerItem, dataModel"/>
<f:converter converterId="javax.faces.BigDecimal"/>
<f:validateLength maximum="30" />
</h:outputText>
<rich:jQuery selector="#fldConversion" query="maskMoney({decimal:''.'',allowNegative:false, showSymbol:false, thousands: '''',precision: 3})"/>
E criei esse método para quando estiver desativado o campo:
public BigDecimal canDisableConversionE(TypeDTO row) {
BigDecimal r = row.getConversionValue().setScale(0, RoundingMode.HALF_EVEN);
System.out.println(r);
return r;
}
public Boolean canDisableConversion(TypeDTO row) {
if (row.getId() == 1L && !canDisableConversionE()) {
return false;
}
if (IsWeight(row.getId())) {
return true;
}
return getConfigFacade().canDisableConversionE(row.getConversionValue());
}