Welcome, guest ( Login )

WikiHome » WidgetWishlist » Widget11

Widget11

Version 7, changed by guest 11/23/2005.   Show version history

Data Grid

Status: In progress

Description & features:

Data Grid UI

Basic Requirements(milestone 1 / <clever name here>)

  • asc/desc resortable by clicking column headers (sortable via server or client )
  • In-place editing (where applicable)
  • Can handle very large datasets
  • Paging
  • Emits events for commonly used concepts, like rowClicked, columnClicked,etc to make user interactions with grid less awkward
  • Ability to interact with a Data Model so that UI layer remains uncluttered by data logic.
  • Design considerations made so that future widgets can more easily override/add to common functionality of widget. Like a ListView? grid (inline detail viewing of data, Tree view of arbitrary structures )
  • Definition of renderGrid interface which starts the render of some chunk of data on the grid, allowing sub-widget types to override.
  • Definition of renderRow interface that allows users/sub-implementations ability to render the contents of the grid in very specific ways, without breaking the event emitter/other semantics of the grid.
  • The renderRow function will seemingly be the most commonly sub-classed method. If after the first initial UI cut this method really does seem easy enough to override and does appear to be commonly overriden by users, provide widget parameter allowing optional renderRow method to be called, without forcing users to actually sub-class the widget.

Extended Requirements (milestone 2 / <seems a little advanced for first pass>)

  • Autofilter (like in Excel)
  • Drag & drop column reordering
  • Pop-down in-place form editing within the table
  • drag to highlight multiple cells or rows
  • delete/cut/copy/paste/insert into highlighted range
  • Really?
  • Is the data grid intended to support use cases such as the setting & moving of appointments in a calendar view (think kiko.com)? If you use a 1-column grid for each day of the week perhaps?

Later Requirements

  • mod_pubsub live grid updates

Data Grid DataProvider

Basic Requirements (milestone 1)

  • simple protocol for generating post/get io requests to configurable URL for

retrieving data based on:

    • Paging semantics - StartingRowIndex?
    • Column sorting - Sort on a specified column (including by other-than-display-value, such as sorting dates according to time no matter the date display format)
    • Configurable parameter for retrieving "detail" data for a particular row, allowing inline editing of row data where applicable.
  • defines generic interface for all grid data in a standard javascript structure, ie:

`
data[0][1] = second column value of first row
data[2].objectName.thingy = Arbitrary JSON object structure return from server
`

  • Configurable column names
  • Configurable fixed column row headers
  • Should define one basic interface that all grid widgets communicate with, providing specific implementations for different types of data. Such as:
  • Define common event emitters for UI/other components to plug event listeners into for data state changes:
  • Query submitted
  • Data retrieved
  • Data removed

Most of these initial requirements are based on existing grid/UI methods for interacting with large datasets.

Attachments (0)

  File By Size Attached Ver.