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.SelectItem; import com.smartgwt.client.widgets.form.fields.TextAreaItem; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.form.fields.events.ChangeEvent; import com.smartgwt.client.widgets.form.fields.events.ChangeHandler; 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.LinkedHashMap; import java.util.TreeMap; /** * * @author Adriano */ public class EditarEndereco extends Window { private int contador; private final SelectItem itemEstado = new SelectItem(); private final SelectItem itemCidade = new SelectItem("Cidade"); public EditarEndereco(final TreeMap<String, ArrayList<TreeMap<String, String>>> clienteEdicao, final ListGridRecord listEnd, final ListGrid listAux, final ListGrid enderecosTabBuscaCliente) { setTitle("Editar Endereo"); setWidth(500); setHeight(500); setShowMinimizeButton(false); setIsModal(true); setShowModalMask(true); centerInPage(); setLayoutAlign(Alignment.CENTER); final DynamicForm formEditEndereco = new DynamicForm(); formEditEndereco.setAutoFocus(true); Label label = new Label("<h3>Editar Endereo</h3>"); label.setAlign(Alignment.CENTER); label.setStyleName(scClassName); //criando radioGroup que o usurio escolhe o tipo de cliente a ser cadastrado final TextItem itemDescricao = new TextItem(); itemDescricao.setTitle("Descrio"); itemDescricao.setName("descricao"); itemDescricao.setRequired(true); itemDescricao.setCharacterCasing(CharacterCasing.UPPER); itemDescricao.setWidth(300); itemDescricao.setValue(listEnd.getAttribute("descricao")); if (itemDescricao.getValue().equals("ENDEREO DE COBRANA")) { itemDescricao.setDisabled(true); } else { itemDescricao.setDisabled(false); } LengthRangeValidator tamanhoTextItem = new LengthRangeValidator(); tamanhoTextItem.setMin(3); final TextItem itemLogradouro = new TextItem("Logradouro"); itemLogradouro.setKeyPressFilter("[a-zA-Z?? [0-9]"); itemLogradouro.setCharacterCasing(CharacterCasing.UPPER); itemLogradouro.setRequired(true); itemLogradouro.setWidth(300); itemLogradouro.setValidators(tamanhoTextItem); itemLogradouro.setValue(listEnd.getAttribute("logradouro")); final TextItem itemNumero = new TextItem("N"); itemNumero.setKeyPressFilter("[a-zA-Z[0-9]"); itemNumero.setCharacterCasing(CharacterCasing.UPPER); itemNumero.setRequired(true); itemNumero.setWidth(50); itemNumero.getAttribute(listEnd.getAttribute("numero")); itemNumero.setValue(listEnd.getAttribute("numero")); final TextItem itemBairro = new TextItem("Bairro"); itemBairro.setKeyPressFilter("[a-zA-Z?? [0-9]"); itemBairro.setCharacterCasing(CharacterCasing.UPPER); itemBairro.setRequired(true); itemBairro.setValidators(tamanhoTextItem); itemBairro.setWidth(300); itemBairro.setValue(listEnd.getAttribute("bairro")); itemEstado.setTitle("Estado"); itemEstado.setName("estado"); itemEstado.setWidth(300); itemEstado.setRequired(true); Info.dbService.buscarTodosEstados(new AsyncCallback<ArrayList<TreeMap<String, String>>>() { @Override public void onFailure(Throwable caught) { throw new UnsupportedOperationException( "Erro ao Listar os Estados, entre em contato com Administrador!"); } @Override public void onSuccess(ArrayList<TreeMap<String, String>> result) { LinkedHashMap<String, String> valueMapEst = new LinkedHashMap<String, String>(); for (TreeMap<String, String> est : result) { valueMapEst.put(est.get("codEstado"), est.get("uf")); } itemEstado.setValueMap(valueMapEst); } }); itemEstado.setDefaultValue(true); itemEstado.setValue(listEnd.getAttribute("estadoCod")); Info.dbService.buscarCidadePorEstado(Integer.parseInt(itemEstado.getValueAsString()), new AsyncCallback<ArrayList<TreeMap<String, String>>>() { @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(ArrayList<TreeMap<String, String>> result) { LinkedHashMap<String, String> valueMapCid = new LinkedHashMap<String, String>(); for (TreeMap<String, String> est : result) { valueMapCid.put(est.get("codCidade"), est.get("nome")); } itemCidade.setValueMap(valueMapCid); itemCidade.setValue(listEnd.getAttribute("cidadeCod")); } }); itemCidade.setWidth(300); itemCidade.setAddUnknownValues(false); itemCidade.setDefaultToFirstOption(true); itemEstado.addChangeHandler(new ChangeHandler() { @Override public void onChange(ChangeEvent event) { String selectedItem = (String) event.getValue(); Info.dbService.buscarCidadePorEstado(Integer.parseInt(selectedItem), new AsyncCallback<ArrayList<TreeMap<String, String>>>() { @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(ArrayList<TreeMap<String, String>> result) { LinkedHashMap<String, String> valueMapCid = new LinkedHashMap<String, String>(); for (TreeMap<String, String> est : result) { valueMapCid.put(est.get("codCidade"), est.get("nome")); } itemCidade.setValueMap(valueMapCid); } }); } }); itemCidade.setRequired(true); LengthRangeValidator tamanhoCep = new LengthRangeValidator(); tamanhoCep.setMin(9); final TextItem itemCep = new TextItem("CEP"); itemCep.setMask("#####-###"); itemCep.setMaskSaveLiterals(true); itemCep.setCharacterCasing(CharacterCasing.UPPER); itemCep.setValidators(tamanhoCep); itemCep.setRequired(true); itemCep.setValue(listEnd.getAttribute("cep")); final TextAreaItem itemReferencia = new TextAreaItem(); itemReferencia.setTitle("Referncia"); //itemReferencia.setRequired(true); itemReferencia.setValidators(tamanhoTextItem); itemReferencia.setWidth(300); itemReferencia.setHeight(100); itemReferencia.setValue(listEnd.getAttribute("referencia")); addCloseClickHandler(new CloseClickHandler() { @Override public void onCloseClick(CloseClickEvent event) { destroy(); } }); HLayout hButoes = new HLayout(); hButoes.setWidth(100); hButoes.setMembersMargin(3); hButoes.setLayoutAlign(Alignment.CENTER); IButton salvar = new IButton("Salvar"); hButoes.addMember(salvar); salvar.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { // GWT.log("editor: "+listEnd.getAttribute("codigo")); if (formEditEndereco.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); //GWT.log("editor: "+clienteEdicao.pollFirstEntry().getValue()); 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 (listEnd.getAttribute("codigo") .equalsIgnoreCase(editado.get("codEndereco"))) { //editado.put("codEndereco", listEnd.getAttribute("codigo")); editado.put("descricaoEndereco", itemDescricao.getValueAsString()); editado.put("logradouro", itemLogradouro.getValueAsString()); editado.put("numeroEndereco", itemNumero.getValueAsString()); editado.put("bairro", itemBairro.getValueAsString()); editado.put("codCidade", itemCidade.getValueAsString()); editado.put("nomeCidade", itemCidade.getDisplayValue()); editado.put("codEstado", itemEstado.getValueAsString()); editado.put("estadoUf", itemEstado.getDisplayValue()); editado.put("cep", itemCep.getValueAsString()); editado.put("referenciaEndereco", itemReferencia.getValueAsString()); } } clienteEdicao.put(editor.get(0).get("codCliente"), editor); listEnd.setAttribute("descricao", itemDescricao.getValueAsString()); listEnd.setAttribute("logradouro", itemLogradouro.getValueAsString()); listEnd.setAttribute("numero", itemNumero.getValueAsString()); listEnd.setAttribute("bairro", itemBairro.getValueAsString()); listEnd.setAttribute("cep", itemCep.getValueAsString()); listEnd.setAttribute("estadoCod", itemEstado.getValueAsString()); listEnd.setAttribute("estado", itemEstado.getDisplayValue()); listEnd.setAttribute("cidadeCod", itemCidade.getValueAsString()); listEnd.setAttribute("cidade", itemCidade.getDisplayValue()); listEnd.setAttribute("referencia", itemReferencia.getValueAsString()); listAux.refreshRow(listAux.getRecordIndex(listEnd)); int endClicado = listAux.getRecordIndex(listEnd); enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("descricao", itemDescricao.getValueAsString()); enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("logradouro", itemLogradouro.getValueAsString()); enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("numero", itemNumero.getValueAsString()); enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("bairro", itemBairro.getValueAsString()); enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("cep", itemCep.getValueAsString()); enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("estadoCod", itemEstado.getValueAsString()); enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("estado", itemEstado.getDisplayValue()); enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("cidadeCod", itemCidade.getValueAsString()); enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("cidade", itemCidade.getDisplayValue()); enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("referencia", itemReferencia.getValueAsString()); enderecosTabBuscaCliente.refreshRow(endClicado); TreeMap<String, String> enderecoAtualizado = new TreeMap<String, String>(); enderecoAtualizado.put("codEndereco", listEnd.getAttribute("codigo")); enderecoAtualizado.put("codCidade", itemCidade.getValueAsString()); enderecoAtualizado.put("descricao", itemDescricao.getValueAsString()); enderecoAtualizado.put("logradouro", itemLogradouro.getValueAsString()); enderecoAtualizado.put("numero", itemNumero.getValueAsString()); enderecoAtualizado.put("bairro", itemBairro.getValueAsString()); enderecoAtualizado.put("cep", itemCep.getValueAsString()); enderecoAtualizado.put("referencia", itemReferencia.getValueAsString()); Info.dbService.alterarEndereco(enderecoAtualizado, 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 enderecoAlterado) { if (enderecoAlterado == true) { SC.say("Endereo atualizado com sucesso!"); } else { SC.warn("ERRO ao atualizar endereo!"); } } }); janelaCarregando.addItem(mensagem); janelaCarregando.setAnimateTime(1200); janelaCarregando.animateHide(AnimationEffect.FADE); contador = 100; destroy(); } } else { contador = 0; } } }.schedule(50); } } }); formEditEndereco.setFields(itemDescricao, itemLogradouro, itemNumero, itemBairro, itemEstado, itemCidade, itemCep, itemReferencia); addItem(label); addItem(formEditEndereco); addItem(hButoes); } }