This blog isn't maintained anymore. Check out my current project, an agile/scrum management tool.

Friday, March 14, 2008

Flex-Spreadsheet first release

The first public release of my Flex spreadsheet component is now available from Google Code.  This component is very similar to the Flex datagrid with a few notable distinctions:  
  • It's designed for extensibility, not for speed or ease of use.
    • Item Renderers or Item Editors can implement a custom interface to get more information and control over the spreadsheet they're in.
      • They get more data about the spreadsheet.
      • They can dispatch a variety of events to cause the spreadsheet to do things
      • Editors don't neccessarily need to be confined to the size of the
  • It's designed primarily for data-input, not data-display
    • The spreadsheet can have a "placeholder" row.  
      • This row is created by the spreadsheet and is only inserted into the underlying data model when it's "valid".  
      • You can specify a class factory for creating these, and a custom validator class to determine when a row is or is not valid. 
      • Visually, it's slightly greyed out.
  • Keyboard navigation is sane
    • Tabbing between cells
    • Using the arrows between cells.
    • Using the arrows within while editing a cell 
    • Hitting enter submits an entire row.
    • Leaving a cell submits that cell
    • Build-in support for auto completion of cells with sane keyboard navigation of the auto-complete
    • Hitting escape cancels a cell-edit
I originally wrote this for AgileAgenda, recently we began using it for another project at my day-job.  Seeing how it was general enough for that, I thought it might be worth sharing for comments / suggestions / etc.
This component is not ready for general-use.  If you want to try it out expect:
  • It's not well documented.
  • There are bugs
  • For large data sets (300+ rows) it's slow
    • I do have several specific plans for greatly improving this, but I like to optimize last.  You never know when feature changes can really affect performance.
  • The partitioning feature will be completely re-written, don't play with it yet.
  • You will have questions.  I don't have time to answer them right now.
  • Many of the features (like sorting) have only been implemented enough to support my current projects and are not general enough to support every need yet.
So why am I posting this now?  I'm looking for feedback.  What works well, what doesn't.  What other things might you need to use it in your projects?
Getting started:
Grab the source and look at Main.mxml, it has a moderately commented example of using the component.  Also, Spreadsheet.as has a few comments in it that may be useful.
If you want to test out a sample, go here:
Eventually, more information about the project will be at that URL.

Labels:

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]



<< Home