Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Proble TreeGrid with Firefox 3.0.5

    I build war for tomcat, when i use ie 7.0 i don't have problem but i use firefox i don't have data

    i call method buscarArea for data

    Code:
        private void buscarArea(final TreeGrid treeGrid,FiltroArea filtro)
    	{
    		ProcesoServerFactory.getProcesoGWTServer().buscarArea(filtro, new AsyncCallback<List<Area>>() 
    		{
    			public void onFailure(Throwable caught) 
    			{
    				caught.printStackTrace();
    			}
    			public void onSuccess(List<Area> result) 
    			{
    				cargarGridDeList(result,treeGrid);		
    			}
    		});
    	}
    i use method cargarGridDeList

    Code:
        private void cargarGridDeList(List<Area> lst,TreeGrid grid)
    	{
    		ListGridRecord record;
    		for (int i = 0; i < lst.size(); i++) 
    		{
    			Area r = lst.get(i);
    			record = new ListGridRecord();
    			record.setAttribute(FIELD_ID, r.getId());
    			record.setAttribute(FIELD_IDPADRE, r.getPadre().getId());
    			record.setAttribute(FIELD_NOMBRE, r.getNombre());
    			record.setAttribute(FIELD_ESTADO, ConstantesUtil.convertirIdEstadoEnTexto(r.getEstado()));
    			record.setAttribute(FIELD_RESPONSABLE_NOMBRE, r.getResponsable().getNombreCompleto());
    			if (!ConstantesSistema.PS_AREA_BASE.equals(r.getId()))
    			{
    				record.setAttribute(FIELD_CONSULTAR, " ");
    				record.setAttribute(FIELD_MODIFICAR, " ");
    			}
    			record.setAttribute(FIELD_AGREGAR, " ");
    			grid.addData(record);
    		}
    	}


    My Class
    Code:
    package pe.com.bat.gwt.sisvac.proceso.client;
    
    import java.util.List;
    
    import pe.com.bat.gwt.sisvac.comun.util.client.ConstantesUtil;
    import pe.com.bat.sisvac.comun.domain.Area;
    import pe.com.bat.sisvac.comun.filtro.FiltroArea;
    import pe.com.bat.sisvac.comun.util.ConstantesSistema;
    
    import com.google.gwt.user.client.rpc.AsyncCallback;
    import com.smartgwt.client.data.DataSource;
    import com.smartgwt.client.data.DataSourceField;
    import com.smartgwt.client.types.Alignment;
    import com.smartgwt.client.types.FieldType;
    import com.smartgwt.client.types.ListGridFieldType;
    import com.smartgwt.client.types.SelectionStyle;
    import com.smartgwt.client.widgets.Canvas;
    import com.smartgwt.client.widgets.Window;
    import com.smartgwt.client.widgets.events.CloseClickHandler;
    import com.smartgwt.client.widgets.events.CloseClientEvent;
    import com.smartgwt.client.widgets.grid.ListGrid;
    import com.smartgwt.client.widgets.grid.ListGridRecord;
    import com.smartgwt.client.widgets.grid.events.CellClickEvent;
    import com.smartgwt.client.widgets.grid.events.CellClickHandler;
    import com.smartgwt.client.widgets.layout.VLayout;
    import com.smartgwt.client.widgets.tree.TreeGrid;
    import com.smartgwt.client.widgets.tree.TreeGridField;
    
       
     public class BusquedaAreaGWT extends VLayout 
     {  
    	private final String FIELD_ID="id";
    	private final String FIELD_NOMBRE="nombre"; 
    	private final String FIELD_ESTADO="estado"; 
    	private final String FIELD_RESPONSABLE_NOMBRE="responsableNombre";
    	private final String FIELD_IDPADRE="idPadre"; 
    	private final String FIELD_CONSULTAR="consultar";
    	private final String FIELD_MODIFICAR="modificar";
    	private final String FIELD_AGREGAR="agregar";
    	
    	private Window winDetalle;
    	private DetalleAreaGWT detalleAreaGWT;
    	private TreeGrid treeGrid;
    	
    	public BusquedaAreaGWT()
    	{
    		super();
    		addMember(getPanelPrincipal());
    	}
    	 
    	
    	private Canvas getPanelPrincipal()
    	{
    		VLayout secPrincipal = new VLayout();  
            secPrincipal.setWidth(700);  
            secPrincipal.setHeight100(); 
            secPrincipal.setBorder("2px solid458B00"); 
      
            this.treeGrid = getTreeGrid(); 
            secPrincipal.addMember(getSeccionListado(this.treeGrid));  
                   
            buscarArea(this.treeGrid,null);
            
    		return secPrincipal;
    	}
    	
        private CellClickHandler getCellClickHandler(final ListGrid grid)
        {
        	CellClickHandler clickHandler= new CellClickHandler() 
            {  
                public void onCellClick(CellClickEvent event) 
                {  
               	 	ListGridRecord record = (ListGridRecord) event.getRecord();  
                    int colNum = event.getColNum();  
                    String fieldName = grid.getFieldName(colNum);  
                    
                    if(!ConstantesSistema.PS_AREA_BASE.equals(new Long(record.getAttributeAsString(FIELD_ID))))
                    {
                        if (FIELD_CONSULTAR.equals(fieldName))
                        {
                        	mostrarDetalleArea(ConstantesSistema.PS_PERMISO_CONSULTAR,new Long(record.getAttributeAsString(FIELD_ID))); 
                        }
                        else if (FIELD_MODIFICAR.equals(fieldName))
                        {
                        	mostrarDetalleArea(ConstantesSistema.PS_PERMISO_MODIFICAR,new Long(record.getAttributeAsString(FIELD_ID))); 
                        }
                    }	
                    if (FIELD_AGREGAR.equals(fieldName))
                    {
                    	mostrarDetalleArea(ConstantesSistema.PS_PERMISO_CREAR,new Long(record.getAttributeAsString(FIELD_ID))); 
                    }
                }
            };  
            return clickHandler;
        }
    	
    	private Canvas getSeccionListado(TreeGrid treeGrid)
    	{
    		VLayout seccion = new VLayout();
    	    seccion.setWidth100();
    	    seccion.addMember(treeGrid);
    	    return seccion;
    	}
    	
         public TreeGrid getTreeGrid() 
         {  
             TreeGrid treeGrid = new TreeGrid();  
             treeGrid.setLoadDataOnDemand(false);  
             treeGrid.setWidth100();  
             treeGrid.setHeight100();    
             treeGrid.setNodeIcon("icons/16/person.png");  
             treeGrid.setFolderIcon("icons/16/person.png");  
             treeGrid.setAutoFetchData(true);   
             treeGrid.setShowConnectors(true);
             treeGrid.setShowAllRecords(true);
             treeGrid.setShowHeaderContextMenu(false);
             treeGrid.setSelectionType(SelectionStyle.SINGLE);
             treeGrid.addCellClickHandler(getCellClickHandler(treeGrid));
             
             treeGrid.setDataSource(getDataSource());  
             setFields(treeGrid);
             
             return treeGrid;
         }  
         
        private DataSource getDataSource()
        {
        	DataSource ds = new DataSource();
        	ds.setClientOnly(true);
        	
        	DataSourceField field;
        	
        	field = new DataSourceField(FIELD_ID,FieldType.INTEGER,"Codigo");
        	field.setPrimaryKey(true);
    		ds.addField(field);
        	
        	field = new DataSourceField(FIELD_IDPADRE,FieldType.INTEGER,"padre");
        	field.setForeignKey("grid." + FIELD_ID);
        	field.setRootValue(ConstantesSistema.PS_AREA_PADRE.toString());
        	ds.addField(field);
    		
        	field = new DataSourceField(FIELD_ESTADO,FieldType.INTEGER,"Estado");
    		ds.addField(field);
        	return ds;
        }
      	
        
        private void buscarArea(final TreeGrid treeGrid,FiltroArea filtro)
    	{
    		ProcesoServerFactory.getProcesoGWTServer().buscarArea(filtro, new AsyncCallback<List<Area>>() 
    		{
    			public void onFailure(Throwable caught) 
    			{
    				caught.printStackTrace();
    			}
    			public void onSuccess(List<Area> result) 
    			{
    				cargarGridDeList(result,treeGrid);		
    			}
    		});
    	}
      	
        
        private void setFields(TreeGrid grid)
        {
            TreeGridField field1 = new TreeGridField(FIELD_NOMBRE,"Area"); 
        	TreeGridField field2 = new TreeGridField(FIELD_RESPONSABLE_NOMBRE,"Responsable");
        	TreeGridField field3 = new TreeGridField(FIELD_ESTADO,"Estado",60);
        	field3.setAlign(Alignment.CENTER);
        	
        	TreeGridField field4 = new TreeGridField(FIELD_CONSULTAR," ",30);
        	field4.setAlign(Alignment.CENTER);  
        	field4.setType(ListGridFieldType.IMAGE);  
        	field4.setImageURLPrefix(ConstantesSistema.PS_IMAGEN_SISTEMA_CONSULTAR_CADENA);  
        	
        	TreeGridField field5 = new TreeGridField(FIELD_MODIFICAR," ",30); 
        	field5.setAlign(Alignment.CENTER);  
        	field5.setType(ListGridFieldType.IMAGE);  
        	field5.setImageURLPrefix(ConstantesSistema.PS_IMAGEN_SISTEMA_MODIFICAR_CADENA);
        	
        	TreeGridField field6 = new TreeGridField(FIELD_AGREGAR," ",30); 
        	field6.setAlign(Alignment.CENTER);  
        	field6.setType(ListGridFieldType.IMAGE);  
        	field6.setImageURLPrefix(ConstantesSistema.PS_IMAGEN_SISTEMA_AGREGAR_CADENA);
        	
        	grid.setFields(field1,field2,field3,field4,field5,field6);
        }
        
       
        private void cargarGridDeList(List<Area> lst,TreeGrid grid)
    	{
    		ListGridRecord record;
    		for (int i = 0; i < lst.size(); i++) 
    		{
    			Area r = lst.get(i);
    			record = new ListGridRecord();
    			record.setAttribute(FIELD_ID, r.getId());
    			record.setAttribute(FIELD_IDPADRE, r.getPadre().getId());
    			record.setAttribute(FIELD_NOMBRE, r.getNombre());
    			record.setAttribute(FIELD_ESTADO, ConstantesUtil.convertirIdEstadoEnTexto(r.getEstado()));
    			record.setAttribute(FIELD_RESPONSABLE_NOMBRE, r.getResponsable().getNombreCompleto());
    			if (!ConstantesSistema.PS_AREA_BASE.equals(r.getId()))
    			{
    				record.setAttribute(FIELD_CONSULTAR, " ");
    				record.setAttribute(FIELD_MODIFICAR, " ");
    			}
    			record.setAttribute(FIELD_AGREGAR, " ");
    			grid.addData(record);
    		}
    	}
        
    
        
    
     }


    thanks!! for your attention

    #2
    There's not really a way to get a different behavior in a normal Firefox browser vs IE doing what you're doing. Be sure to clear your cache and restart the browser, and if there are JS errors, post what they are including a stack trace from Firebug.

    Comment


      #3
      I solved!

      I forget it :
      fld2.setForeignKey(ds.getID() + "." + FIELD_ID);


      Code:
          	DataSource ds = new DataSource();
          	ds.setClientOnly(true);
          	
          	DataSourceField fld1;
          	fld1 = new DataSourceField(FIELD_ID,FieldType.INTEGER,"Codigo");
          	fld1.setPrimaryKey(true);
         
      		DataSourceField fld2 = new DataSourceField(FIELD_IDPADRE,FieldType.INTEGER,"padre");
      		fld2.setForeignKey(ds.getID() + "." + FIELD_ID);
      		fld2.setRootValue(ConstantesSistema.PS_AREA_PADRE.toString());
      		
      		DataSourceField fld3 = new DataSourceField(FIELD_ESTADO,FieldType.INTEGER,"Estado");
      		
      		ds.setFields(fld1,fld2,fld3);

      Comment

      Working...
      X