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

Java tutorial

Introduction

Here is the source code for com.automaster.client.ui.paineis.dialogs.editar.EditarPessoaAutorizada.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.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);
    }

}