Existing Features * can import data from .json or .csv format files * can import data from del.icio.us * can create and modify data programmatically * can bind data to dojo.widget.Chart * can bind data to dojo.widget.SortableTable * can bind one data set to multiple widgets * notifications: widgets are notified when data changes * notification available per-item or per-resultSet * can create ad-hoc attributes * attributes can be loosely-typed * attributes can have meta-data like type and display name * half-implemented support for sorting * half-implemented support for export to .json * API for getting data in simple arrays * API for getting ResultSets with iterators (precursor to support for something like the openrico.org live grid) ~~~~~~~~~~~~~~~~~~~~~~~~ To-Do List * be able to import data from an html
* think about being able to import data from some type of XML * think about integration with dojo.undo.Manager * think more about how to represent the notion of different data types * think about what problems we'll run into when we have a MySQL data provider * in TableBindingHack, improve support for data types in the SortableTable binding * deal with ids (including MySQL multi-field keys) * add support for item-references: employeeItem.set('department', departmentItem); * deal with Attributes as instances of Items, not just subclasses of Items * unit tests for compare/sort code * unit tests for everything * implement item.toString('json') and item.toString('xml') * implement dataProvider.newItem({name: 'foo', age: 26}) * deal better with transactions * add support for deleting items * don't send out multiple notifications to the same observer * deal with item versions * prototype a Yahoo data provider -- http://developer.yahoo.net/common/json.html * prototype a data provider that enforces strong typing * prototype a data provider that prevents ad-hoc attributes * prototype a data provider that enforces single-kind item * prototype a data provider that allows for login/authentication * have loosely typed result sets play nicely with widgets that expect strong typing * prototype an example of spreadsheet-style formulas or derivation rules * experiment with some sort of fetch() that returns only a subset of a data provider's items