Permalink
Commits on Feb 25, 2011
Commits on Feb 22, 2011
  1. Cleaned up column width calculations and removed syncColumnCellResize…

    … option.
    
    Added a way to provide row and/or cell specific metadata:
    The item metadata is retrieved separately from the item itself.  It is done via the optional "getItemMetadata(index)" method on the data provider.  The method should return an object that will be queried by the grid.  The object can contain row-level properties itself (currently supported: selectable, focusable, cssClasses, formatter, editor) and a "columns" collection with column-level properties (currently supported: selectable, focusable, cssClasses, formatter, editor, colspan) indexed by column id or index.  The grid will first try to read a supported property off row-level metadata, then off column-level metadata first by id and then by index, and then off the column definition.
    
    Renamed "unselectable" into "selectable" and changed how it works.  It is now queried in the order described above, and the first available value is read.  The new "focusable" property works the same way.
    
    Separated logic for determining whether a cell can be active/focused and selected.  Added "canCellBeActive" method.
    
    Removed grouping-related code from the grid core and implemented it via "getItemMetadata" on the DataView.
    
    Rewrote cell navigation to work with colspan.
    
    Added support for colspan.  Colspan can be defined on the column definition (or item metadata via getItemMetadata).  A special value of "*" is taken to mean "span the rest of the row".
    
    TODO:
    Further decouple grouping.  Add a grouping plugin to handle toggling and provide formatters.  Move that stuff out of the DataView.
    mleibman committed Feb 22, 2011
Commits on Feb 20, 2011
Commits on Feb 9, 2011
Commits on Jan 21, 2011
Commits on Jan 19, 2011
Commits on Jan 12, 2011
Commits on Jan 10, 2011
Commits on Jan 5, 2011
  1. Work in progress.

    Added a CompositeEditor that can combine several editors and host them in specified containers.
    Added an example of using the CompositeEditor to do an item edit form.
    It is also a launching pad for adding ExtJS-like row level editing support.
    mleibman committed Jan 5, 2011
Commits on Jan 4, 2011
  1. Rolled back previous DataView optimization since it was flawed.

    More refactoring.
    Moved group sorting after the aggregation so that totals can be used in the comparer.
    mleibman committed Jan 4, 2011
Commits on Jan 3, 2011
  1. Added refresh hints to DataView to avoid unnecessary calculations. On…

    …ly used in expandGroup/collapseGroup right now.
    mleibman committed Jan 3, 2011
  2. Fixed columns appearing as resizable when "resizable" is false for al…

    …l of them.
    
    Fixed arguments defaults in event triggering in the grid.
    mleibman committed Jan 3, 2011
Commits on Jan 2, 2011
  1. Fixed a typo.

    mleibman committed Jan 2, 2011
  2. Forgot to change the grouping example back to 10'000 items. It does w…

    …ork with 50'000, but IE isn't as smooth.
    mleibman committed Jan 2, 2011
  3. Added direct totals ref to Group.

    Added internal markers (__nonDataRow, __group, __groupTotals) to NonDataRow, Group & GroupTotals for use instead of "instanceof", which is very slow.
    Brought back DataView.fastSort and sort direction in DataView.sort and rewrote the grouping logic to always sort groups first and then merge in the items in the original order.  The downside is that we can no longer group items and have them retain the original order (which I thought was very cool), but the old approach just didn't work with fastSort and, without it, IE<9 was useless beyond 10K items or so because of its deficient sort implementation.  There is one upside - group comparer now gets the group instance and not a grouping value, meaning that we can sort groups on things like counts and aggregation results.  Median performance is down, but IE (the lowest common denominator) is much faster.
    Refactored the DataView recalc code for clarity.
    Other minor changes in DataView.
    mleibman committed Jan 2, 2011
  4. DataView code cleanup.

    Fixed paging when using a DataView without a filter.
    mleibman committed Jan 2, 2011
Commits on Dec 31, 2010
  1. Micro-optimizations for DataView grouping/refresh.

    35.6% faster on IE8.
    21% faster on FF3.6.
    mleibman committed Dec 31, 2010
  2. Fixed pager layout in IE7.

    mleibman committed Dec 31, 2010
  3. Fixed GlobalEditorLock.

    mleibman committed Dec 31, 2010
  4. YUIDoc documentation.

    mleibman committed Dec 31, 2010
  5. Fixed pager background.

    mleibman committed Dec 31, 2010
  6. Added a "group" property to GroupTotals.

    Exposed groups and totals in the DataView.
    Removed most stuff not relevant to grouping from the grouping example and added a few controls to test the behavior.
    mleibman committed Dec 31, 2010
Commits on Dec 30, 2010
  1. This is likely unfinished and buggy, but it is waaay too cool not to …

    …check in now!
    
    Added Slick.NonDataRow and deriving Slick.Group and Slick.GroupTotals classes that the grid recognizes.
    
    Added grouping and aggregation support to the DataView.
    DataView.groupBy() takes in a grouping value getter (either a property name or a function), a grouping value formatter, and an optional sort comparer.
    The sort comparer is pretty slick.  Unlike most other implementations, SlickGrid's grouping does not force you into any particular order.  It can take your data just the way it is ordered and simply break it into groups.  Essentially, you can end up with multiple groups with the same value in different places.  If you do specify the grouping sort, however, you get a more traditional ordering where the items are first ordered by the groups and, then, ordered by whatever you normally sort by withing the groups.
    DataView now also supports custom aggregators and group expanding/collapsing.  Several reference aggregators are included in Slick.Data.
    Totals row cells are formatted using the "groupTotalsFormatter" specified on the column definition.
    
    To maintain a consistent API, I've decided to remove the "fastSort" DataView method.  For IE8 and lower, it may be better to override Array.prototype.sort with a custom quicksort or mergesort implementation.  Overriding the Object.toString works great, but it requires a different way of specifying the sort.
    
    Also for consistency's sake, I've removed the DataView.rows collection.  DataView now exposes GetItem() and GetLength() and can be used as a databinding source directly.
    mleibman committed Dec 30, 2010
Commits on Dec 29, 2010
Commits on Dec 28, 2010
Commits on Dec 20, 2010
  1. Removed jquery.curStyles pluging and replaced all uses of curStyles a…

    …nd the now deprecated curCSS with the regular jQuery css() since it now returns computed styles and normalizes the units. Changed dimensions variables from ints to floats to better work with browser zooming. Zooming is still mostly broken though due to buggy browser implementations. IE and FF can be worked around, but Chrome rounds up all returned computed styles, so we're out of luck.
    mleibman committed Dec 20, 2010
  2. Fixed RowSelectionModel destructor.

    Added a check for jQuery.curStyles to Slick.Grid.
    mleibman committed Dec 20, 2010
Commits on Dec 19, 2010
Commits on Dec 18, 2010
  1. Merge fix.

    mleibman committed Dec 18, 2010
  2. Changed the grid to read the dimensions from the computed style inste…

    …ad of actual elements. This fixes the issues displaying the grid in an initially hidden container.
    mleibman committed Dec 18, 2010
Commits on Dec 17, 2010
  1. Minor fixes to examples.

    mleibman committed Dec 17, 2010