ICEfaces
  1. ICEfaces
  2. ICE-7006

Support user-specified Column Ordering on ace:dataTable

    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, ace:dataTable
    • Assignee Priority:
      P1
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.), Sample App./Tutorial

      Description

      Add optional support for user‐controlled ordering of ace:dataTable columns via:

      - Direct  dragging  of  table  column  header  to  new  location  in  table,   similar  to http://developer.yahoo.com/yui/examples/datatable/dt_colshowhide_source.html

      - Changing  column  order  in  popup  "Table  Config.  Panel"  (see ICE-7005).

      - User  ordered  columns  should  optionally  be  persisted  to  backing‐beans  on  the  server  for  possible  retention  between  user  sessions.  

      - Ideally, changing column order would not require a server-roundtrip, but instead be performed on the client. For example,  if  the  option  is  not  to  be  persisted  to  backing  beans,   drag-­‐drop  should  be  on  client  side.  However, the  dataTable  implementation  currently does  not  support  the  notion  of  a  client-­‐side  column  order.  This   may  require  that  the  entire  dataTable  itself    be  rendered   dynamically  on  the  client  (via  JavaScript),  which  would  result  in   long  rendering  delays  when  large  dataTables  are  rendered.  Thus,  it   may  not  be  feasible  to  support  purely  client-­‐side  column  ordering,   but  this  suggestion  will  be  taken  under  consideration  during   implementation  of  this  feature.  The  alternative  is  that  the   table  row  is  reordered  via  client  action,  then  an  ajax  submit   occurs,  the  table  is  re-­‐rendered  with  the  correct  column  mapping   on  the  server,  and  the  resulting  changed  markup  is  sent  back  to   the  browser  and  dynamically  applied  to  the  DOM. The ajax-submit would limit execution and rendering to the dataTable in question.
         

        Issue Links

          Activity

          Hide
          Ken Fyten added a comment -

          Approach will be to implement the Table Config. Panel approach first, then add the D&D interactive mode after.

          Show
          Ken Fyten added a comment - Approach will be to implement the Table Config. Panel approach first, then add the D&D interactive mode after.
          Hide
          Nils Lundquist added a comment -

          Added in r25281.
          Server-side mode. Client-side mode could be added. Persistent state still required.

          Show
          Nils Lundquist added a comment - Added in r25281. Server-side mode. Client-side mode could be added. Persistent state still required.
          Hide
          Ken Fyten added a comment -

          We still need the direct column header dragging feature.

          Show
          Ken Fyten added a comment - We still need the direct column header dragging feature.
          Hide
          Nils Lundquist added a comment -

          First draft of reordering in r25546. Fully functional, only cursor styling yet to write.

          Show
          Nils Lundquist added a comment - First draft of reordering in r25546. Fully functional, only cursor styling yet to write.
          Hide
          Nils Lundquist added a comment -

          This feature has been fully implemented. No bugs currently observable.

          Show
          Nils Lundquist added a comment - This feature has been fully implemented. No bugs currently observable.

            People

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

              Dates

              • Created:
                Updated:
                Resolved: