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.dialogs.editar; import com.automaster.client.Info; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.rpc.AsyncCallback; 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.TextAreaItem; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.form.validator.LengthRangeValidator; 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 EditarPessoaAutorizada extends Window { private int contador; public EditarPessoaAutorizada(final ListGrid listPesAut, final ListGridRecord recordEditarVeiculo, final ArrayList<TreeMap<String, String>> dadosVeiculoCopia) { setTitle("Novo Padro de Ligao"); setWidth(500); setHeight(400); setShowMinimizeButton(false); setIsModal(true); setShowModalMask(true); centerInPage(); setLayoutAlign(Alignment.CENTER); final Window windowAux = this; Label label = new Label("<strong><h3>Cadastrar Nova Pessoa Autorizada</h3></strong>"); label.setAlign(Alignment.CENTER); label.setStyleName(scClassName); final DynamicForm formEditPesAut = new DynamicForm(); formEditPesAut.setMargin(15); formEditPesAut.setAutoFocus(true); final TextItem itemNome = new TextItem(); itemNome.setTitle("Nome"); itemNome.setName("nome"); itemNome.setKeyPressFilter("[a-zA-Z? [0-9]"); itemNome.setRequired(true); itemNome.setCharacterCasing(CharacterCasing.UPPER); itemNome.setWidth(300); LengthRangeValidator tamanhoNome = new LengthRangeValidator(); tamanhoNome.setMin(3); itemNome.setValidators(tamanhoNome); itemNome.setValue(recordEditarVeiculo.getAttribute("nomePes")); final TextItem itemTelefone = new TextItem(); itemTelefone.setTitle("Nmero"); itemTelefone.setName("numero"); itemTelefone.setRequired(true); itemTelefone.setMask("(##)#####-####"); itemTelefone.setWidth(300); LengthRangeValidator tamanhoTelefone = new LengthRangeValidator(); tamanhoTelefone.setMin(11); itemTelefone.setValidators(tamanhoTelefone); itemTelefone.setValue(recordEditarVeiculo.getAttribute("telefonePes")); final TextAreaItem descricao = new TextAreaItem(); descricao.setTitle("Descrio"); descricao.setName("descricao"); descricao.setPrintFullText(false); descricao.setWidth(300); descricao.setValue( (recordEditarVeiculo.getAttribute("descricaoPes").equalsIgnoreCase("Sem informao") ? "" : recordEditarVeiculo.getAttribute("descricaoPes"))); formEditPesAut.setFields(itemNome, itemTelefone, descricao); addCloseClickHandler(new CloseClickHandler() { @Override public void onCloseClick(CloseClickEvent event) { destroy(); } }); HLayout hButoes = new HLayout(); hButoes.setWidth(200); hButoes.setMembersMargin(3); hButoes.setLayoutAlign(Alignment.CENTER); IButton cadastrar = new IButton("Cadastrar"); IButton limpar = new IButton("Limpar"); hButoes.setMargin(5); hButoes.addMember(cadastrar); hButoes.addMember(limpar); cadastrar.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (formEditPesAut.validate()) { 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) { //destroy(); contador += 1 + (int) (5 * Math.random()); schedule(1 + (int) (50 * Math.random())); mensagem.setContents("Carregando: " + contador + "%"); //GWT.log("!=100: "+contador); janelaCarregando.addItem(mensagem); janelaCarregando.setAnimateTime(1200); janelaCarregando.animateShow(AnimationEffect.FADE); if (contador >= 100) { mensagem.setContents("Carregando: 100%"); for (TreeMap<String, String> editado : dadosVeiculoCopia) { if (recordEditarVeiculo.getAttribute("codigo") .equalsIgnoreCase(editado.get("codPes"))) { editado.put("codPes", recordEditarVeiculo.getAttribute("codigo")); editado.put("nomePes", itemNome.getValueAsString()); editado.put("telefonePes", itemTelefone.getValueAsString()); editado.put("descricaoPes", descricao.getValueAsString()); } } recordEditarVeiculo.setAttribute("codigo", recordEditarVeiculo.getAttribute("codigo")); recordEditarVeiculo.setAttribute("nomePes", itemNome.getValueAsString()); recordEditarVeiculo.setAttribute("telefonePes", Info.formataTelefone(itemTelefone.getValueAsString())); recordEditarVeiculo.setAttribute("descricaoPes", (descricao.getValueAsString() == null || descricao.getValueAsString().equalsIgnoreCase("")) ? "sem informao" : descricao.getValueAsString()); listPesAut.refreshRow(listPesAut.getRecordIndex(recordEditarVeiculo)); TreeMap<String, String> pesAutAtualizado = new TreeMap<String, String>(); pesAutAtualizado.put("codPes", recordEditarVeiculo.getAttribute("codigo")); pesAutAtualizado.put("nomePes", itemNome.getValueAsString()); pesAutAtualizado.put("telefonePes", itemTelefone.getValueAsString()); pesAutAtualizado.put("descricaoPes", descricao.getValueAsString()); Info.dbService.alterarPessoaAutorizada(pesAutAtualizado, new AsyncCallback<Boolean>() { @Override public void onFailure(Throwable caught) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void onSuccess(Boolean padroaAlterado) { if (padroaAlterado == true) { SC.say("Pessoa autorizada atualizada com sucesso!"); } else { SC.warn("ERRO ao atualizar a pessoa autorizada!"); } } }); janelaCarregando.addItem(mensagem); janelaCarregando.setAnimateTime(1200); janelaCarregando.animateHide(AnimationEffect.FADE); contador = 100; janelaCarregando.destroy(); } } else { contador = 0; } } }.schedule(50); windowAux.destroy(); } } }); limpar.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { itemNome.clearValue(); itemTelefone.clearValue(); descricao.clearValue(); formEditPesAut.focusInItem(itemNome); } }); addItem(label); addItem(formEditPesAut); addItem(hButoes); } }