ICEfaces
  1. ICEfaces
  2. ICE-7210

Add new ace:dataTable vertical column "stacking" feature

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.1-Beta, 3.0
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      ICEfaces 2.1, Advanced Components Environment, ace:dataTable, ace:column component.
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial

      Description

      Add support to the ace:dataTable for vertically "stacking" adjoining ace:columns so that they render below the previous column, in the same datatable "cell" for each row.

      The following enhancements will be added to ace:column:
      - Add a new attribute called "stacked" which will accept a boolean value ("stacked=true/false"), default=false.
      - When stacked ("stacked=true" is specified), the ace:column's header and body cell contents will be rendered below the previous columns' header and cell content, instead of beside it in its own horizontal space. The effect is that the two columns are "stacked" vertically within a single column width in the table.
      - When stacked a horizontal separator (line or other CSS stylable element) will be rendered between each columns' header content in the header section of the table, and between each columns' body cell content.
      - The height of a stacked column header and body cell will be equal to the combined heights of each of the stacked column's header and body cell region, plus some additional height for rendering the horizontal separator between each columns' header and body cell content.
      - In all cases, an ace:column with "stacked=true" will render into the first leftmost adjascent ace:column with "stacked=false" specified,or the leftmost column in the dataTable, whichever occurs first.

      - The stacked columns features is NOT supported on the ace:columns component, only on the ace:column component.
      - It will be possible for an arbitrary number of ace:columns to be stacked into a single dataTable column region by specifying multiple "stacked=true" ace:columns in the table whose presentation order in the table is directly adjascent to one another.
      - The contents of the 2 (or more) columns would be treated as a single column with respect to the dataTable column width and row height calculations, thus, the row would expand to display the complete contents of the columns, as well as the width would expand to display the contents of the widest line of content in the combined cell.
      - All CSS styling for stacked columns is ignored, with the exception of style-classes that are associated with the contents of the column itself. The dataTable column styling for the first none-stacked dataTable column (either the leftmost column in the table, or the first column to the left of the stacked column that is not "stacked" itself) will be used for the dataTable column that contains the stacked column contents.

      - ace:dataTable must support the stacked column feature in all aspects of the ace:dataTable functionality (sorting, row selection, row expansion, filtering, etc.) - possible exception for combining the use of headerRow with column stacking.
      - Note that for ace:dataExport purposes, each individual ace:column will always be rendered into its own separate field and thus, the ace:column's "stacked" attribute will have no effect on dataExport operations.

        Activity

        Hide
        Mark Collette added a comment -

        Added the stacked property to ace:column, which will allow a column to be stacked underneath the column to it's left. Had to find every place where a header, footer or data cell is being rendered by DataTableRenderer, and separate out the rendering of the cell container from the cell contents, so that the contents may be stacked. Particular effort went into making cell styling and filterig work. Sorting half works.

        ace/component/src/org/icefaces/ace/component/column/ColumnMeta.java
        ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderer.java
        Subversion 25598

        Show
        Mark Collette added a comment - Added the stacked property to ace:column, which will allow a column to be stacked underneath the column to it's left. Had to find every place where a header, footer or data cell is being rendered by DataTableRenderer, and separate out the rendering of the cell container from the cell contents, so that the contents may be stacked. Particular effort went into making cell styling and filterig work. Sorting half works. ace/component/src/org/icefaces/ace/component/column/ColumnMeta.java ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderer.java Subversion 25598
        Hide
        Nils Lundquist added a comment -

        r25635 - Fixed stacked columns combined with sorting.

        Show
        Nils Lundquist added a comment - r25635 - Fixed stacked columns combined with sorting.

          People

          • Assignee:
            Mark Collette
            Reporter:
            Ken Fyten
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: