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.core.shared.GWT; 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.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.PasswordItem; import com.smartgwt.client.widgets.form.fields.SelectItem; import com.smartgwt.client.widgets.form.fields.TextItem; 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.LinkedHashMap; import java.util.TreeMap; /** * * @author Adriano */ public class EditarUsuario extends Window { private int contador; private final TreeMap<String, String> usuarioAtualizado = new TreeMap<String, String>(); public EditarUsuario(final TreeMap<String, ArrayList<TreeMap<String, String>>> clienteEdicao, final ListGridRecord listUser, final ListGrid listAux, final ListGrid usuariosTabBuscaCliente) { setTitle("Editar Usurio"); setWidth(500); setHeight(280); setShowMinimizeButton(false); setIsModal(true); setShowModalMask(true); centerInPage(); setLayoutAlign(Alignment.CENTER); final DynamicForm formEditUsuario = new DynamicForm(); formEditUsuario.setAutoFocus(true); Label label = new Label("<strong><h3>Editar Usurio</h3></strong>"); label.setAlign(Alignment.CENTER); label.setStyleName(scClassName); final TextItem itemCampoUser = new TextItem(); itemCampoUser.setName("usuario"); itemCampoUser.setTitle("Usurio"); itemCampoUser.setWidth(300); itemCampoUser.setRequired(true); itemCampoUser.setKeyPressFilter("[a-zA-Z.[0-9]"); itemCampoUser.setValue(listUser.getAttribute("usuario")); //itemCampoUser.setDisabled(true); RegExpValidator usuarioValidator = new RegExpValidator(); usuarioValidator.setExpression("^(([a-zA-Z0-9\\-])+\\.)+[a-zA-Z0-9]"); usuarioValidator.setErrorMessage("Campo invlido! Ex: nome.sobrenome"); itemCampoUser.setValidators(usuarioValidator); final PasswordItem itemSenha = new PasswordItem(); itemSenha.setName("senha"); itemSenha.setTitle("Senha"); itemSenha.setWidth(300); itemSenha.setRequired(true); itemSenha.setKeyPressFilter("[@$%*&%,;a-zA-Z.[0-9]"); itemSenha.setValue(listUser.getAttribute("senha")); final SelectItem itemEstado = new SelectItem(); itemEstado.setTitle("Status"); itemEstado.setName("status"); itemEstado.setWidth(300); itemEstado.setRequired(true); LinkedHashMap<String, String> valueMapEst = new LinkedHashMap<String, String>(); valueMapEst.put("True", "Ativo"); valueMapEst.put("False", "Bloqueado"); itemEstado.setValueMap(valueMapEst); itemEstado.setValue(((listUser.getAttribute("statusCod").equalsIgnoreCase("t")) ? "True" : "False")); final SelectItem itemReset = new SelectItem(); itemReset.setTitle("Restaurar Senha"); itemReset.setName("reset"); itemReset.setWidth(300); itemReset.setRequired(true); LinkedHashMap<String, String> valueMapReset = new LinkedHashMap<String, String>(); valueMapReset.put("True", "Resetado"); valueMapReset.put("False", "Resetar"); itemReset.setValueMap(valueMapReset); //(""+listUser.getAttribute("resetCod")); itemReset.setValue(((listUser.getAttribute("resetCod").equalsIgnoreCase("t")) ? "True" : "False")); formEditUsuario.setFields(itemCampoUser, itemSenha, itemEstado, itemReset); 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 (formEditUsuario.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) { 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%"); if (!itemCampoUser.getValueAsString() .equalsIgnoreCase(listUser.getAttribute("usuario"))) { Info.dbService.buscarPorNomeUsuario(itemCampoUser.getValueAsString(), new AsyncCallback<TreeMap<String, Object>>() { @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(TreeMap<String, Object> result) { if (result == null) { if (formEditUsuario.validate()) { ArrayList<TreeMap<String, String>> editor = clienteEdicao .get(clienteEdicao.firstKey()); for (TreeMap<String, String> editado : editor) { if (listUser.getAttribute("codigo") .equalsIgnoreCase( editado.get("codUsuario"))) { editado.put("codUsuario", listUser.getAttribute("codigo")); editado.put("usuario", itemCampoUser.getValueAsString()); editado.put("senha", itemSenha.getValueAsString()); editado.put("ativoUsuario", itemEstado.getValueAsString()); editado.put("resetUsuario", itemReset.getValueAsString()); //("clienteEdicao"+editado.get("resetUsuario")); } } clienteEdicao.put(editor.get(0).get("codCliente"), editor); listUser.setAttribute("codigo", listUser.getAttribute("codigo")); listUser.setAttribute("usuario", itemCampoUser.getValueAsString()); listUser.setAttribute("statusCod", ((itemEstado.getValueAsString() .equalsIgnoreCase("true")) ? "t" : "f")); listUser.setAttribute("status", ((itemEstado.getValueAsString() .equalsIgnoreCase("true")) ? "Ativo" : "Bloqueado")); listUser.setAttribute("resetUsuario", ((itemReset.getValueAsString() .equalsIgnoreCase("true")) ? "Resetado" : "Resetar")); listUser.setAttribute("senha", itemSenha.getValueAsString()); listAux.refreshRow( listAux.getRecordIndex(listUser)); int usuarioClicado = listAux .getRecordIndex(listUser); usuariosTabBuscaCliente.getRecord(usuarioClicado) .setAttribute("codigo", listUser.getAttribute("codigo")); usuariosTabBuscaCliente.getRecord(usuarioClicado) .setAttribute("usuario", itemCampoUser.getValueAsString()); usuariosTabBuscaCliente.getRecord(usuarioClicado) .setAttribute("statusCod", ((itemEstado.getValueAsString() .equalsIgnoreCase("true")) ? "t" : "f")); usuariosTabBuscaCliente.getRecord(usuarioClicado) .setAttribute("status", ((itemEstado.getValueAsString() .equalsIgnoreCase("true")) ? "Ativo" : "Bloqueado")); usuariosTabBuscaCliente.getRecord(usuarioClicado) .setAttribute("resetUsuario", ((itemReset.getValueAsString() .equalsIgnoreCase("true")) ? "Resetado" : "Resetar")); usuariosTabBuscaCliente.getRecord(usuarioClicado) .setAttribute("senha", itemSenha.getValueAsString()); usuariosTabBuscaCliente.refreshRow(usuarioClicado); usuarioAtualizado.put("codUsuario", listUser.getAttribute("codigo")); usuarioAtualizado.put("usuario", itemCampoUser.getValueAsString()); usuarioAtualizado.put("senha", itemSenha.getValueAsString()); usuarioAtualizado.put("ativo", itemEstado.getValueAsString()); usuarioAtualizado.put("resetUsuario", itemReset.getValueAsString()); //GWT.log("resetado: "+itemReset.getValueAsString()); Info.dbService.alterarUsuario(usuarioAtualizado, 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 usuarioEditado) { if (usuarioEditado == true) { //GWT.log("nome de usurio diferente :"+clienteEdicao); SC.say("Usurio atualizado com sucesso!"); janelaCarregando .addItem(mensagem); janelaCarregando .setAnimateTime(1200); janelaCarregando.animateHide( AnimationEffect.FADE); contador = 100; destroy(); } else { SC.say("ERRO ao atualizar usurio!"); janelaCarregando .addItem(mensagem); janelaCarregando .setAnimateTime(1200); janelaCarregando.animateHide( AnimationEffect.FADE); contador = 100; destroy(); } } }); // destroy(); } } else { janelaCarregando.destroy(); contador = 100; SC.say("Usurio: " + itemCampoUser.getValueAsString() + " j existe"); itemCampoUser.clearValue(); formEditUsuario.focusInItem(itemCampoUser); } } }); } else { if (formEditUsuario.validate()) { ArrayList<TreeMap<String, String>> editor = clienteEdicao .get(clienteEdicao.firstKey()); for (TreeMap<String, String> editado : editor) { if (listUser.getAttribute("codigo") .equalsIgnoreCase(editado.get("codUsuario"))) { editado.put("codUsuario", listUser.getAttribute("codigo")); editado.put("usuario", itemCampoUser.getValueAsString()); editado.put("senha", itemSenha.getValueAsString()); editado.put("ativoUsuario", itemEstado.getValueAsString()); editado.put("resetUsuario", itemReset.getValueAsString()); //GWT.log("clienteEdicao"+editado.get("resetUsuario")); } } clienteEdicao.put(editor.get(0).get("codCliente"), editor); listUser.setAttribute("codigo", listUser.getAttribute("codigo")); listUser.setAttribute("usuario", itemCampoUser.getValueAsString()); listUser.setAttribute("statusCod", ((itemEstado.getValueAsString().equalsIgnoreCase("true")) ? "t" : "f")); listUser.setAttribute("status", ((itemEstado.getValueAsString().equalsIgnoreCase("true")) ? "Ativo" : "Bloqueado")); listUser.setAttribute("resetUsuario", ((itemReset.getValueAsString().equalsIgnoreCase("true")) ? "Resetado" : "Resetar")); listUser.setAttribute("senha", itemSenha.getValueAsString()); listAux.refreshRow(listAux.getRecordIndex(listUser)); int usuarioClicado = listAux.getRecordIndex(listUser); usuariosTabBuscaCliente.getRecord(usuarioClicado).setAttribute("codigo", listUser.getAttribute("codigo")); usuariosTabBuscaCliente.getRecord(usuarioClicado) .setAttribute("usuario", itemCampoUser.getValueAsString()); usuariosTabBuscaCliente.getRecord(usuarioClicado).setAttribute( "statusCod", ((itemEstado.getValueAsString().equalsIgnoreCase("true")) ? "t" : "f")); usuariosTabBuscaCliente.getRecord(usuarioClicado).setAttribute("status", ((itemEstado.getValueAsString().equalsIgnoreCase("true")) ? "Ativo" : "Bloqueado")); usuariosTabBuscaCliente.getRecord(usuarioClicado).setAttribute( "resetUsuario", ((itemReset.getValueAsString().equalsIgnoreCase("true")) ? "Resetado" : "Resetar")); usuariosTabBuscaCliente.getRecord(usuarioClicado).setAttribute("senha", itemSenha.getValueAsString()); usuariosTabBuscaCliente.refreshRow(usuarioClicado); usuarioAtualizado.put("codUsuario", listUser.getAttribute("codigo")); usuarioAtualizado.put("usuario", itemCampoUser.getValueAsString()); usuarioAtualizado.put("senha", itemSenha.getValueAsString()); usuarioAtualizado.put("ativo", itemEstado.getValueAsString()); usuarioAtualizado.put("resetUsuario", itemReset.getValueAsString()); //GWT.log(""+itemReset.getValueAsString()); Info.dbService.alterarUsuario(usuarioAtualizado, 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 usuarioEditado) { if (usuarioEditado == true) { //GWT.log("nome de usurio igual"+clienteEdicao); SC.say("Usurio atualizado com sucesso!"); janelaCarregando.addItem(mensagem); janelaCarregando.setAnimateTime(1200); janelaCarregando.animateHide(AnimationEffect.FADE); contador = 100; destroy(); } else { SC.warn("ERRO ao atualizar usurio!"); janelaCarregando.addItem(mensagem); janelaCarregando.setAnimateTime(1200); janelaCarregando.animateHide(AnimationEffect.FADE); contador = 100; destroy(); } } }); } } } } else { contador = 0; } } }.schedule(50); } } }); addItem(label); addItem(formEditUsuario); addItem(hButoes); } }