Package fing.satode.ui.necesidades.client

Source Code of fing.satode.ui.necesidades.client.EntryPointNecesidad

package fing.satode.ui.necesidades.client;

import java.util.ArrayList;
import java.util.Date;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.logging.client.DefaultLevel.Severe;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CaptionPanel;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.datepicker.client.DatePicker;

import fing.satode.constantes.EstadoNecesidad;
import fing.satode.constantes.EstadoSuministro;
import fing.satode.constantes.ItemConstante;
import fing.satode.data.DepositoDTO;
import fing.satode.data.DesastreDTO;
import fing.satode.data.DonacionDTO;
import fing.satode.data.NecesidadDTO;
import fing.satode.data.PuntoReferenciaDTO;
import fing.satode.data.SolicitudSuministroDTO;
import fing.satode.data.SuministroDTO;
import fing.satode.data.TipoSuministroDTO;
import fing.satode.data.UsuarioDTO;
import fing.satode.ui.deposito.client.IDeposito;
import fing.satode.ui.deposito.client.IDepositoAsync;
import fing.satode.ui.deposito.client.EntryPointSuministro.FormDialogBox;
import fing.satode.ui.deposito.client.EntryPointSuministro.FormDialogSuministroBox;
import fing.satode.ui.desastres.client.IDesastre;
import fing.satode.ui.desastres.client.IDesastreAsync;
import fing.satode.ui.general.data.KeyNumeric;
import fing.satode.ui.puntoReferencias.client.IPuntoReferencia;
import fing.satode.ui.puntoReferencias.client.IPuntoReferenciaAsync;
import fing.satode.ui.usuarios.client.IUsuario;
import fing.satode.ui.usuarios.client.IUsuarioAsync;

public class EntryPointNecesidad implements EntryPoint {

  final Button nuevoB = new Button("Nuevo");
  final Button buscarB = new Button("Buscar");
  final VerticalPanel vertical = new VerticalPanel();
  private ArrayList<NecesidadDTO> necesidadesGlobal;
  private ArrayList<DesastreDTO> desastreGlobal;
  private ArrayList<TipoSuministroDTO> tipoSuministrosGlobal;
  private ArrayList<PuntoReferenciaDTO> puntosReferenciaGlobal;
  final Label modificarLabel= new Label("Modificar");
  final Label eliminarLabel= new Label("Eliminar");
  final Label ver= new Label("Ver");
  public static Grid gridFormulario = new Grid(6,2);
  public static  Grid suministros;
  private static ListBox desastres;
  private static ListBox estados;
  public static NecesidadDTO necesidadDTO;
  private static Long numerador=10000000000L;
  private static Long baseNumerador=10000000000L;
  private UsuarioDTO usuarioGlobal;
  private static ListBox recursosLocales=new ListBox();
 
  @Override
  public void onModuleLoad() {
    HorizontalPanel botonera= new HorizontalPanel();
    Grid desastreGrid=new Grid(1,2);
    Grid estadoGrid=new Grid(1,2);
    botonera.add(desastreGrid);
    botonera.add(estadoGrid);
    botonera.add(buscarB);
    botonera.add(nuevoB);
    RootPanel.get("botones").add(botonera);
    RootPanel.get("necesidades").add(vertical);
   
    desastres=new ListBox();
    desastres.addItem("Todos","0");
    desastreGrid.setWidget(0, 1, desastres);
    desastreGrid.setWidget(0, 0,new Label("Desastre"));
   
    estados=new ListBox();
    estados.addItem("Todos","0");
    estadoGrid.setWidget(0, 1, estados);
    estadoGrid.setWidget(0,0,new Label("Estado"));
    for(ItemConstante i:EstadoNecesidad.getItems()){
      estados.addItem(i.getTexto(), String.valueOf(i.getCodigo()));
    }
   
    IDesastreAsync serverDesastre=GWT.create(IDesastre.class);
    serverDesastre.listaDesastres(new AsyncCallback<ArrayList<DesastreDTO>>() {
     
      @Override
      public void onSuccess(ArrayList<DesastreDTO> result) {
        desastreGlobal=result;
        DateTimeFormat format=DateTimeFormat.getFormat("dd/MM/yyyy");
        for(DesastreDTO d: result){
          desastres.addItem(d.getId().toString()+"-"+d.getEvento().getCiudad().getNombre()+"-"+format.format(d.getFechaDeclaracion()),d.getId().toString());
        }
      }
     
      @Override
      public void onFailure(Throwable caught) {
        caught.printStackTrace();
        Window.alert("ERROR AJAX");
      }
    });
   
    IPuntoReferenciaAsync serverPuntoRef=GWT.create(IPuntoReferencia.class);
   
    serverPuntoRef.listPuntoEntrega(new AsyncCallback<ArrayList<PuntoReferenciaDTO>>() {
     
      @Override
      public void onSuccess(ArrayList<PuntoReferenciaDTO> result) {
        puntosReferenciaGlobal=result;
      }
     
      @Override
      public void onFailure(Throwable caught) {
        caught.printStackTrace();
        Window.alert("ERROR AJAX");
      }
    });
   
    IDepositoAsync serverDeposito=GWT.create(IDeposito.class);
   
    serverDeposito.listaTipoSuministros(new AsyncCallback<ArrayList<TipoSuministroDTO>>() {
     
      @Override
      public void onSuccess(ArrayList<TipoSuministroDTO> result) {
        tipoSuministrosGlobal=result;
      }
     
      @Override
      public void onFailure(Throwable caught) {
        caught.printStackTrace();
        Window.alert("ERROR AJAX");
       
      }
    });
   
    buscarB.addClickHandler(new ClickHandler() {
      @Override
      public void onClick(ClickEvent event) {
          cargarLista();
      }
         
    });
   
    nuevoB.addClickHandler(new ClickHandler() {
     
      @Override
      public void onClick(ClickEvent event) {
        FormDialogBox dialog= new FormDialogBox(0L, "nuevo");
        dialog.show();
      }
    });
   
    IUsuarioAsync servidorUsuario= GWT.create(IUsuario.class);
   
    servidorUsuario.getUsuarioLogin(new AsyncCallback<UsuarioDTO>() {
     
      @Override
      public void onSuccess(UsuarioDTO result) {
        usuarioGlobal=result;
      }
     
      @Override
      public void onFailure(Throwable caught) {
        caught.printStackTrace();
        Window.alert("ERROR AJAX");
      }
    });
  }
 
  public void cargarLista(){
    vertical.clear();
 
    Long idDesastre=Long.valueOf(desastres.getValue(desastres.getSelectedIndex()));
    Long idEstado=Long.valueOf(estados.getValue(estados.getSelectedIndex()));
   
    INecesidadAsync serverNecesidad=GWT.create(INecesidad.class);
   
    serverNecesidad.buscarNecesidades(idDesastre, idEstado, new AsyncCallback<ArrayList<NecesidadDTO>>() {
     
      @Override
      public void onSuccess(ArrayList<NecesidadDTO> result) {
        necesidadesGlobal=result;
       
        Grid gridPrincipal= new Grid(result.size()+1,10);
        for(int i=0;i<10;i++){
          gridPrincipal.getCellFormatter().setStyleName(0,i, "tbl-cab");
        }
        gridPrincipal.setBorderWidth(1);
        gridPrincipal.setWidget(0, 0, new Label("ID"));
        gridPrincipal.setWidget(0, 1, new Label("Fecha"));
        gridPrincipal.setWidget(0, 2, new Label("Desastre"));
        gridPrincipal.setWidget(0, 3, new Label("Punto Entrega"));
        gridPrincipal.setWidget(0, 4, new Label("Descripcion"));
        gridPrincipal.setWidget(0, 5, new Label("Estado"));
        gridPrincipal.setWidget(0, 6, new Label("Usuario"));
        gridPrincipal.setWidget(0, 7, ver);
        gridPrincipal.setWidget(0, 8, modificarLabel);
        gridPrincipal.setWidget(0, 9, eliminarLabel);
       
        vertical.add(gridPrincipal);
       
        int row=1;
        DateTimeFormat format=DateTimeFormat.getFormat("dd/MM/yyyy");
        for(NecesidadDTO s: result){
          gridPrincipal.setWidget(row, 0, new Label(s.getId().toString()));
          gridPrincipal.setWidget(row, 1, new Label(format.format(s.getFecha())));
          gridPrincipal.setWidget(row, 2, new Label(s.getDesastre().getId().toString()+"-"+s.getDesastre().getEvento().getCiudad().getNombre()+"-"+format.format(s.getDesastre().getFechaDeclaracion())));
          gridPrincipal.setWidget(row, 3, new Label(s.getId().toString()+"-"+s.getPuntoEntrega().getCiudad().getNombre()+"-"+s.getPuntoEntrega().getDireccion()));
          gridPrincipal.setWidget(row, 4, new Label(s.getDescripcion()));
          gridPrincipal.setWidget(row, 5, new Label(EstadoNecesidad.getTXT(s.getEstado())));
          gridPrincipal.setWidget(row, 6, new Label(s.getUsuarioCreador().getNombreCompleto()));
         
          final Long id= s.getId();
         
          final Image verI= new Image("images/LOCATE.bmp");
            verI.addClickHandler(new ClickHandler() {
           
            @Override
            public void onClick(ClickEvent event) {
              FormDialogBox dialog= new FormDialogBox(id, "ver");
              dialog.show();
            }
          });
         
          final Image modificarI= new Image("images/modificar.png");
          modificarI.addClickHandler(new ClickHandler() {
           
            @Override
            public void onClick(ClickEvent event) {
              FormDialogBox dialog= new FormDialogBox(id, "modificar");
              dialog.show();
            }
          });
         
          final Image eliminarI= new Image("images/eliminar.png");
         
          eliminarI.addClickHandler(new ClickHandler() {
           
            @Override
            public void onClick(ClickEvent event) {
              FormDialogBox dialog= new FormDialogBox(id, "eliminar");
              dialog.show();
            }
          });
          gridPrincipal.setWidget(row, 7, verI);
          if(s.getEstado()==EstadoNecesidad.INGRESADA){
            gridPrincipal.setWidget(row, 8, modificarI);
            gridPrincipal.setWidget(row, 9, eliminarI);
          }
         
          row++;
         
        }
      }
      @Override
      public void onFailure(Throwable caught) {
        caught.printStackTrace();
        Window.alert("ERROR AJAX");
       
      }
    });
  }
 
  public class FormDialogBox extends DialogBox{
    private String a;
    private Long id;
    final HorizontalPanel horizontal= new HorizontalPanel();
    final VerticalPanel vertical= new VerticalPanel();
    final CaptionPanel panelPrincipal = new CaptionPanel();
   
      final Grid gridFecha= new Grid(1,2);
     
      final DatePicker datePicker = new DatePicker();
      final TextBox descripcion =new TextBox();
      final TextBox fecha= new TextBox();
      final ListBox desastres=new ListBox();
     
      final ListBox puntoEntrega=new ListBox();
    
      final Button cancelar= new Button("Cancelar");
    final Button aceptar= new Button("Aceptar");
    final Button nuevoB = new Button("Nuevo");
   
    public FormDialogBox(Long idNecesidad,String accion){
      a=accion;
      id=idNecesidad;
     
     
      datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() {
          public void onValueChange(ValueChangeEvent<Date> event) {
            Date date = (Date)event.getValue();
            DateTimeFormat format=DateTimeFormat.getFormat("dd/MM/yyyy");
            String dateString = format.format(date);
            fecha.setText(dateString);
          }
        });
        datePicker.setValue(new Date(), true);
       
        if(a=="modificar") panelPrincipal.setCaptionText("Modificar Necesidad");
      if(a=="eliminar") panelPrincipal.setCaptionText("Eliminar Necesidad");
      if(a=="nuevo") panelPrincipal.setCaptionText("Nuevo Necesidad");
      if(a=="ver") panelPrincipal.setCaptionText("Ver Necesidad");
     
      gridFormulario.setWidget(0, 0, new Label("Fecha"));
      gridFormulario.setWidget(1, 0, new Label("Desastre"));
      gridFormulario.setWidget(2, 0, new Label("Punto de Entrega"));
      gridFormulario.setWidget(3, 0, new Label("Descripcion"));
      gridFormulario.setWidget(4, 0, new Label("Recursos Locales"));
      gridFormulario.setBorderWidth(1);
     
      gridFecha.setWidget(0, 0, fecha);
      gridFecha.setWidget(0, 1, datePicker);
      gridFormulario.setWidget(0, 1, gridFecha);
     
      desastres.addItem("Seleccionar", "0");
      DateTimeFormat format=DateTimeFormat.getFormat("dd/MM/yyyy");
      for(DesastreDTO d: desastreGlobal){
        desastres.addItem(d.getId().toString()+"-"+d.getEvento().getCiudad().getNombre()+"-"+format.format(d.getFechaDeclaracion()),d.getId().toString());
      }
      gridFormulario.setWidget(1, 1, desastres);
     
      puntoEntrega.addItem("Seleccionar", "0");
      for(PuntoReferenciaDTO d: puntosReferenciaGlobal){
        puntoEntrega.addItem(d.getId().toString()+"-"+d.getCiudad().getNombre()+"-"+d.getDireccion(),d.getId().toString());
      }
      gridFormulario.setWidget(2, 1, puntoEntrega);
     
      gridFormulario.setWidget(3, 1, descripcion);
     
      recursosLocales.clear();
      recursosLocales.setEnabled(true);
      recursosLocales.addItem("NO", "NO");
      recursosLocales.addItem("SI", "SI");
      gridFormulario.setWidget(4, 1, recursosLocales);
     
      necesidadDTO= new NecesidadDTO();
     
      suministros= new Grid(1, 4);
        suministros.setWidget(0, 0, new Label("Tipo Suministro"));
        suministros.setWidget(0, 1, new Label("Cantidad"));
        suministros.setWidget(0, 2, new Label("Modificar"));
        suministros.setWidget(0, 3, new Label("Eliminar"));
       
        for(int i=0;i<4;i++){
          suministros.getCellFormatter().setStyleName(0,i, "tbl-cab");
      }
     
       
        gridFormulario.setWidget(5, 0, suministros);
         
      gridFormulario.setWidget(5, 1, nuevoB);
      
      nuevoB.addClickHandler(new ClickHandler() {
       
        @Override
        public void onClick(ClickEvent event) {
          FormDialogSuministroBox dialog= new FormDialogSuministroBox(null, "nuevo",FormDialogBox.this);
          dialog.show();
        }
      });
     
      if (a == "modificar" || a == "eliminar" || a=="ver"){
        for(NecesidadDTO e:necesidadesGlobal){
            if(e.getId().equals(id)){
              necesidadDTO=e;
            }
          }
         
          descripcion.setText(necesidadDTO.getDescripcion());
          datePicker.setValue(necesidadDTO.getFecha(),true);
         
          desastres.clear();
          desastres.addItem("Seleccionar", "0");
          int index=1;
        for(DesastreDTO d: desastreGlobal){
          desastres.addItem(d.getId().toString()+"-"+d.getEvento().getCiudad().getNombre()+"-"+format.format(d.getFechaDeclaracion()),d.getId().toString());
          if(d.getId().equals(necesidadDTO.getDesastre().getId())){
            desastres.setSelectedIndex(index);
          }
          index++;
        }
       
        puntoEntrega.clear();
        puntoEntrega.addItem("Seleccionar", "0");
          index=1;
        for(PuntoReferenciaDTO d: puntosReferenciaGlobal){
          puntoEntrega.addItem(d.getId()+"-"+d.getCiudad().getNombre()+"-"+d.getDireccion(),String.valueOf(d.getId()));
          if(d.getId().equals(necesidadDTO.getPuntoEntrega().getId())){
            puntoEntrega.setSelectedIndex(index);
          }
          index++;
        }
       
        recursosLocales.setSelectedIndex(necesidadDTO.isRecursosLocales()?1:0);
       
          suministros= new Grid(necesidadDTO.getSolicitudesSuministros().size()+1, 4);
          suministros.setWidget(0, 0, new Label("Tipo Suministro"));
          suministros.setWidget(0, 1, new Label("Cantidad"));
          suministros.setWidget(0, 2, new Label("Modificar"));
          suministros.setWidget(0, 3, new Label("Eliminar"));
         
          gridFormulario.setWidget(5, 0, suministros);
         
        for(int i=0;i<4;i++){
          suministros.getCellFormatter().setStyleName(0,i, "tbl-cab");
        }
       
        suministros.setBorderWidth(1);
       
        int row=1;
        for(SolicitudSuministroDTO s: necesidadDTO.getSolicitudesSuministros()){
          suministros.setWidget(row, 0, new Label(s.getTipoSuministro().getNombre()));
          suministros.setWidget(row, 1, new Label(String.valueOf(s.getCantidad())));
          final SolicitudSuministroDTO sum= s;
          final Image modificarI= new Image("images/modificar.png");
          modificarI.addClickHandler(new ClickHandler() {
           
            @Override
            public void onClick(ClickEvent event) {
              FormDialogSuministroBox dialog= new FormDialogSuministroBox(sum, "modificar",FormDialogBox.this);
              dialog.show();
            }
          });
         
          final Image eliminarI= new Image("images/eliminar.png");
         
          eliminarI.addClickHandler(new ClickHandler() {
           
            @Override
            public void onClick(ClickEvent event) {
              FormDialogSuministroBox dialog= new FormDialogSuministroBox(sum, "eliminar",FormDialogBox.this);
              dialog.show();
            }
          });
          if(a == "modificar" ){
            suministros.setWidget(row,2, modificarI);
            suministros.setWidget(row, 3, eliminarI);
          }
          row++;
        }
        }
     
        if ( a == "eliminar" || a=="ver"){
            descripcion.setEnabled(false);
            fecha.setEnabled(false);
            desastres.setEnabled(false);
            nuevoB.setEnabled(false);
            puntoEntrega.setEnabled(false);
            aceptar.setEnabled(false);
            recursosLocales.setEnabled(false);
            datePicker.setVisible(false);
          }
     
     
      panelPrincipal.add(vertical);
      vertical.add(gridFormulario);
        horizontal.add(aceptar);
      horizontal.add(cancelar);
      vertical.add(horizontal);
     
      cancelar.addClickHandler(new ClickHandler() {
       
        @Override
        public void onClick(ClickEvent event) {
          FormDialogBox.this.hide();
        }
      });
     
      aceptar.addClickHandler(new ClickHandler() {
       
        @Override
        public void onClick(ClickEvent event) {
          FormDialogBox.this.procesar();
        }
      });
       
      setAnimationEnabled(true);
      add(panelPrincipal);
      center();
    }

    protected void procesar() {
      NecesidadDTO dto=validar();
     
      if(dto!=null){
        for(SolicitudSuministroDTO s: dto.getSolicitudesSuministros()){
          if(s.getId()>=baseNumerador){
            s.setId(null);
          }
          if(!dto.isRecursosLocales()){
            s.setCosto(0);
          }
        }
        dto.setId(id);
        dto.setUsuarioCreador(usuarioGlobal);
       
        if(a=="modificar"){
         
          INecesidadAsync servidorNecesidad=GWT.create(INecesidad.class);
         
          servidorNecesidad.modificarNecesidad(dto,new AsyncCallback<Void>() {
           
            @Override
            public void onSuccess(Void result) {
              cargarLista();
              hide();
            }
           
            @Override
            public void onFailure(Throwable caught) {
              caught.printStackTrace();
              Window.alert("ERROR AJAX");
            }
          });
        }else if(a== "nuevo"){
          INecesidadAsync servidorNecesidad=GWT.create(INecesidad.class);
         
          servidorNecesidad.nuevoNecesidad(dto, new AsyncCallback<Void>() {
           
            @Override
            public void onSuccess(Void result) {
              cargarLista();
              hide();
            }
           
            @Override
            public void onFailure(Throwable caught) {
              caught.printStackTrace();
              Window.alert("ERROR AJAX");
            }
          });
         
        }else if(a=="eliminar"){
          INecesidadAsync servidorNecesidad=GWT.create(INecesidad.class);
         
          servidorNecesidad.eliminarNecesidad(dto, new AsyncCallback<Void>() {
           
            @Override
            public void onSuccess(Void result) {
              cargarLista();
              hide();
            }
           
            @Override
            public void onFailure(Throwable caught) {
              caught.printStackTrace();
              Window.alert("ERROR AJAX");
            }
          });
        }
      }
    }
   
    private NecesidadDTO validar(){
      NecesidadDTO dto= necesidadDTO;
     
      if(descripcion.getText().trim().length()== 0){
        Window.alert("Indique Descripcion");
        return null;
      }
     
      if(desastres.getSelectedIndex()<1){
        Window.alert("Indique Desastre");
        return null;
      }
     
      if(puntoEntrega.getSelectedIndex()<1){
        Window.alert("Indique Punto Entrega");
        return null;
      }
     
      dto.setFecha(datePicker.getValue());
      dto.setDescripcion(descripcion.getText());
      dto.setRecursosLocales(recursosLocales.getSelectedIndex()==1);
     
      for(DesastreDTO d: desastreGlobal){
        if( d.getId().equals( Long.valueOf(desastres.getValue(desastres.getSelectedIndex()) ))){
          dto.setDesastre(d);
        }
      }
     
      for(PuntoReferenciaDTO d: puntosReferenciaGlobal){
        if( d.getId().equals( Long.valueOf(puntoEntrega.getValue(puntoEntrega.getSelectedIndex()) ))){
          dto.setPuntoEntrega(d);
        }
      }
     
      return dto;
    }
  }

  public class FormDialogSuministroBox extends DialogBox{
    private String a;
    private SolicitudSuministroDTO suministro;
    final HorizontalPanel horizontal= new HorizontalPanel();
    final VerticalPanel vertical= new VerticalPanel();
    final Label label = new Label();
      final Grid grid= new Grid(3,2);
     
      final ListBox tipoSuministro= new ListBox();
      final TextBox cantidad =new TextBox();
      final TextBox costo =new TextBox();
      final Button cancelar= new Button("Cancelar");
    final Button aceptar= new Button("Aceptar");
    private DialogBox llamador;
   
 
      @SuppressWarnings("deprecation")
    public FormDialogSuministroBox(SolicitudSuministroDTO sum, String accion,DialogBox dialog) {
      a=accion;
        suministro=sum;
        llamador=dialog;
        llamador.setStyleName("gwt-DialogBoxOpaco");
        if(a=="modificar") label.setText("Modificar Suministro");
      if(a=="eliminar") label.setText("Eliminar Suministro");
      if(a=="nuevo") label.setText("Nuevo Suministro");
     
      grid.setWidget(0, 0, new Label("Tipo de Suministro"));
      grid.setWidget(1, 0, new Label("Cantidad"));
     
      grid.setWidget(0, 1, tipoSuministro);
      grid.setWidget(1, 1, cantidad);
     
      grid.setBorderWidth(1);
       
      cantidad.addKeyboardListener(new KeyNumeric());
      costo.addKeyboardListener(new KeyNumeric());
      if(recursosLocales.getSelectedIndex()==1){
        grid.setWidget(2, 0, new Label("Costo en pesos"));
        grid.setWidget(2, 1, costo);
      }
      tipoSuministro.addItem("Seleccionar","0");
      for (TipoSuministroDTO dto : tipoSuministrosGlobal) {
        tipoSuministro.addItem(dto.getNombre(), dto.getId().toString());
      }
     
      if (a == "modificar" || a == "eliminar" ){
         
          int row=0;
          boolean salir = false;
          while (!salir) {
          row++;
          if(tipoSuministro.getValue(row).equals(String.valueOf(sum.getTipoSuministro().getId()))){
            tipoSuministro.setSelectedIndex(row);
            salir = true;
          }
        }
         
          cantidad.setText(String.valueOf(sum.getCantidad()));
          costo.setText(String.valueOf(sum.getCosto()));
        }
       
        if ( a == "eliminar" ){
          tipoSuministro.setEnabled(false);
          cantidad.setEnabled(false);
        }
       
      vertical.add(label);
      vertical.add(grid);
        horizontal.add(aceptar);
      horizontal.add(cancelar);
      vertical.add(horizontal);
     
      cancelar.addClickHandler(new ClickHandler() {
       
        @Override
        public void onClick(ClickEvent event) {
          FormDialogSuministroBox.this.hide();
          llamador.setStyleName("gwt-DialogBox");
        }
      });
     
      aceptar.addClickHandler(new ClickHandler() {
       
        @Override
        public void onClick(ClickEvent event) {
          FormDialogSuministroBox.this.procesar();
        }
      });
       
      setAnimationEnabled(true);
      add(vertical);
      center();
    }

    protected void procesar() {
      SolicitudSuministroDTO dto=validar();
      if(dto!=null){
     
        if(a=="modificar"){
          dto.setId(suministro.getId());
          for(SolicitudSuministroDTO s:necesidadDTO.getSolicitudesSuministros()){
            if(s.getId().equals(dto.getId())){
              s.setCantidad(dto.getCantidad());
              s.setTipoSuministro(dto.getTipoSuministro());
              s.setCosto(dto.getCosto());
            }
          }
        }else if(a== "nuevo"){
          dto.setId(numerador++);
          necesidadDTO.getSolicitudesSuministros().add(dto);
        }else if(a=="eliminar"){
          dto.setId(suministro.getId());
          SolicitudSuministroDTO del=null;
          for(SolicitudSuministroDTO s:necesidadDTO.getSolicitudesSuministros()){
            if(s.getId().equals(dto.getId())){
              del=s;
            }
          }
          necesidadDTO.getSolicitudesSuministros().remove(del);
        }
       
            suministros= new Grid(necesidadDTO.getSolicitudesSuministros().size()+1, 4);
            suministros.setWidget(0, 0, new Label("Tipo Suministro"));
            suministros.setWidget(0, 1, new Label("Cantidad"));
            suministros.setWidget(0, 2, new Label("Modificar"));
            suministros.setWidget(0, 3, new Label("Eliminar"));
           
            gridFormulario.setWidget(5, 0, suministros);
           
          for(int i=0;i<4;i++){
            suministros.getCellFormatter().setStyleName(0,i, "tbl-cab");
          }
         
          suministros.setBorderWidth(1);
         
          int row=1;
          for(SolicitudSuministroDTO s: necesidadDTO.getSolicitudesSuministros()){
            suministros.setWidget(row, 0, new Label(s.getTipoSuministro().getNombre()));
            suministros.setWidget(row, 1, new Label(String.valueOf(s.getCantidad())));
            final SolicitudSuministroDTO sum= s;
            final Image modificarI= new Image("images/modificar.png");
            modificarI.addClickHandler(new ClickHandler() {
             
              @Override
              public void onClick(ClickEvent event) {
                FormDialogSuministroBox dialog= new FormDialogSuministroBox(sum, "modificar",llamador);
                dialog.show();
              }
            });
           
            final Image eliminarI= new Image("images/eliminar.png");
           
            eliminarI.addClickHandler(new ClickHandler() {
             
              @Override
              public void onClick(ClickEvent event) {
                FormDialogSuministroBox dialog= new FormDialogSuministroBox(sum, "eliminar",llamador);
                dialog.show();
              }
            });
            suministros.setWidget(row, 2, modificarI);
            suministros.setWidget(row, 3, eliminarI);
            row++;
          }
          hide();
          llamador.setStyleName("gwt-DialogBox");
      }
     
     
    }

    private SolicitudSuministroDTO validar() {
      SolicitudSuministroDTO dto= new SolicitudSuministroDTO();
     
      if(tipoSuministro.getSelectedIndex()== 0){
        Window.alert("Indique Tipo de Suministro");
        return null;
      }
      for (TipoSuministroDTO t : tipoSuministrosGlobal) {
        if(t.getId().equals(Long.valueOf(tipoSuministro.getValue(tipoSuministro.getSelectedIndex())))){
          dto.setTipoSuministro(t);
        }
      }
     
      if(cantidad.getText().trim().length()==0){
        Window.alert("Indique Cantidad");
        return null;
      }
     
      if(recursosLocales.getSelectedIndex()==1){
        if(costo.getText().trim().length()==0){
          Window.alert("Indique Costo");
          return null;
        }
        dto.setCosto(Float.valueOf(costo.getText()));
      }
     
      dto.setCantidad(Integer.valueOf(cantidad.getText()));
     
     
     
      return dto;
     
    }
   
  }
}
TOP

Related Classes of fing.satode.ui.necesidades.client.EntryPointNecesidad

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.