Announcement

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

    ListGrid issues when wrapping and freezing columns

    SmartGWT version: 2.4
    Browser: IE 8
    OS: Windows XP

    When a ListGrid is created and has cell-wrapping and column-freezing enabled, if one cell in a row has a lot of data (takes advantage of the wrapping) and at least one, but not all, columns are frozen, the two sides of the ListGrid "freeze-line" will have different row heights.

    I realize that this is a known limitation but it should not be that difficult to rectify (contrary to what Isomorphic states).
    The row-selection highlighting still works, thus the two sides of the "freeze-line" can be tied together correctly so it shouldn't be too difficult to ensure that the height of each row is correct.

    As this may be somewhat heavier on the client-side, this could be made an option on the grid: ListGrid.setSyncFrozenRowHeights( boolean syncFrozenRowHeights )


    To Reproduce:

    Code:
    // Create the ListGrid.
    final ListGrid grid = new ListGrid();
    grid.setWidth100();
    grid.setHeight100();
    grid.setCanFreezeFields( true );
    grid.setWrapCells( true );
    grid.setFixedRecordHeights( false );
    // Create the Fields.
    final ListGridField[] fields = new ListGridField[2];
    // Create the 1st field.
    final ListGridField field1 = new ListGridField();
    field1.setWidth( "*" );
    field1.setName( "fillerField" );
    field1.setTitle( "filler" );
    // Create the 2nd field.
    final ListGridField field2 = new ListGridField();
    field2.setWidth( 100 );
    field2.setName( "wrapperField" );
    field2.setTitle( "wrapperMan" );
    field2.setFrozen( true );
    fields[0] = field1;
    fields[1] = field2;
    grid.setFields( fields );
    // Create the Data.
    final ListGridRecord[] records = new ListGridRecord[2];
    // Create the 1st row of data.
    final ListGridRecord record1 = new ListGridRecord();
    record1.setAttribute( "fillerField", "A little text" );
    record1.setAttribute( "wrapperField", "A lotta text, and then some...<br />and even more" );
    // Create the 2nd row of data.
    final ListGridRecord record2 = new ListGridRecord();
    record2.setAttribute( "fillerField", "Some text here too" );
    record2.setAttribute( "wrapperField", "Not too much here" );
    // Add the data records.
    records[0] = record1;
    records[1] = record2;
    // Set the data.
    grid.setData( records );
    // Create the Window.
    final Window win = new Window();
    win.setWidth( 500 );
    win.setHeight( 500 );
    win.setTitle( "ListGrid Issue Test" );
    // Add the grid to the Window.
    win.addItem( grid );
    // Show the Window.
    win.show();

    #2
    If you think it's straightforward, feel free to submit a patch - remember not to degrade performance or break any other feature or subclass. Otherwise, consider Feature Sponsorship.

    Comment

    Working...
    X