com.automaster.client.ui.paineis.dialogs.editar.EditarUsuario.java Source code

Java tutorial

Introduction

Here is the source code for com.automaster.client.ui.paineis.dialogs.editar.EditarUsuario.java

Source

/*
 * 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);
    }

}