Package fing.satode.ui.usuarios.client

Source Code of fing.satode.ui.usuarios.client.EntryPointPerfilList$FormDialogBox

package fing.satode.ui.usuarios.client;

import java.util.ArrayList;


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.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.CheckBox;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.Grid;

import com.google.gwt.user.client.ui.CaptionPanel;
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.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;

import fing.satode.data.PerfilDTO;
import fing.satode.data.PermisoDTO;
import fing.satode.ui.desastres.client.EntryPointDesastre.FormDialogBox;


public class EntryPointPerfilList implements EntryPoint {
  private ArrayList<PerfilDTO> perfilList;
  private Grid perfiles;
  final Label perfilLabel= new Label("Perfil");
  final Label modificarLabel= new Label("Modificar");
  final Label eliminarLabel= new Label("Eliminar");
  final VerticalPanel vertical = new VerticalPanel();
  final Button nuevoB = new Button("Nuevo");
  public ArrayList<PermisoDTO> permisosGlobal;
 
  public static native void setWindowHref(String url)/*-{
    $wnd.location.href = url;
  }-*/;
 
  @Override
  public void onModuleLoad() {
    RootPanel.get("botones").add(nuevoB);
    nuevoB.addClickHandler(new ClickHandler() {
     
      @Override
      public void onClick(ClickEvent event) {
        FormDialogBox dialog= new FormDialogBox(0L, "nuevo");
        dialog.show();
      }
    });
    cargarLista()
   
    }
     
 
  private void cargarLista() {

    vertical.clear();
    RootPanel.get("perfiles").clear();
    RootPanel.get("perfiles").add(vertical);

    IUsuarioAsync servidorUsuario = GWT.create(IUsuario.class);
   
    servidorUsuario.listaPerfiles(new AsyncCallback<ArrayList<PerfilDTO>>() {
     
      @Override
      public void onSuccess(ArrayList<PerfilDTO> result) {
        perfiles = new Grid(result.size()+1,3);
        perfiles.setWidget(0, 0, perfilLabel);
        perfiles.setWidget(0, 1, modificarLabel);
        perfiles.setWidget(0, 2, eliminarLabel);
        perfilList= result;
       
        for(int i=0;i<3;i++){
          perfiles.getCellFormatter().setStyleName(0,i, "tbl-cab");
        }
        int row=1;
        for(PerfilDTO p : result){
          final Long id= p.getId();
          final Image modificarB = new Image("images/modificar.png");
          modificarB.addClickHandler(new ClickHandler() {
           
            @Override
            public void onClick(ClickEvent event) {
              FormDialogBox dialog= new FormDialogBox(id, "modificar");
              dialog.show();
            }
          });
         
       
          final Image eliminarB = new Image("images/eliminar.png");
          eliminarB.addClickHandler(new ClickHandler() {
           
            @Override
            public void onClick(ClickEvent event) {
             
              FormDialogBox dialog= new FormDialogBox(id, "eliminar");
              dialog.show();
            }
          });
          perfiles.setWidget(row, 0, new Label(p.getNombre()));
          perfiles.setWidget(row, 1, modificarB);
          perfiles.setWidget(row, 2, eliminarB);
          perfiles.setBorderWidth(1);
          row++;
        }
        vertical.add(perfiles);
      }
     
      @Override
      public void onFailure(Throwable caught) {
        caught.printStackTrace();
        Window.alert("ERROR AJAX");
      }
    });
   
   
    servidorUsuario.listaPermisos(new AsyncCallback<ArrayList<PermisoDTO>>() {
     
      @Override
      public void onSuccess(ArrayList<PermisoDTO> result) {
       
        permisosGlobal=result;
      }
     
      @Override
      public void onFailure(Throwable caught) {
       
        caught.printStackTrace();
        Window.alert("ERROR AJAX");
      }
    });
   
  }


  public class FormDialogBox extends DialogBox{
    final VerticalPanel vertical= new VerticalPanel();
    final HorizontalPanel horizontal= new HorizontalPanel();
    final CaptionPanel panelPrincipal = new CaptionPanel();
    final Grid grid= new Grid(1,2);
    final TextBox nombre= new TextBox();
    final Button cancelar= new Button("Cancelar");
    final Button aceptar= new Button("Aceptar");
    Grid gridPermisos;
    private String a;
    private Long id;
   
   
    public FormDialogBox(Long idPerfil,String accion){
      super();
      id=idPerfil;
      a=accion;
      grid.setWidget(0,0, new Label("Nombre"));
      grid.setWidget(0,1, nombre);
      horizontal.add(aceptar);
      horizontal.add(cancelar);
      nombre.setFocus(true);
     
      setAnimationEnabled(true);
      add(panelPrincipal);
      center()
     
      if(accion=="modificar"){
        panelPrincipal.setCaptionText("Modificar Perfil");
        PerfilDTO perfilAModificar=null;
        for(PerfilDTO p:perfilList){
          if(id.equals(p.getId())){
            perfilAModificar=p;
          }
        }
       
        gridPermisos= new Grid(permisosGlobal.size(),1);
        int row=0;
        for(PermisoDTO p: permisosGlobal){
          CheckBox c= new CheckBox();
          c.setText(p.getPermiso());
          for(PermisoDTO pdto:perfilAModificar.getPermisos()){
            if(pdto.getPermiso().equals(p.getPermiso())){
              c.setChecked(true);
            }
          }
          gridPermisos.setWidget(row, 0, c);
          row++;
        }
        nombre.setText(perfilAModificar.getNombre());
        panelPrincipal.add(vertical);
        vertical.add(grid);
        vertical.add(gridPermisos);
        vertical.add(horizontal);
       
       
      }else if(accion=="eliminar"){
        panelPrincipal.setCaptionText("Eliminar Perfil");
        nombre.setEnabled(false);
        PerfilDTO perfilAModificar=null;
        for(PerfilDTO p:perfilList){
          if(id.equals(p.getId())){
            perfilAModificar=p;
          }
        }
       
        gridPermisos= new Grid(permisosGlobal.size(),1);
        int row=0;
        for(PermisoDTO p: permisosGlobal){
          CheckBox c= new CheckBox();
          c.setEnabled(false);
          c.setText(p.getPermiso());
          for(PermisoDTO pdto:perfilAModificar.getPermisos()){
            if(pdto.getPermiso().equals(p.getPermiso())){
              c.setChecked(true);
            }
          }
          gridPermisos.setWidget(row, 0, c);
          row++;
        }
        nombre.setText(perfilAModificar.getNombre());
        panelPrincipal.add(vertical);
        vertical.add(grid);
        vertical.add(gridPermisos);
        vertical.add(horizontal);
       
      }else if(accion=="nuevo"){
        panelPrincipal.setCaptionText("Nuevo Perfil");
       
        IUsuarioAsync servidorUsuario = GWT.create(IUsuario.class);
       
        servidorUsuario.listaPermisos(new AsyncCallback<ArrayList<PermisoDTO>>() {
         
          @Override
          public void onSuccess(ArrayList<PermisoDTO> result) {
           
            gridPermisos= new Grid(result.size(),1);
            permisosGlobal=result;
            int row=0;
            for(PermisoDTO p: result){
              CheckBox c= new CheckBox();
              c.setText(p.getPermiso());
              gridPermisos.setWidget(row, 0, c);
              row++;
            }
           
            panelPrincipal.add(vertical);
            vertical.add(grid);
            vertical.add(gridPermisos);
            vertical.add(horizontal);
          }
         
          @Override
          public void onFailure(Throwable caught) {
           
            caught.printStackTrace();
            Window.alert("ERROR AJAX");
          }
        });
       

      }
     
      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();
          FormDialogBox.this.hide();
        }
      });
       
     
    }

    @SuppressWarnings("deprecation")
    protected void procesar() {
   
        PerfilDTO perfil = new PerfilDTO();
       
        perfil.setNombre(nombre.getText());
        ArrayList<PermisoDTO> permisosSet= new ArrayList<PermisoDTO>();
        for(int row=0; row<gridPermisos.getRowCount();row++){
          CheckBox c =(CheckBox)gridPermisos.getWidget(row, 0);
          if(c.isChecked()){
            permisosSet.add(buscarPermiso(c.getText()));
          }
        }
        perfil.setPermisos(permisosSet);
   
        if(a=="nuevo"){
          perfil.setId(0L);
          IUsuarioAsync servidorUsuario = GWT.create(IUsuario.class);
       
          servidorUsuario.nuevoPerfil(perfil, new AsyncCallback<Void>() {
         
            @Override
            public void onSuccess(Void result) {
             
              EntryPointPerfilList.this.cargarLista();
            }
           
            @Override
            public void onFailure(Throwable caught) {
             
              Window.alert("ERROR AJAX");
            }
            });
          } else if(a=="modificar"){
           
          perfil.setId(id);
       
          IUsuarioAsync servidorUsuario = GWT.create(IUsuario.class);
         
          servidorUsuario.modificarPerfil(perfil, new AsyncCallback<Void>() {
           
            @Override
            public void onSuccess(Void result) {
             
              EntryPointPerfilList.this.cargarLista();
            }
           
            @Override
            public void onFailure(Throwable caught) {
             
              caught.printStackTrace();
              Window.alert("ERROR AJAX");
            }
          });
       
          }else if(a=="eliminar"){
                 
              perfil.setId(id);
           
              IUsuarioAsync servidorUsuario = GWT.create(IUsuario.class);
             
              servidorUsuario.eliminarPerfil(perfil, new AsyncCallback<Void>() {
               
                @Override
                public void onSuccess(Void result) {
                  EntryPointPerfilList.this.cargarLista();
                }
               
                @Override
                public void onFailure(Throwable caught) {
                  caught.printStackTrace();
                  Window.alert("ERROR AJAX");
                }
              });
           
          }
     
    }
   
    protected PermisoDTO buscarPermiso(String p){
      for(PermisoDTO per:permisosGlobal){
        if(per.getPermiso().equals(p)){
          return per;
        }
      }
     
      return null;
    }
  }

}
TOP

Related Classes of fing.satode.ui.usuarios.client.EntryPointPerfilList$FormDialogBox

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.