Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.automaster.client.ui.paineis.tabs.financeiro.dialogs; import com.automaster.client.Info; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.Timer; import com.smartgwt.client.types.Alignment; import com.smartgwt.client.types.AnimationEffect; import com.smartgwt.client.types.CharacterCasing; import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.IButton; import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.Window; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; import com.smartgwt.client.widgets.events.CloseClickEvent; import com.smartgwt.client.widgets.events.CloseClickHandler; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.form.fields.events.ChangedEvent; import com.smartgwt.client.widgets.form.fields.events.ChangedHandler; import com.smartgwt.client.widgets.form.fields.events.KeyPressEvent; import com.smartgwt.client.widgets.form.fields.events.KeyPressHandler; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.layout.HLayout; import java.util.ArrayList; import java.util.TreeMap; /** * * @author Adriano */ public class EditarJurosFatura extends Window { private int contador; private String campo; private boolean flagItemValor = false; //private String novoJurosEmultaApagar=""; private double novototalFaturas = 0; public EditarJurosFatura(final ListGrid listFaturas, final ListGridRecord fatRecord, final ArrayList<TreeMap<String, String>> arrayFaturasBD, final Label labelfaturasApagar, final double totalFaturasApagar, final NovoLancamento objLancamento) { //novototalFaturas = totalFaturasApagar; //GWT.log("codCliente"+fatRecord.getAttributeAsString("dataFatura")); setTitle("Editar Fatura"); setWidth(400); setHeight(275); setShowMinimizeButton(false); setIsModal(true); setShowModalMask(true); centerInPage(); setLayoutAlign(Alignment.CENTER); final DynamicForm formEditarFatura = new DynamicForm(); formEditarFatura.setAutoFocus(true); formEditarFatura.setWidth(350); Label label = new Label("<strong><h3>Editar juros e multa da fatura</h3></strong>"); label.setAlign(Alignment.CENTER); //label.setHeight(20); // final DateItem itemData = new DateItem("data", "Data"); // itemData.setRequired(true); // itemData.setUseMask(true); // itemData.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE); // itemData.setValue(fatRecord.getAttributeAsString("dataFatura")); // itemData.setHint("<nbr>*</nbr>"); // itemData.setWidth(350); // itemData.setDisabled(true); // // final TextItem itemValor = new TextItem(); // itemValor.setTitle("Valor"); // itemValor.setName("valor"); // itemValor.setRequired(true); // itemValor.setHint("<nbr>*</nbr>"); // itemValor.setValue(fatRecord.getAttributeAsString("valor")); // itemValor.setCharacterCasing(CharacterCasing.UPPER); // itemValor.setWidth(350); // itemValor.setHint("<nbr>*</nbr>"); // itemValor.setDisabled(true); // // final TextItem itemMes = new TextItem(); // itemMes.setTitle("Ms de ref."); // itemMes.setName("mes"); // itemMes.setMask(">LLL/####"); // itemMes.setRequired(true); // itemMes.setHint("<nbr>*</nbr>"); // itemMes.setMaskSaveLiterals(true); // itemMes.setCharacterCasing(CharacterCasing.UPPER); // itemMes.setWidth(350); // itemMes.setHint("<nbr>*</nbr>"); // itemMes.setValue(fatRecord.getAttributeAsString("mesReferencia")); // itemMes.setDisabled(true); // // final TextItem itemValorTotal = new TextItem(); // itemValorTotal.setTitle("Valor total"); // itemValorTotal.setName("valorTotal"); // itemValorTotal.setMaskPromptChar("0"); // itemValorTotal.setRequired(true); // itemValorTotal.setHint("<nbr>*</nbr>"); // itemValorTotal.setMaskSaveLiterals(true); // itemValorTotal.setCharacterCasing(CharacterCasing.UPPER); // itemValorTotal.setWidth(350); // itemValorTotal.setHint("<nbr>*</nbr>"); // itemValorTotal.setValue(fatRecord.getAttributeAsString("valorTotal")); // itemValorTotal.setDisabled(true); // // final TextItem itemValorpago = new TextItem(); // itemValorpago.setTitle("Valor Pago"); // itemValorpago.setName("valorPago"); // itemValorpago.setMaskPromptChar("0"); // itemValorpago.setRequired(true); // itemValorpago.setHint("<nbr>*</nbr>"); // itemValorpago.setMaskSaveLiterals(true); // itemValorpago.setCharacterCasing(CharacterCasing.UPPER); // itemValorpago.setWidth(350); // itemValorpago.setHint("<nbr>*</nbr>"); // itemValorpago.setValue(fatRecord.getAttributeAsString("valorPago")); // itemValorpago.setDisabled(true); final TextItem itemJurosEmultaDesabilitado = new TextItem(); itemJurosEmultaDesabilitado.setTitle("taxa atual"); itemJurosEmultaDesabilitado.setName("jurosEmultaDesabilitado"); itemJurosEmultaDesabilitado.setRequired(true); itemJurosEmultaDesabilitado.setHint("<nbr>*</nbr>"); itemJurosEmultaDesabilitado.setMaskSaveLiterals(true); itemJurosEmultaDesabilitado.setCharacterCasing(CharacterCasing.UPPER); itemJurosEmultaDesabilitado.setWidth(200); itemJurosEmultaDesabilitado.setHint("<nbr>*</nbr>"); itemJurosEmultaDesabilitado.setDisabled(true); itemJurosEmultaDesabilitado.setValue(fatRecord.getAttribute("jurosEmulta")); final TextItem itemJurosEmulta = new TextItem(); itemJurosEmulta.setTitle("nova taxa"); itemJurosEmulta.setName("jurosEmulta"); itemJurosEmulta.setRequired(true); itemJurosEmulta.setHint("<nbr>*</nbr>"); itemJurosEmulta.setMaskSaveLiterals(true); itemJurosEmulta.setCharacterCasing(CharacterCasing.UPPER); itemJurosEmulta.setWidth(200); itemJurosEmulta.setHint("<nbr>*</nbr>"); itemJurosEmulta.setValue(fatRecord.getAttribute("jurosEmulta")); itemJurosEmulta.addKeyPressHandler(new KeyPressHandler() { @Override public void onKeyPress(KeyPressEvent event) { String tecla; tecla = event.getKeyName(); //GWT.log("Tecla "+ tecla + " KeyCod = " + event.getCharacterValue()); //GWT.log("Objeto JavaScript "+ Info.FormataMoeda(itemValor.getValueAsString(), ".", ",", tecla)); String aux = ""; if (event.getCharacterValue() != null && event.getCharacterValue() >= 48 && event.getCharacterValue() <= 57) { aux = Info.FormataMoeda( (itemJurosEmulta.getDisplayValue() != null) ? itemJurosEmulta.getDisplayValue() : "0", ".", ",", tecla); flagItemValor = true; } //GWT.log("Aux="+aux); campo = aux; } }); itemJurosEmulta.addChangedHandler(new ChangedHandler() { @Override public void onChanged(ChangedEvent event) { //com.google.gwt.core.shared.GWT.log("Entrou no changed: "+campo); if (flagItemValor) { itemJurosEmulta.setValue(campo); } flagItemValor = false; } }); final TextItem itemValorApagar = new TextItem(); itemValorApagar.setTitle("Valor a pagar"); itemValorApagar.setName("valorApagar"); itemValorApagar.setMaskPromptChar("0"); itemValorApagar.setRequired(true); itemValorApagar.setHint("<nbr>*</nbr>"); itemValorApagar.setMaskSaveLiterals(true); itemValorApagar.setCharacterCasing(CharacterCasing.UPPER); itemValorApagar.setWidth(350); itemValorApagar.setHint("<nbr>*</nbr>"); itemValorApagar.setValue(fatRecord.getAttributeAsString("valorApagar")); //GWT.log("record.getAttributeAsString(\"valorApagar\"): "+fatRecord.getAttributeAsString("valorApagar")); formEditarFatura.setItems(itemJurosEmultaDesabilitado, itemJurosEmulta); HLayout hButoes = new HLayout(); hButoes.setWidth(100); hButoes.setMembersMargin(3); hButoes.setLayoutAlign(Alignment.CENTER); IButton salvar = new IButton("Salvar"); hButoes.setMargin(5); hButoes.addMember(salvar); addCloseClickHandler(new CloseClickHandler() { @Override public void onCloseClick(CloseClickEvent event) { destroy(); } }); salvar.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (formEditarFatura.validate()) { if (Double.parseDouble(itemJurosEmulta.getDisplayValue().replaceAll("\\.", "").replaceAll(",", "\\.")) <= Double .parseDouble((fatRecord.getAttributeAsString("jurosEmulta") .replaceAll("\\.", "").replaceAll(",", "\\.")))) { contador = 0; final Window janelaCarregando = new Window(); janelaCarregando.setShowTitle(false); janelaCarregando.setWidth(100); janelaCarregando.setHeight(50); janelaCarregando.setShowEdges(false); janelaCarregando.setShowCloseButton(false); janelaCarregando.setShowMinimizeButton(false); janelaCarregando.setIsModal(true); janelaCarregando.setShowModalMask(true); janelaCarregando.centerInPage(); janelaCarregando.setLayoutAlign(Alignment.CENTER); final Label mensagem = new Label("Carregando.."); mensagem.setHeight(16); new Timer() { public void run() { if (contador != 100) { contador += 1 + (int) (5 * Math.random()); schedule(1 + (int) (50 * Math.random())); mensagem.setContents("Carregando: " + contador + "%"); janelaCarregando.addItem(mensagem); janelaCarregando.setAnimateTime(1200); janelaCarregando.animateShow(AnimationEffect.FADE); if (contador >= 100) { mensagem.setContents("Carregando: 100%"); //GWT.log(itemJurosEmulta.getDisplayValue()); //GWT.log(": "+novoJurosEmultaApagar); double valor = Double.parseDouble(fatRecord.getAttributeAsString("valor") .replaceAll("\\.", "").replaceAll(",", "\\.")); double antigoValorApagar = Double .parseDouble(fatRecord.getAttributeAsString("valorApagar") .replaceAll("\\.", "").replaceAll(",", "\\.")); //GWT.log("valorApagar record antigo: "+fatRecord.getAttributeAsString("valorApagar")); //novoJurosEmultaApagar = itemJurosEmulta.getDisplayValue().replaceAll("\\.", "").replaceAll("\\.", ""); double valorPago = Double .parseDouble(fatRecord.getAttributeAsString("valorPago") .replaceAll("\\.", "").replaceAll(",", "\\.")); double jurosEmultaAtual = Double.parseDouble(itemJurosEmulta .getDisplayValue().replaceAll("\\.", "").replaceAll(",", "\\.")); //GWT.log("jurosEmultaAtual: " + jurosEmultaAtual); double novoValorApagar = valor - valorPago + jurosEmultaAtual; novototalFaturas = novoValorApagar + (totalFaturasApagar - antigoValorApagar); //GWT.log("totalFaturasApagar: " + totalFaturasApagar); //GWT.log("antigoValorApagar: " + antigoValorApagar); //GWT.log("jurosEmulta: " + novoJurosEmultaApagar); //GWT.log("novototalFaturas: " + novototalFaturas); fatRecord.setAttribute("jurosEmulta", Info.formataSaldo(Info.formataDecimal(jurosEmultaAtual))); fatRecord.setAttribute("valorTotal", Info.formataSaldo(Info.formataDecimal(novoValorApagar))); fatRecord.setAttribute("valorApagar", Info.formataSaldo(Info.formataDecimal(novoValorApagar))); listFaturas.refreshRow(listFaturas.getRecordIndex(fatRecord)); labelfaturasApagar.redraw(); labelfaturasApagar.setContents( "<strong style=\"font-size:22px; color:red;\">total de dbito: - R$" + Info.formataSaldo(Info.formataDecimal(novototalFaturas)) + " </strong>"); arrayFaturasBD.get(listFaturas.getRecordIndex(fatRecord)).put("jurosEmulta", String.valueOf( Info.formataSaldo(Info.formataDecimal(jurosEmultaAtual)))); //GWT.log("jurosEmulta arrayBD"+ arrayFaturasBD.get(listFaturas.getRecordIndex(fatRecord)).get("jurosEmulta")); arrayFaturasBD.get(listFaturas.getRecordIndex(fatRecord)).put("valorTotal", String.valueOf( Info.formataSaldo(Info.formataDecimal(novoValorApagar)))); arrayFaturasBD.get(listFaturas.getRecordIndex(fatRecord)).put("valorApagar", String.valueOf( Info.formataSaldo(Info.formataDecimal(novoValorApagar)))); //GWT.log("valorApagar arrayBD"+ arrayFaturasBD.get(listFaturas.getRecordIndex(fatRecord)).get("valorApagar")); janelaCarregando.addItem(mensagem); janelaCarregando.setAnimateTime(1200); janelaCarregando.animateHide(AnimationEffect.FADE); objLancamento.setTotalFaturasApagar(novototalFaturas); contador = 100; destroy(); } } else { contador = 0; } } }.schedule(50); } else { SC.warn("O desconto maior que o valor da multa e os juros!"); formEditarFatura.focusInItem(itemJurosEmulta); itemJurosEmulta.clearValue(); } } } }); addItem(label); addItem(formEditarFatura); addItem(hButoes); } }