I've put various messages in the forum about these things but I thought It might be more effective to summarise everything I'm hoping to see in ext-js4.
Use case example:
To give some context, with the functionality below in place this would allow the creation of a "standard email application" which has a grid on the right able to display an arbitrary number of email messages and scroll down through them. It would be possible to filter down the emails by typing stuff into the column headers, so for example I'd be able to find emails with a given word in a subject line, or find all emails from "ed spencer". I would be able to select one or even thousands of emails and drag them into folders in a tree shown on the left. Scrolling up and down in the grid of emails would be extremely fast even for thousands of rows loaded (as Google says "speed is a feature").
I hope I'm not asking too much - the basic email style application model of grid on right and tree on left applies to a wide range of types of applications and it would be great if ext-js had the core feature set needed to implement such applications.
Here's the summary of things I'm hoping to see in ext-js4 which would make such an application possible:
1: Ability to configure mouse wheel to scroll fast up and down the grid - current scrolling with the mouse wheel feels very slow, much slower than pulling the scroller up and down. Slow mouse wheel scrolling makes the whole grid feel slow and therefore the end user feels that the application is slow.
2: Column header filter fields. So the user can type stuff in to a column header filter and load a new data set from the server based on the filter value
3: Endless pages / downward only infinite scrolling. We don't know the total number of rows in the result set, so it is not possible to use the new infinite grid. Please note that all previously loaded pages should remain in the grid with this approach (and still be fast).
4: Fast grid - moving up and down through the grid rows should remain extremely fast even for thousands of rows all loaded into the grid at the same time. This is NOT the same as being able to virtually page small chunks of data through a server based result set of thousands of rows.
5: Select multiple rows in the grid, both contiguous and non contiguous, remember the selected rows
6: Key navigation of grid rows, arrow up and down, page up/page down.
7: Ability to drag and drop grid rows onto tree nodes
8: Ability to display custom HTML in grid rows - for example I'd like to display a blue box with rounded corners, with text and graphics inside.
9: Lots of (20 or more) built in themes provided by Sencha, professionally done by a graphic designer so they look great. Even with theming tools many developers can't make stuff look great.
A strong nice to have: "nextkey" oriented paging (as opposed to start/limit oriented paging) which is the fastest way to scroll down to the next page of data when talking to a couchdb back end. See "fast paging" as described here: http://guide.couchdb.org/draft/recipes.html