ICEfaces
  1. ICEfaces
  2. ICE-7005

New Table Configuration Panel (ace:tableConfigPanel) component for ace:dataTable

    Details

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

      Description

      Add  support  for displaying  a non-modal "Table Configuration Pane" (TCP) popup to  the ace:dataTable.  The TCP popup can be used by the user to view and configure various ace:dataTable aspects in a single view.

       
      ace:tableConfigPanel:

      - A new ace:tableConfigPanel component will be created that can be associated to an ace:dataTable via a "for" attribute.

      - The tableConfigPanel would render as an icon on the page, which when clicked would toggle the display of the TCP popup. If the icon is clicked after the TCP popup is displayed and the user has made edits to the configuration of the dataTable, it is handled identically as if the user had clicked the "Close" button in the TCP panel itself (prompted to Apply any pending changes first, etc.).

      - ( This approach would allow the icon to be placed by the application, vs. being rendered automatically into the table header region ).


      TCP Popup:

      - Consists  of  a  tabular  display,  with  a  row  for  each  available   dataTable  column.  

      - The  tabular  display  includes  the  following  columns  for  each  row:
           1. Column  Order:
                - Is  implied  via  the  order  the  column-­‐row  appears  in  the   table,  row1=leftmost,  row2=2nd  from  left,  etc.  
                - Column  order  can  be  changed  by  clicking  an up or down arrow button  in  the  Column  Order  column,  which  will  move  the   row  up  or  down  one  line.  
                - Also  displays  a  draggable  widget (drag handle icon) for  re-­‐ordering  columns  in   the  table  via  vertical  drag-­‐and-­‐drop  of  the  widget  itself.  
           2. Column  Name:
                - The name/label for the column (none-editable).
           3. Column Visibility:
                - Represented  by  a  checkbox  control,  checked  for  visible,   unchecked  for  invisible.
                - Unchecked state (invisible) will also disable editing the other columns for this dataTable Column's row in the TCP.
           4. Sort  Criteria:
                - disabled if column is not sortable.
                - Up/Down  sort  arrows  (ascending/descending)  are displayed  for  each  column's   row  in  the  table.
                - Configuring the single or multi-column sort via clicking the arrows in each column works as described in ICE-xxxx (Support Multi-Column Sort), with the exception that the actual sort is not processed after each change, but instead only once after the TCP popup "Apply" button is clicked.

      - In addition to the tabular display, the TCP panel will also include the following buttons in the bottom right:
           1. "Clear Sort" - clears any defined sort criteria.
           2. "Apply" - Applies any changes made to the dataTable configuration in the TCP panel since the TCP was displayed, or since the last "Apply" button was pressed. Note that the changes being applied should be presented to the server atomically, such that the required processing to reflect the changes (col visibility, col. order, multi-col sort, etc.) can be processed during the resulting render cycle.
           3. "Close" - Closes / hides the TCP popup without applying any pending changes. If there are unapplied user edits pending, a modal confirmation dialog is displayed to confirm that the popup should be closed and the changes cancelled/lost.

        Issue Links

          Activity

          Hide
          Nils Lundquist added a comment -

          Skeleton added in r25261.

          Show
          Nils Lundquist added a comment - Skeleton added in r25261.
          Hide
          Nils Lundquist added a comment -

          First draft added in r25281.

          Show
          Nils Lundquist added a comment - First draft added in r25281.
          Hide
          Nils Lundquist added a comment -

          This component currently suffers from an issue where the changes made aren't persisted to the next request. Specifically, changing the rendered attribute of a UIColumn component only lasts until it is rendered with the old value in the next partial response.

          Show
          Nils Lundquist added a comment - This component currently suffers from an issue where the changes made aren't persisted to the next request. Specifically, changing the rendered attribute of a UIColumn component only lasts until it is rendered with the old value in the next partial response.
          Hide
          Ken Fyten added a comment -

          The UIColumn component reverting to its previous state issue has been resolved by state-saving fixes.

          Show
          Ken Fyten added a comment - The UIColumn component reverting to its previous state issue has been resolved by state-saving fixes.

            People

            • Assignee:
              Nils Lundquist
              Reporter:
              Ken Fyten
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: