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.TextItem; import com.smartgwt.client.widgets.form.validator.LengthRangeValidator; import com.smartgwt.client.widgets.form.validator.RegExpValidator; 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 EditarEmail extends Window { private int contador; public EditarEmail(final TreeMap<String, ArrayList<TreeMap<String, String>>> clienteEdicao, final ListGridRecord listEmail, final ListGrid listAux, final ListGrid emailsTabBuscaCliente) { setTitle("Editar Email"); setWidth(500); setHeight(280); setShowMinimizeButton(false); setIsModal(true); setShowModalMask(true); centerInPage(); setLayoutAlign(Alignment.CENTER); final DynamicForm formEditEmail = new DynamicForm(); formEditEmail.setAutoFocus(true); Label label = new Label("<strong><h3>Editar Email</h3></strong>"); label.setAlign(Alignment.CENTER); label.setStyleName(scClassName); final TextItem itemDescricao = new TextItem(); itemDescricao.setTitle("Descrio"); itemDescricao.setName("descricao"); itemDescricao.setKeyPressFilter("[a-zA-Z?? [0-9]"); itemDescricao.setCharacterCasing(CharacterCasing.UPPER); itemDescricao.setRequired(true); itemDescricao.setWidth(300); LengthRangeValidator tamanhoDescricao = new LengthRangeValidator(); tamanhoDescricao.setMin(3); itemDescricao.setValidators(tamanhoDescricao); itemDescricao.setValue(listEmail.getAttribute("descricao")); RegExpValidator emailValidator = new RegExpValidator(); emailValidator.setExpression("^([a-zA-Z0-9_.\\-+])+@(([a-zA-Z0-9\\-])+\\.)+[a-zA-Z0-9]{2,4}$"); emailValidator.setErrorMessage("Campo invlido! Ex: nome@dominio.com"); final TextItem itemEmail = new TextItem(); itemEmail.setTitle("Email"); itemEmail.setName("email"); itemEmail.setRequired(true); itemEmail.setWidth(300); itemEmail.setValidators(emailValidator); itemEmail.setValue(listEmail.getAttribute("email")); formEditEmail.setFields(itemDescricao, itemEmail); 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 (formEditEmail.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%"); ArrayList<TreeMap<String, String>> editor = clienteEdicao .get(clienteEdicao.firstKey()); for (TreeMap<String, String> editado : editor) { if (listEmail.getAttribute("codigo") .equalsIgnoreCase(editado.get("codEmail"))) { //editado.put("codEmail", listEmail.getAttribute("codigo")); editado.put("descricaoEmail", itemDescricao.getValueAsString()); editado.put("email", itemEmail.getValueAsString()); } } clienteEdicao.put(editor.get(0).get("codCliente"), editor); //listEmail.setAttribute("codigo", listEmail.getAttribute("codigo")); listEmail.setAttribute("descricao", itemDescricao.getValueAsString()); listEmail.setAttribute("email", itemEmail.getValueAsString()); listAux.refreshRow(listAux.getRecordIndex(listEmail)); int emailClicado = listAux.getRecordIndex(listEmail); //GWT.log("email Clicado:"+emailClicado); emailsTabBuscaCliente.getRecord(emailClicado).setAttribute("descricao", itemDescricao.getValueAsString()); emailsTabBuscaCliente.getRecord(emailClicado).setAttribute("descricao", itemDescricao.getValueAsString()); emailsTabBuscaCliente.getRecord(emailClicado).setAttribute("email", itemEmail.getValueAsString()); emailsTabBuscaCliente.refreshRow(emailClicado); TreeMap<String, String> emailAtualizado = new TreeMap<String, String>(); emailAtualizado.put("codEmail", listEmail.getAttribute("codigo")); emailAtualizado.put("descricao", itemDescricao.getValueAsString()); emailAtualizado.put("email", itemEmail.getValueAsString()); Info.dbService.alterarEmail(emailAtualizado, 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 emailAlterado) { if (emailAlterado == true) { SC.say("Email atualizado com sucesso!"); } else { SC.warn("Erro ao atualizar o email!"); } } }); //GWT.log("" + listEmail.getAttribute("codigo")); janelaCarregando.addItem(mensagem); janelaCarregando.setAnimateTime(1200); janelaCarregando.animateHide(AnimationEffect.FADE); contador = 100; destroy(); } } else { contador = 0; } } }.schedule(50); } } }); addItem(label); addItem(formEditEmail); addItem(hButoes); } }