[jQuery] Re: SlickGrid updates!

2009-12-17 Thread Tin
The SlickGrid source code has been migrated to GitHub:
http://github.com/mleibman/SlickGrid


[jQuery] SlickGrid updates!

2009-12-15 Thread Tin
SlickGrid keeps growing!

SlickGrid now has a Google Group where you can get help, provide
feedback and ideas for improvement, and ask questions:
http://groups.google.com/group/slickgrid


NEW FEATURES:

- Row reorder support.

  Column definitions can now be marked with behavior:move property
to designate those columns as row drag handles.
  You can then implement two new events on the grid - onBeforeMoveRows
(rows,insertedBefore) and onMoveRows(rows,insertedBefore).
  The former one lets you return a bool indicating whether or not
given rows can be moved to that location also providing an indication
to the user via a guide.
  Rows are either moved individually or as a block (all selected
rows).

  Example:  
http://slickgrid.googlecode.com/svn/trunk/examples/example9-row-reordering.html


- (pseudo)background async post-render.

  You can still have rich, complex cells rendered against the actual
DOM nodes while still preserving the speed and responsiveness.
  This is achieved through async background post-rendering. SlickGrid
exposes a onPostProcessRowNode(rowNode,row,context) event which you
can subscribe to and implement your own rendering there.
  The event is fired one by one for all visible rows in the viewport
on a timer so it doesn't impact the UI responsiveness.
  You should still make sure that post-processing one row doesn't take
too long though.
  SlickGrid will figure out what and when needs to be updated for you.

  Example:  
http://slickgrid.googlecode.com/svn/trunk/examples/example10-async-post-render.html


- New example demonstrating a completely customized cell rendering.

  
http://slickgrid.googlecode.com/svn/trunk/examples/example8-alternative-display.html


[jQuery] SlickGrid updates

2009-11-23 Thread Tin
Lots of changes in this one:
- Updated jQueryUI to 1.7.2.
- Updated jQueryUI theme.
- Started putting preliminary support for jQueryUI themes CSS
framework.
- Removed unminified library files.
- New option in SlickGrid: leaveRoomForNewRows.  False by default (a
change from the previous version).  If true and new rows can be added,
the grid adds one page of whitespace at the end to make bulk data
entry easy.
- Implemented paging support in the DataView (slick.model.js).
- Implemented pager control to work with DataView (slick.pager.js).
- Updated example7-model.html to make use of the pager.


Play around with 
http://slickgrid.googlecode.com/svn/trunk/examples/example4-model.html
and let me know what you think.


[jQuery] New SlickGrid example page - AJAX loading

2009-10-08 Thread Tin

A lot of people have been asking for an example of how to use
SlickGrid with remote data stores.  I've just added a new sample page
that does just that:

http://slickgrid.googlecode.com/svn/trunk/examples/example6-ajax-loading.html

The page will pull all Apple-related stories from Digg.com and display
them in a grid.
I've also added an option to set a user-defined row height (something
I've meant to do for a long time).

Check it out at http://code.google.com/p/slickgrid/



[jQuery] Re: Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-05-21 Thread Tin

I do plan on continuing to develop it - the last month has been really
slow since I had little spare time to spend on it.


On May 21, 8:47 am, dcam dougie.came...@googlemail.com wrote:
 Very nice design.

 I've been looking for a grid plugin for ages and not found anything
 that comes close to this.
 Do you plan to continue developing this? I'm sure there are a lot of
 developers looking for this kind of grid

 Thanks for your work Michael,
 Douglas

 On Mar 31, 1:02 am, Tin michael.leib...@gmail.com wrote:



  Ryan,

  Frozen columns is one of the TODOs in the slick.grid.js :)
  It is definitely something that I think needs to be added in.  For the
  past week, I have mostly concentrated on improving performance and the
  ability to adjust to the browser's performance and not jump into async
  rendering mode prematurely.  Now that that part is done, it's either
  working on frozen columns support, or adding another example having to
  do with AJAX-loading data from the server (which, personally, I think
  is pretty mundane and not really related to the grid itself).  I guess
  I'll start working on the former now...


[jQuery] Re: A Tree which can be filtered or searched....

2009-04-02 Thread Tin

Ravish,
I've added a collapse/expand example to SlickGrid.  Check it out at
http://slickgrid.googlecode.com/svn/trunk/example5-collapsing.html


On Apr 2, 2:31 pm, Jack Killpatrick j...@ihwy.com wrote:
 Right, I was thinking maybe treetable combined with the quicksearch
 plugin... ie: the quicksearch plugin would search the treetable, but the
 side-effect is that it will show found rows, not correctly expand the
 tree. (so not good).

 So yeah, the search continues. I haven't seen a jquery plugin like that
 ext searchable tree. Maybe ask on the jquery-ui list: there's some tree
 work going on there.

 - Jack



 Ravish Bhagdev wrote:
  Yes, it is collapsible but it dosen't have the filter or search
  capability like the filtertree (http://www.extjs.com/explorer/#filtertree)

  So not quite as useful.

  Ravish

  On Thu, Apr 2, 2009 at 9:49 PM, Jack Killpatrick j...@ihwy.com
  mailto:j...@ihwy.com wrote:

      The treetable plugin (below) is collapsible. You may hit a snag
      trying to find something that will open up the found node,
      though. I'm pretty sure that the quicksearch plugin will just pay
      attention to table elements, regardless of their visibility, but
      it would not open the parent(s) up the tree.

      I'm curious if you find something.

      - Jack

      Ravish Bhagdev wrote:
      Thanks Jack,

      But I'm looking for a tree that is collapsible.  I'm reading
      jquery documentation to see how difficult it will be to implement
      something that keeps index of all nodes in when searching hides
      matching id of node by getting hold of the element.  Sounds a bit
      tricky though :(

      Ravish

      On Thu, Apr 2, 2009 at 4:56 PM, Jack Killpatrick j...@ihwy.com
      mailto:j...@ihwy.com wrote:

          If the tree is just a list internally, you might be able to
          use this:

         http://rikrikrik.com/jquery/quicksearch/

          or maybe use that with this:

         http://blog.cubicphuse.nl/2008/11/12/jquery-treetable-2-0

          - Jack

          Ravish wrote:
           Hi,

           I've been looking for a tree widget which can be filtered
          or searched
           by typing keyword in a textbox.  When trees have thousands
          of nodes,
           its very difficult for users to browse manually.  Has
          anyone ever seen
           such a widget (jquery based ideally but other will do as
          well).  I am
           surprised to find that none of the available plugins
          support this
           feature!

           Thanks


[jQuery] Re: A Tree which can be filtered or searched....

2009-04-02 Thread Tin

Actually, the filter works on all nodes, and if the parent (or any
ancestors) are filtered out, none of the descendants will show up
either.  As for the case sensitivity... well, it's an example.  Your
implementation of the filter function can be better :)



On Apr 2, 4:34 pm, Ravish Bhagdev ravish.bhag...@gmail.com wrote:
 Looks good michael!  Couple of minor observations:

 - Filter only works on root nodes,
 - Is case sensitive (simple toLower on both vars used in indexof should fix
 it, so no biggie)

 I really like the % graph and slider thingy :-)

 Cheers,
 R



 On Thu, Apr 2, 2009 at 11:38 PM, Tin michael.leib...@gmail.com wrote:

  Ravish,
  I've added a collapse/expand example to SlickGrid.  Check it out at
 http://slickgrid.googlecode.com/svn/trunk/example5-collapsing.html

  On Apr 2, 2:31 pm, Jack Killpatrick j...@ihwy.com wrote:
   Right, I was thinking maybe treetable combined with the quicksearch
   plugin... ie: the quicksearch plugin would search the treetable, but the
   side-effect is that it will show found rows, not correctly expand the
   tree. (so not good).

   So yeah, the search continues. I haven't seen a jquery plugin like that
   ext searchable tree. Maybe ask on the jquery-ui list: there's some tree
   work going on there.

   - Jack

   Ravish Bhagdev wrote:
Yes, it is collapsible but it dosen't have the filter or search
capability like the filtertree (
 http://www.extjs.com/explorer/#filtertree)

So not quite as useful.

Ravish

On Thu, Apr 2, 2009 at 9:49 PM, Jack Killpatrick j...@ihwy.com
mailto:j...@ihwy.com wrote:

    The treetable plugin (below) is collapsible. You may hit a snag
    trying to find something that will open up the found node,
    though. I'm pretty sure that the quicksearch plugin will just pay
    attention to table elements, regardless of their visibility, but
    it would not open the parent(s) up the tree.

    I'm curious if you find something.

    - Jack

    Ravish Bhagdev wrote:
    Thanks Jack,

    But I'm looking for a tree that is collapsible.  I'm reading
    jquery documentation to see how difficult it will be to implement
    something that keeps index of all nodes in when searching hides
    matching id of node by getting hold of the element.  Sounds a bit
    tricky though :(

    Ravish

    On Thu, Apr 2, 2009 at 4:56 PM, Jack Killpatrick j...@ihwy.com
    mailto:j...@ihwy.com wrote:

        If the tree is just a list internally, you might be able to
        use this:

       http://rikrikrik.com/jquery/quicksearch/

        or maybe use that with this:

       http://blog.cubicphuse.nl/2008/11/12/jquery-treetable-2-0

        - Jack

        Ravish wrote:
         Hi,

         I've been looking for a tree widget which can be filtered
        or searched
         by typing keyword in a textbox.  When trees have thousands
        of nodes,
         its very difficult for users to browse manually.  Has
        anyone ever seen
         such a widget (jquery based ideally but other will do as
        well).  I am
         surprised to find that none of the available plugins
        support this
         feature!

         Thanks


[jQuery] Re: A Tree which can be filtered or searched....

2009-04-01 Thread Tin

Ravish,

Take a look at SlickGrid at http://slickgrid.googlecode.com (example
4).
While it is an editable grid and not a tree, the tree-like expand/
collapse functionality is easily implemented and the DataView allows
expanding/collapsing/searching/sorting/etc with 100'000 items with
ease even on older machines and browsers.



On Mar 31, 8:45 pm, Ravish ravish.bhag...@gmail.com wrote:
 Hi,

 I've been looking for a tree widget which can be filtered or searched
 by typing keyword in a textbox.  When trees have thousands of nodes,
 its very difficult for users to browse manually.  Has anyone ever seen
 such a widget (jquery based ideally but other will do as well).  I am
 surprised to find that none of the available plugins support this
 feature!

 Thanks


[jQuery] Re: Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-03-30 Thread Tin

Ryan,

Frozen columns is one of the TODOs in the slick.grid.js :)
It is definitely something that I think needs to be added in.  For the
past week, I have mostly concentrated on improving performance and the
ability to adjust to the browser's performance and not jump into async
rendering mode prematurely.  Now that that part is done, it's either
working on frozen columns support, or adding another example having to
do with AJAX-loading data from the server (which, personally, I think
is pretty mundane and not really related to the grid itself).  I guess
I'll start working on the former now...


[jQuery] Re: Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-03-27 Thread Tin

Zachariah,

Thanks for the word of encouragement!  Do you have any feedback/
lessons learned from your application?
I've made a lot of progress recently in terms of adding a DataView to
drive the grid and optimizing the core loop, but formalizing the API
and writing the documentation haven't been moving very fast.
Unfortunately, without that documentation, a lot of people seem to be
dismissing it at first glance without realizing what makes SlickGrid
different.


+Michael


On Mar 27, 4:24 am, Zachariah craniumcomput...@gmail.com wrote:
 Michael,

 I am incredibly impressed with the speed of this grid. Last month I
 began a search for the right grid, and I didn't find it. For my
 application, I needed formatting flexibility that tables could not
 offer, and large data-set handling that make most other grids studder.
 I've been using jquery for quite sometime and yet have never been
 compelled to post in the forums until now (as I always found my answer
 before I did). I truly hope an incarnation of SlickGrid makes it into
 jquery ui and therefore gets all the love and attention necessary to
 make it the star it deserves to become.

 -Zachariah

 On Mar 8, 6:31 pm, Tin michael.leib...@gmail.com wrote:



  Hey All,

  I've been working on a grid/spreadsheet control prototype during the
  last couple of weeks.  Seeing how there doesn't seem to be a lot of
  other choices for this sort of thing, I had to write my own.  I've put
  the project up on Google Code and am looking for experienced
  developers who can pick this up and turn it into something that
  everybody can use (a jQuery UI grid plugin?).

  The project is hosted athttp://code.google.com/p/slickgrid/.
  Below is a copy of the project home page.

  Looking forward to your feedback!

  Michael Leibman
  michael.leib...@gmail.com
  Principal Engineer
  Daptiv Inc.

  --- 
  ---

  SlickGrid

  What it is

  Quite simply, SlickGrid is a JavaScript grid/spreadsheet component.

  Some highlights:

  Virtual scrolling/rendering (hundreds of thousands of rows)
  Extremely fast rendering speed
  Configurable  customizable
  Full keyboard navigation
  Resizable/reorderable columns
  Custom cell formatters  editors
  Support for editing and creating new rows.
  GlobalEditorLock to manage concurrent edits in cases where multiple
  Views on a page can edit the same data.
  Why?

  This is pretty much a work-in-progress prototype, so I don't feel like
  spending a lot of time documenting it at this stage. I do think it is
  quite promising though, so I'm putting it up for everybody to see and
  play with. In its current form, it satisfies nearly all of the
  requirements for the project I am working on where I am utilizing it
  in an MVC application, so I'm not sure how much time I can afford on
  turning SlickGrid into something that would work for everybody. If you
  are willing to help out - let me know, and I'll add you to the project
  so that you can contribute.

  Examples

  Basic use:http://slickgrid.googlecode.com/svn/trunk/example1-simple.html

  Adding some 
  formatting:http://slickgrid.googlecode.com/svn/trunk/example2-formatters.html

  Turning it into a 
  spreadsheet:http://slickgrid.googlecode.com/svn/trunk/example3-editing.html

  A more comprehensive test 
  page:http://slickgrid.googlecode.com/svn/trunk/grid.html

  Documentation

  See comments at the top 
  ofhttp://slickgrid.googlecode.com/svn/trunk/slick.grid.js.


[jQuery] Re: Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-03-20 Thread Tin

Sridhar,

The grid itself is fairly data-agnostic.  It reads the data through
the JavaScript array interface, but what drives the datasource is
completely arbitrary.  The examples on the project home page show
several ways of feeding the data to the grid.  Examples #1-#3 load the
data directly in a client-side JavaScript array - you can adapt that
to load the missing parts from the server through ajax.  I will add
some examples of doing that soon, but it is pretty straightforward.
The MUCH more interesting way of feeding the data to the grid is
through a Model or, in the case of example #4 a filtered DataView.
That allows you to implement search, filter, sort, expand/collapse,
etc. and have all of that happen on the client and real-time.  It does
have limitations on the amount of the data since the browser has to do
all the work for sorting, filtering and figuring out the differences
between the two consecutive states.  Those limitations will really
depend on your data, but just to give you an example, on my laptop,
example #4 is still quite usable with 50'000 items after yesterday's
round of optimizations :)

The next logical step is to write a disconnected, AJAX-enabled server-
driven DataView for working with extremely large datasets, and that is
what I will likely have to tackle soon (btw, this is where some help
would be appreciated!).  The implementation would be pretty similar,
but most of the operations would get moved to the server, and the data
will be lazy-loaded.




On Mar 19, 9:02 pm, Sridhar dsridha...@gmail.com wrote:
 Hi,

    I am not sure how you are loading the data from server side and how
 you are updating the data. do you have any examples? The grid looks
 really nice. It is as fast as it can be. I am really impressed with
 speed. I am still learning jquery. I wish I could have contributed for
 this. By the way, I am trying to use this in asp.net 2.0

 Thanks,
 sridhar.

 On Mar 18, 5:25 pm, Tin michael.leib...@gmail.com wrote:



  Updated the last example (http://slickgrid.googlecode.com/svn/trunk/
  example4-model.html) with column sorting (click on column headers).
  Some grid code refactoring plus multiple bug fixes and performance
  enhancements (try the slider!).


[jQuery] Re: Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-03-20 Thread Tin

BTW, I *did* mean to say 50'000 items - that's not a typo.  The
example is set to use 500 rows, but setting it to 50'000 works
reasonably well in IE7, which by my benchmarks (http://
slickgrid.googlecode.com/svn/trunk/model%20benchmarks.html) is about 4
times slower than FF3 and Chrome/Safari.  The slider can't keep up
with the processing, but sorting and filtering by task title works
fine.


On Mar 20, 1:23 am, Tin michael.leib...@gmail.com wrote:
 Sridhar,

 The grid itself is fairly data-agnostic.  It reads the data through
 the JavaScript array interface, but what drives the datasource is
 completely arbitrary.  The examples on the project home page show
 several ways of feeding the data to the grid.  Examples #1-#3 load the
 data directly in a client-side JavaScript array - you can adapt that
 to load the missing parts from the server through ajax.  I will add
 some examples of doing that soon, but it is pretty straightforward.
 The MUCH more interesting way of feeding the data to the grid is
 through a Model or, in the case of example #4 a filtered DataView.
 That allows you to implement search, filter, sort, expand/collapse,
 etc. and have all of that happen on the client and real-time.  It does
 have limitations on the amount of the data since the browser has to do
 all the work for sorting, filtering and figuring out the differences
 between the two consecutive states.  Those limitations will really
 depend on your data, but just to give you an example, on my laptop,
 example #4 is still quite usable with 50'000 items after yesterday's
 round of optimizations :)

 The next logical step is to write a disconnected, AJAX-enabled server-
 driven DataView for working with extremely large datasets, and that is
 what I will likely have to tackle soon (btw, this is where some help
 would be appreciated!).  The implementation would be pretty similar,
 but most of the operations would get moved to the server, and the data
 will be lazy-loaded.

 On Mar 19, 9:02 pm, Sridhar dsridha...@gmail.com wrote:



  Hi,

     I am not sure how you are loading the data from server side and how
  you are updating the data. do you have any examples? The grid looks
  really nice. It is as fast as it can be. I am really impressed with
  speed. I am still learning jquery. I wish I could have contributed for
  this. By the way, I am trying to use this in asp.net 2.0

  Thanks,
  sridhar.

  On Mar 18, 5:25 pm, Tin michael.leib...@gmail.com wrote:

   Updated the last example (http://slickgrid.googlecode.com/svn/trunk/
   example4-model.html) with column sorting (click on column headers).
   Some grid code refactoring plus multiple bug fixes and performance
   enhancements (try the slider!).


[jQuery] Re: Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-03-18 Thread Tin

Updated the last example (http://slickgrid.googlecode.com/svn/trunk/
example4-model.html) with column sorting (click on column headers).
Some grid code refactoring plus multiple bug fixes and performance
enhancements (try the slider!).


[jQuery] Re: Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-03-17 Thread Tin

More updates to the Model (DataView).

Added:
- addItem
- insertItem
- updateItem
- deleteItem

Plus a bunch of bug fixes and code cleanup.

Demo:
http://slickgrid.googlecode.com/svn/trunk/example4-model.html



[jQuery] Re: Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-03-16 Thread Tin

Guys,

I've finally gotten around to implementing a sample Model to drive the
SlickGrid.
As it stands right now, it provides a filtered/sorted view of the data
as well as a mechanism to resort or update the filters.  Whenever the
data in the view changes, the model fires onRowCountChanged and/or
onRowsChanged events containing numbers of rows that changed.  We then
wire the onRowCountChanged to call grid.resizeCanvas() and
onRowsChanged to call grid.removeRow() for each changed row and then
grid.render() to fill in the blanks.  This way, the grid only updates
the changed portions and only in the viewport which allows it to do
real-time updates to large amounts of data.

This is one of the areas where SlickGrid really shines.  The test page
at http://slickgrid.googlecode.com/svn/trunk/example4-model.html shows
an editable spreadsheet of 500 tasks with a filter pane on top.
Notice that typing in the search textbox or dragging the slider
results in a REAL-TIME update of the grid.


[jQuery] Re: Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-03-14 Thread Tin

Richard,

I don't know how well SlickGrid aligns with what most people would
expect of a jQueryUI Grid plugin.
The key difference is that most of the grid implementations listed on
the jQuery UI wiki (jqGrid, DataTables, ...)  focus too much on being
able to work with data (search, sort, parse, ajax load, etc.) and not
enough on being a better grid (or in case of editable grids, a
spreadsheet).  It's great if all you want to do is to spruce up an
HTML TABLE, but too inflexible for anything more.  SlickGrid itself
only deals with rendering, virtual scrolling, keyboard navigation,
loading cell editors when needed, managing validation state, doing
common things like column resize/reorder and passing events through to
the Controller.  The core code is very concise.  If you want it to do
more, add custom cell formatters, rich cell editors, a Model that
implements filtering, expand/collapse, sorting, ajax-loading, etc.
You're not locked in to any particular way of doing anything.  (Again,
I apologize for the lack of design documentation and MVC examples -
I'm working on that.)

Dojo Grid is somewhat similar in its approach and functionality.  The
reason I decided to implement my own is because Dojo Grid is way too
heavy-handed for my taste.  Too complex with too many dependencies.
There's no reason you can't have all of that in a small and simple
component.  The other reason was their implementation of virtual
scrolling - it just wasn't responsive enough for me.  SlickGrid
dynamically switches between synchronous and asynchronous rendering in
order to deliver the fastest rerendering possible.

I would love nothing more than for this to become part of jQuery UI.
If you go over the code and the examples and decide that this is in
line with where you want to take GridTable, email me directly at
michael.leib...@gmail.com.

Thanks,
+Michael



On Mar 14, 6:35 am, Richard D. Worth rdwo...@gmail.com wrote:
 Michael and Anatoly (and anyone else that my be interested), I hope you
 consider joining us with your efforts over here:

 http://wiki.jqueryui.com/GridTable

 Thanks.

 - Richard



 On Sat, Mar 14, 2009 at 1:19 AM, AnatolyG anat...@geyfman.net wrote:

  Michael,

  Great job. I built a prototype of my own table for the same reasons a
  few months ago. The grid looks good, but for my purposes (and I am
  sure for many others), while having an array of rows is great and
  useful, the plugin should be able to create such tables from a regular
  table element. I am working on an enterprise app that outputs via
  xslt a table with a bunch of data, and it would be great to run this
  code as a plugin to convert the table (with rules for each column?)
  into a spreadsheet like in your last example. Should be fairly
  straight forward to do that..

  I am also looking for sorting (shouldn't be too bad), locking columns,
  locking header (done) and locking footer. I implemented these in my
  prototype already, as well as the rendering from table element.
  Anyway, I would love to help out in some capacity, if you're looking
  to develop this further.

  Anatoly

  On Mar 9, 5:31 am, Tin michael.leib...@gmail.com wrote:
   Hey All,

   I've been working on a grid/spreadsheet control prototype during the
   last couple of weeks.  Seeing how there doesn't seem to be a lot of
   other choices for this sort of thing, I had to write my own.  I've put
   the project up on Google Code and am looking for experienced
   developers who can pick this up and turn it into something that
   everybody can use (a jQuery UI grid plugin?).

   The project is hosted athttp://code.google.com/p/slickgrid/.
   Below is a copy of the project home page.

   Looking forward to your feedback!

   Michael Leibman
   michael.leib...@gmail.com
   Principal Engineer
   Daptiv Inc.

  --- 
  ---

   SlickGrid

   What it is

   Quite simply, SlickGrid is a JavaScript grid/spreadsheet component.

   Some highlights:

   Virtual scrolling/rendering (hundreds of thousands of rows)
   Extremely fast rendering speed
   Configurable  customizable
   Full keyboard navigation
   Resizable/reorderable columns
   Custom cell formatters  editors
   Support for editing and creating new rows.
   GlobalEditorLock to manage concurrent edits in cases where multiple
   Views on a page can edit the same data.
   Why?

   This is pretty much a work-in-progress prototype, so I don't feel like
   spending a lot of time documenting it at this stage. I do think it is
   quite promising though, so I'm putting it up for everybody to see and
   play with. In its current form, it satisfies nearly all of the
   requirements for the project I am working on where I am utilizing it
   in an MVC application, so I'm not sure how much time I can afford on
   turning SlickGrid into something that would work for everybody. If you
   are willing to help out - let me know, and I'll

[jQuery] Re: Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-03-13 Thread Tin

Jack,

The only issue I can think of right now is that the current edit
isn't committed when a column gets resized/moved.  There is also the
rerenderOnResize option on a column definition that currently
triggers a complete rerender.  There's a lot of things I'd like to add
to it though.  The first item on my list is to add a simple datasource
and a Model/Controller to demonstrate how this all works together.



On Mar 12, 6:43 pm, Jack Killpatrick j...@ihwy.com wrote:
 Hmm, this is really, er, slick ;-) ... I'm glad you wrote this extra
 info up, it caught my eye. Do you by chance have a known-issues list
 (outside of what would come from maybe making it a plugin or something)?

 Looks like a great contrib.

 Thanks,
 Jack



 Tin wrote:
  One more point.
  While this may not be immediately obvious from what you see in the
  examples and in the code, the key use of the grid is in MVC
  applications where the grid is wired to respond to events in the
  Model.  In our application we have spreadsheet component of a Gantt
  chart, and the Model is a filtered view of the tasks (rows) in the
  original datasource.  Suppose you collapse or expand a parent task or
  enter some text in a Quick Filter textbox.  The Model then
  recalculates which rows are now visible, compares that with what was
  visible before and fires two events - onRowCountChanged 
  onRowsChanged.  The latter one tells all subscribed Views, such as the
  grid, that the rows in specific positions changed.  The grid then only
  has to invalidate/remove those rows and call grid.renderViewport() to
  make sure that whatever is in the viewport is visible.  The
  onRowCountChanged event triggers the recalculation of the virtual
  canvas - grid.resizeCanvas().  Together, this pattern makes for an
  incredibly efficient, flexible and, most importantly, scalable
  implementation.
  I hope this helps explain some of the design elements behind
  SlickGrid.

  +Michael

  On Mar 9, 6:58 pm, Tin michael.leib...@gmail.com wrote:

  Ricardo,

  Not using tables is actually key to making the virtual rendering
  aspect of the grid work.
  Each row is an absolutely positioned DIV containing DIV cells set to
  float:left.
  Rows can then be easily added and removed without triggering cascading
  DOM changes.  In fact, this is done all the time in SlickGrid - as you
  scroll, only the content of the viewport plus a small buffer is
  actually rendered, leaving the browser's DOM nice and small.

  +Michael

  On Mar 9, 5:40 pm, ricardobeat ricardob...@gmail.com wrote:

  Looks great. I like how the editing works.

  One thing: why are you using DIVs instead of a table? That's precisely
  the only case where tables should be used, to display tabular data.
  It's semantically correct and can offer performance improvements, as
  table elements have native properties like their index and direct
  access to their children.

  cheers,
  - ricardo

  On Mar 8, 9:31 pm, Tin michael.leib...@gmail.com wrote:

  Hey All,

  I've been working on a grid/spreadsheet control prototype during the
  last couple of weeks.  Seeing how there doesn't seem to be a lot of
  other choices for this sort of thing, I had to write my own.  I've put
  the project up on Google Code and am looking for experienced
  developers who can pick this up and turn it into something that
  everybody can use (a jQuery UI grid plugin?).

  The project is hosted athttp://code.google.com/p/slickgrid/.
  Below is a copy of the project home page.

  Looking forward to your feedback!

  Michael Leibman
  michael.leib...@gmail.com
  Principal Engineer
  Daptiv Inc.

  ---
   ---

  SlickGrid

  What it is

  Quite simply, SlickGrid is a JavaScript grid/spreadsheet component.

  Some highlights:

  Virtual scrolling/rendering (hundreds of thousands of rows)
  Extremely fast rendering speed
  Configurable  customizable
  Full keyboard navigation
  Resizable/reorderable columns
  Custom cell formatters  editors
  Support for editing and creating new rows.
  GlobalEditorLock to manage concurrent edits in cases where multiple
  Views on a page can edit the same data.
  Why?

  This is pretty much a work-in-progress prototype, so I don't feel like
  spending a lot of time documenting it at this stage. I do think it is
  quite promising though, so I'm putting it up for everybody to see and
  play with. In its current form, it satisfies nearly all of the
  requirements for the project I am working on where I am utilizing it
  in an MVC application, so I'm not sure how much time I can afford on
  turning SlickGrid into something that would work for everybody. If you
  are willing to help out - let me know, and I'll add you to the project
  so that you can contribute.

  Examples

  Basic use:http://slickgrid.googlecode.com/svn/trunk/example1-simple.html

  Adding some 
  formatting:http://slickgrid.googlecode.com

[jQuery] Re: Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-03-09 Thread Tin

Ricardo,

Not using tables is actually key to making the virtual rendering
aspect of the grid work.
Each row is an absolutely positioned DIV containing DIV cells set to
float:left.
Rows can then be easily added and removed without triggering cascading
DOM changes.  In fact, this is done all the time in SlickGrid - as you
scroll, only the content of the viewport plus a small buffer is
actually rendered, leaving the browser's DOM nice and small.

+Michael


On Mar 9, 5:40 pm, ricardobeat ricardob...@gmail.com wrote:
 Looks great. I like how the editing works.

 One thing: why are you using DIVs instead of a table? That's precisely
 the only case where tables should be used, to display tabular data.
 It's semantically correct and can offer performance improvements, as
 table elements have native properties like their index and direct
 access to their children.

 cheers,
 - ricardo

 On Mar 8, 9:31 pm, Tin michael.leib...@gmail.com wrote:



  Hey All,

  I've been working on a grid/spreadsheet control prototype during the
  last couple of weeks.  Seeing how there doesn't seem to be a lot of
  other choices for this sort of thing, I had to write my own.  I've put
  the project up on Google Code and am looking for experienced
  developers who can pick this up and turn it into something that
  everybody can use (a jQuery UI grid plugin?).

  The project is hosted athttp://code.google.com/p/slickgrid/.
  Below is a copy of the project home page.

  Looking forward to your feedback!

  Michael Leibman
  michael.leib...@gmail.com
  Principal Engineer
  Daptiv Inc.

  --- 
  ---

  SlickGrid

  What it is

  Quite simply, SlickGrid is a JavaScript grid/spreadsheet component.

  Some highlights:

  Virtual scrolling/rendering (hundreds of thousands of rows)
  Extremely fast rendering speed
  Configurable  customizable
  Full keyboard navigation
  Resizable/reorderable columns
  Custom cell formatters  editors
  Support for editing and creating new rows.
  GlobalEditorLock to manage concurrent edits in cases where multiple
  Views on a page can edit the same data.
  Why?

  This is pretty much a work-in-progress prototype, so I don't feel like
  spending a lot of time documenting it at this stage. I do think it is
  quite promising though, so I'm putting it up for everybody to see and
  play with. In its current form, it satisfies nearly all of the
  requirements for the project I am working on where I am utilizing it
  in an MVC application, so I'm not sure how much time I can afford on
  turning SlickGrid into something that would work for everybody. If you
  are willing to help out - let me know, and I'll add you to the project
  so that you can contribute.

  Examples

  Basic use:http://slickgrid.googlecode.com/svn/trunk/example1-simple.html

  Adding some 
  formatting:http://slickgrid.googlecode.com/svn/trunk/example2-formatters.html

  Turning it into a 
  spreadsheet:http://slickgrid.googlecode.com/svn/trunk/example3-editing.html

  A more comprehensive test 
  page:http://slickgrid.googlecode.com/svn/trunk/grid.html

  Documentation

  See comments at the top 
  ofhttp://slickgrid.googlecode.com/svn/trunk/slick.grid.js.


[jQuery] Re: Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-03-09 Thread Tin

One more point.
While this may not be immediately obvious from what you see in the
examples and in the code, the key use of the grid is in MVC
applications where the grid is wired to respond to events in the
Model.  In our application we have spreadsheet component of a Gantt
chart, and the Model is a filtered view of the tasks (rows) in the
original datasource.  Suppose you collapse or expand a parent task or
enter some text in a Quick Filter textbox.  The Model then
recalculates which rows are now visible, compares that with what was
visible before and fires two events - onRowCountChanged 
onRowsChanged.  The latter one tells all subscribed Views, such as the
grid, that the rows in specific positions changed.  The grid then only
has to invalidate/remove those rows and call grid.renderViewport() to
make sure that whatever is in the viewport is visible.  The
onRowCountChanged event triggers the recalculation of the virtual
canvas - grid.resizeCanvas().  Together, this pattern makes for an
incredibly efficient, flexible and, most importantly, scalable
implementation.
I hope this helps explain some of the design elements behind
SlickGrid.

+Michael

On Mar 9, 6:58 pm, Tin michael.leib...@gmail.com wrote:
 Ricardo,

 Not using tables is actually key to making the virtual rendering
 aspect of the grid work.
 Each row is an absolutely positioned DIV containing DIV cells set to
 float:left.
 Rows can then be easily added and removed without triggering cascading
 DOM changes.  In fact, this is done all the time in SlickGrid - as you
 scroll, only the content of the viewport plus a small buffer is
 actually rendered, leaving the browser's DOM nice and small.

 +Michael

 On Mar 9, 5:40 pm, ricardobeat ricardob...@gmail.com wrote:



  Looks great. I like how the editing works.

  One thing: why are you using DIVs instead of a table? That's precisely
  the only case where tables should be used, to display tabular data.
  It's semantically correct and can offer performance improvements, as
  table elements have native properties like their index and direct
  access to their children.

  cheers,
  - ricardo

  On Mar 8, 9:31 pm, Tin michael.leib...@gmail.com wrote:

   Hey All,

   I've been working on a grid/spreadsheet control prototype during the
   last couple of weeks.  Seeing how there doesn't seem to be a lot of
   other choices for this sort of thing, I had to write my own.  I've put
   the project up on Google Code and am looking for experienced
   developers who can pick this up and turn it into something that
   everybody can use (a jQuery UI grid plugin?).

   The project is hosted athttp://code.google.com/p/slickgrid/.
   Below is a copy of the project home page.

   Looking forward to your feedback!

   Michael Leibman
   michael.leib...@gmail.com
   Principal Engineer
   Daptiv Inc.

   ---
---

   SlickGrid

   What it is

   Quite simply, SlickGrid is a JavaScript grid/spreadsheet component.

   Some highlights:

   Virtual scrolling/rendering (hundreds of thousands of rows)
   Extremely fast rendering speed
   Configurable  customizable
   Full keyboard navigation
   Resizable/reorderable columns
   Custom cell formatters  editors
   Support for editing and creating new rows.
   GlobalEditorLock to manage concurrent edits in cases where multiple
   Views on a page can edit the same data.
   Why?

   This is pretty much a work-in-progress prototype, so I don't feel like
   spending a lot of time documenting it at this stage. I do think it is
   quite promising though, so I'm putting it up for everybody to see and
   play with. In its current form, it satisfies nearly all of the
   requirements for the project I am working on where I am utilizing it
   in an MVC application, so I'm not sure how much time I can afford on
   turning SlickGrid into something that would work for everybody. If you
   are willing to help out - let me know, and I'll add you to the project
   so that you can contribute.

   Examples

   Basic use:http://slickgrid.googlecode.com/svn/trunk/example1-simple.html

   Adding some 
   formatting:http://slickgrid.googlecode.com/svn/trunk/example2-formatters.html

   Turning it into a 
   spreadsheet:http://slickgrid.googlecode.com/svn/trunk/example3-editing.html

   A more comprehensive test 
   page:http://slickgrid.googlecode.com/svn/trunk/grid.html

   Documentation

   See comments at the top 
   ofhttp://slickgrid.googlecode.com/svn/trunk/slick.grid.js.


[jQuery] Call for contributors: A simple, fast and flexible grid/spreadsheet component.

2009-03-08 Thread Tin

Hey All,

I've been working on a grid/spreadsheet control prototype during the
last couple of weeks.  Seeing how there doesn't seem to be a lot of
other choices for this sort of thing, I had to write my own.  I've put
the project up on Google Code and am looking for experienced
developers who can pick this up and turn it into something that
everybody can use (a jQuery UI grid plugin?).

The project is hosted at http://code.google.com/p/slickgrid/.
Below is a copy of the project home page.

Looking forward to your feedback!

Michael Leibman
michael.leib...@gmail.com
Principal Engineer
Daptiv Inc.

--

SlickGrid

What it is

Quite simply, SlickGrid is a JavaScript grid/spreadsheet component.

Some highlights:

Virtual scrolling/rendering (hundreds of thousands of rows)
Extremely fast rendering speed
Configurable  customizable
Full keyboard navigation
Resizable/reorderable columns
Custom cell formatters  editors
Support for editing and creating new rows.
GlobalEditorLock to manage concurrent edits in cases where multiple
Views on a page can edit the same data.
Why?

This is pretty much a work-in-progress prototype, so I don't feel like
spending a lot of time documenting it at this stage. I do think it is
quite promising though, so I'm putting it up for everybody to see and
play with. In its current form, it satisfies nearly all of the
requirements for the project I am working on where I am utilizing it
in an MVC application, so I'm not sure how much time I can afford on
turning SlickGrid into something that would work for everybody. If you
are willing to help out - let me know, and I'll add you to the project
so that you can contribute.

Examples

Basic use: http://slickgrid.googlecode.com/svn/trunk/example1-simple.html

Adding some formatting: 
http://slickgrid.googlecode.com/svn/trunk/example2-formatters.html

Turning it into a spreadsheet: 
http://slickgrid.googlecode.com/svn/trunk/example3-editing.html

A more comprehensive test page: 
http://slickgrid.googlecode.com/svn/trunk/grid.html

Documentation

See comments at the top of 
http://slickgrid.googlecode.com/svn/trunk/slick.grid.js.


[jQuery] Re: Deep $.extend() doesn't work with Date objects

2009-02-08 Thread Tin

I can see why it is working the way it does, but it seems like a clear
and easily fixable bug to me.  $.extend() could be made aware of the
intrinsic JavaScript objects so that they are copied (i.e. recreated)
properly.


On Feb 5, 3:11 pm, Stephan Veigl stephan.ve...@gmail.com wrote:
 Hi,

 this is because jQuery creates anonymous objects for the clones and
 copies the object properties. For the Date object there are no public
 properties, so only the empty object hull is created.

 But you are right, not copying Dates correctly is a bit strange.
 If you disable the copy deep flag, your date will be in the clone, but
 in this case it's no clone, but a reference to the original date
 object.

 by(e)
 Stephan

 2009/2/5 Tin michael.leib...@gmail.com:





  Hi guys,
  I'm trying to create a deep copy of an object with $.extend(true, {},
  obj), but I've noticed that all of the dates get copied as a simple
  Object with no properties.  Here's a sample code that demonstrates it:

  var clone = $.extend(true, {}, {myDate:new Date()});

  // clone.myDate returns {}
  // clone.myDate.toString() - [object Object]

  Any ideas on why this is happening?


[jQuery] Deep $.extend() doesn't work with Date objects

2009-02-05 Thread Tin

Hi guys,
I'm trying to create a deep copy of an object with $.extend(true, {},
obj), but I've noticed that all of the dates get copied as a simple
Object with no properties.  Here's a sample code that demonstrates it:

var clone = $.extend(true, {}, {myDate:new Date()});

// clone.myDate returns {}
// clone.myDate.toString() - [object Object]

Any ideas on why this is happening?