New Widgets * add tree support * add popup support Widget Features * support multiple selection * support more than one window * color picker will not fire events if type is set to button * support sorting and filtering on client * support lazy loading and server-side models for text, tabs, decks, list/tree data, RDF templates? * support mixed content (Hello world) * support client-side-only events * use Coro continuations for modal dialog boxes * support calling XUL methods with more than one param * use Want module in XUL::Node for lvalue support on attributes * add_listener $button => Click => sub { print 'clicked!' }; should be: add_listener $button => Click { print 'clicked!' }; Server Features * play nicely with POE- allow user code to get POE events * add Node attribute: refresh- number of ms till client should send one refresh event, or just go ahead and go the Comet way * add session kill method for user code * add package reload to server, Apache::Reload style * add another HTTP connection, for server initiated messages * add something like Apache2 perl-script handler, so you don't have to implement start() or an application class, just write a script * better cleanup required after user code exceptions * performance: stop flushing all nodes for each event * test performance * clean up weak nodes from event manager when destroyed * figure out some way to throw away, on server side, widgets that never change or recieve events, so we can free memory * allow some async events * support event bundling, compression, message store caching Testing * improve unit tests, investigate coverage * create acceptance tests by automating Firefox, selenium * assert only one event is sent over the wire per high-level event * AbstractNodeTest to inherit from when testing your widget- a percolator Refactorings * refactor support code out of node: attribute handling, compositing * refactor all exporting code out of node and MVC into XUL::Node::Exporter * probably change Click event in Perl to Command * refactor session timer out of server using aspects * replace conditionals in Runner.js and Application.js with polymorphism using node prototypes * auto convert XBL files to some schema so we can check method calls on server Documentation * add MVC docs * add subclassing XUL::Node docs * add writing your own pair of half-objects docs * provide a XUL reference in POD for Perl XUL::Node users Other * create real demo applications * construct a high-level MVC framework on top of low-level widgets * a command line launcher that launches firefox and a server * a new project wizard like in Maypole