cimav.client.view.catalogos.conceptos.ConceptosChosen.java Source code

Java tutorial

Introduction

Here is the source code for cimav.client.view.catalogos.conceptos.ConceptosChosen.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 cimav.client.view.catalogos.conceptos;

import cimav.client.data.domain.Concepto;
import cimav.client.data.domain.ETipoConcepto;
import cimav.client.data.domain.ETipoMovimiento;
import cimav.client.data.rest.BaseREST;
import cimav.client.data.rest.ConceptoREST;
import cimav.client.view.common.EMethod;
import cimav.client.view.common.ETypeResult;
import cimav.client.view.common.MethodEvent;
import com.google.gwt.core.client.GWT;
import com.google.gwt.text.shared.Renderer;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTMLPanel;
import com.google.gwt.user.client.ui.Widget;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.gwtbootstrap3.client.ui.ValueListBox;

/**
 *
 * @author juan.calderon
 */
public class ConceptosChosen extends Composite {

    private static ConceptosChosenUiBinder uiBinder = GWT.create(ConceptosChosenUiBinder.class);

    interface ConceptosChosenUiBinder extends UiBinder<Widget, ConceptosChosen> {
    }

    private final ConceptoREST rest;

    @UiField
    HTMLPanel htmlPanel;

    private final ValueListBox<Concepto> chosen;

    private List<Concepto> conceptos;

    private ETipoConcepto tipoConcepto;
    private ETipoMovimiento tipoMovimiento;

    public ConceptosChosen(ETipoConcepto tipoConcepto, ETipoMovimiento tipoMovimiento) {

        this.tipoConcepto = tipoConcepto;
        this.tipoMovimiento = tipoMovimiento;

        initWidget(uiBinder.createAndBindUi(this));

        chosen = new ValueListBox<>(new Renderer<Concepto>() {
            @Override
            public String render(Concepto object) {
                if (object == null) {
                    return "Ninguno";
                }
                return object.getName();
            }

            @Override
            public void render(Concepto object, Appendable appendable) throws IOException {
                String s = render(object);
                appendable.append(s);
            }
        });

        htmlPanel.add(chosen);

        rest = new ConceptoREST();

        rest.addRESTExecutedListener(new BaseREST.RESTExecutedListener() {
            @Override
            public void onRESTExecuted(MethodEvent restEvent) {
                if (restEvent.getMethod().equals(EMethod.FIND_ALL)) {
                    if (restEvent.getTypeResult().equals(ETypeResult.SUCCESS)) {

                        conceptos = (List<Concepto>) restEvent.getResult();
                        // Agregar el Null como valor vlido
                        // conceptos.add(null);
                        //chosen.setAcceptableValues(conceptos);

                        setConceptosAceptables(); //tipoConcepto, tipoMovimiento);

                    } else {
                        Window.alert("Fall carga de Conceptos");
                    }
                }
            }
        });
        rest.findAll();

    }

    private void setConceptosAceptables(/*ETipoConcepto tipoConcepto, ETipoMovimiento tipoMvto*/) {
        List<Concepto> acceptableConceptos = new ArrayList<>();
        if (this.conceptos == null) {
            this.conceptos = new ArrayList<>();
        }
        for (Concepto concepto : this.conceptos) {
            if (concepto != null && concepto.getTipoConcepto() != null && concepto.getTipoMovimiento() != null) {
                //if (concepto.getTipoConcepto().equals(this.tipoConcepto) && concepto.getTipoMovimiento().equals(this.tipoMovimiento)) {
                // que sea P o D y que no sea calculo
                if (concepto.getTipoConcepto().equals(this.tipoConcepto)
                        && !ETipoMovimiento.CALCULO.equals(concepto.getTipoMovimiento())) {
                    acceptableConceptos.add(concepto);
                }
            }
        }
        Collections.sort(acceptableConceptos, new Comparator<Concepto>() {
            @Override
            public int compare(Concepto c1, Concepto c2) {
                return c1.getName().compareTo(c2.getName());
            }
        });
        chosen.setAcceptableValues(acceptableConceptos);
    }

    public void setSelected(Concepto value) {
        chosen.setValue(value, true);
    }

    public Concepto getSelected() {
        return chosen.getValue();
    }

    public ValueListBox<Concepto> getChosen() {
        return this.chosen;
    }

}