smartgwt listgrid not updating

Posted by user1488594 on Stack Overflow See other posts from Stack Overflow or by user1488594
Published on 2012-06-28T13:18:19Z Indexed on 2012/06/29 9:16 UTC
Read the original article Hit count: 1483

Filed under:
|

I'm using Smartgwt Lgpl 3.0p. I had a problem with ListGrid column width. I'm using

listGrid.setAutoFitWidthApproach(AutoFitWidthApproach.BOTH);

When first time listGrid.setData() is called, Column width is set according to the Titles and data is cropped but if listGrid.setData() is called again it works fine as expected. I think I have a problem with combination of listGrid properties. I tried to reproduce problem in standalone example but no success, Here is my code:

final ListGrid listGridShipmentsItems;
final ListGridField lstGridOrderItem = new ListGridField("orderItem");
final ListGridField lstGridPartNumber = new ListGridField("partNumber");
final ListGridField lstGridProductDesc1 = new ListGridField("productDescriptionLine1");
final ListGridField lstGridBillingPieces = new ListGridField("billingPieces");   
final ListGridField lstGridBillingWeight = new ListGridField("billingWeight");
final ListGridField lstGridCertificates = new ListGridField("certificatesText");
final ListGridField lstGridInvoiceNumber = new ListGridField("invoiceNumberTextAndImage");

// create ListGrid
listGridShipmentsItems = new ListGrid() {  
            @Override  
            protected Canvas createRecordComponent(final ListGridRecord record, Integer colNum){ 

                 String fieldName = listGridShipmentsItems.getFieldName(colNum);                   

                 if(fieldName.equals("certificatesText"))
                 {                  
                    Label certificates = new Label(record.getAttribute("certificates"));
                    certificates.setAutoHeight();
                    certificates.setAutoWidth();    
                    certificates.setWrap(false);
                    certificates.setBaseStyle("dataGridLabel");
                    certificates.setPrompt(delegate.i18nResolver.tooltip("CMW-CERT-2","Certificates"));
                    certificates.setHoverWrap(false);
                    certificates.setHoverWidth(certificates.getPrompt().length()*5);        

                    certificates.addClickHandler(new ClickHandler(){                        
                        @Override
                        public void onClick(ClickEvent event) {
                            delegate.showCertificatesByShipmentsItems(record);
                        }  
                    });
                    return certificates;
                 } 
                 else if(fieldName.equals("invoiceNumberTextAndImage")) 
                 { 
                    HLayout hLayout = new HLayout(10);  
                    hLayout.setAutoHeight();    
                    hLayout.setAutoWidth();
                    hLayout.setAlign(VerticalAlignment.CENTER);

                    Label invoiceNumber = new Label();

                    if(record.getAttribute("invoiceFlag").trim().equalsIgnoreCase("1"))
                    {
                        if(!record.getAttribute("updateReference").trim().equalsIgnoreCase(""))
                        {
                            invoiceNumber.setContents(record.getAttribute("updateReference"));
                        }
                        else
                        {
                            invoiceNumber.setContents("");
                        }
                    }
                    else
                    {
                        invoiceNumber.setContents("");
                    }

                    invoiceNumber.setAutoHeight();
                    invoiceNumber.setAutoWidth();   
                    invoiceNumber.setWrap(false);
                    invoiceNumber.setBaseStyle("fieldLabel");
                    invoiceNumber.setValign(VerticalAlignment.CENTER);

                    ImgButton invoicesPdfImg = new ImgButton();
                    invoicesPdfImg.setShowDown(false);  
                    invoicesPdfImg.setShowRollOver(false);  
                    invoicesPdfImg.setSrc(Icons.PDF_16X16); 
                    invoicesPdfImg.setHeight(16);  
                    invoicesPdfImg.setWidth(16); 
                    invoicesPdfImg.setPrompt(delegate.i18nResolver.tooltip("CMW-INV","Invoice"));
                    invoicesPdfImg.setCursor(Cursor.POINTER);
                    invoicesPdfImg.setHoverWrap(false);
                    invoicesPdfImg.setHoverWidth(invoicesPdfImg.getPrompt().length()*5);        

                    invoicesPdfImg.addClickHandler(new ClickHandler() {  
                        public void onClick(ClickEvent event) {  
                            delegate.openInvoicesPDF(record);
                        }  
                    });                     

                    hLayout.addMember(invoiceNumber);  
                    hLayout.addMember(invoicesPdfImg);   

                    return hLayout; 
                 }
                 else
                 {
                     return null;
                 }               
            }
        };


// set initial properties
GridController.setListGridInitialProperties(listGridShipmentsItems);

/**Common method to set ListGrid initial properties*/
    public static void setListGridInitialProperties(ListGrid listGrid) {

        listGrid.setWidth("100%");
        listGrid.setHeight("100%");
        listGrid.setShowAllRecords(true);
        listGrid.setLeaveScrollbarGap(false);
        listGrid.setSelectionType(SelectionStyle.SINGLE);
        listGrid.setAlternateRecordStyles(true);
        listGrid.setFixedRecordHeights(false);
        listGrid.setAutoFitWidthApproach(AutoFitWidthApproach.BOTH); //removing it will not show any column or only first column when grid is blank
        listGrid.setAutoFitFieldWidths(true);
        listGrid.setAutoFitFieldsFillViewport(false); 
        listGrid.setCellPadding(5);
        listGrid.setCanSort(false);
        listGrid.setCanResizeFields(true);    
        listGrid.setCanMultiSort(false);
        listGrid.setCanReorderRecords(false);
        listGrid.setCanReorderFields(false);
        listGrid.setAlternateRecordStyles(true);
        listGrid.setFastCellUpdates(false);
        listGrid.setShowHeaderContextMenu(false);    
        listGrid.setEmptyMessage("");
        listGrid.setBaseStyle("dataGrid");
        listGrid.setBodyStyleName("dataGridBody");
        listGrid.setHeaderBaseStyle("headerTitleStyle");

        listGrid.setShowRecordComponentsByCell(true);
        listGrid.setShowRecordComponents(true);  
    }

Thanks,

© Stack Overflow or respective owner

Related posts about smartgwt

Related posts about listgrid