smartgwt listgrid not updating
- by user1488594
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,