This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Addendum to My BottomFeeder Wish List
Feed Title: Richard Demers Blog
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rademers-rss.xml
Feed Description: Richard Demers on Smalltalk
Since publishing my wish list, I've been thinking about one other item that would really be cool: a way for users to write Smalltalk scripts against the objects of the BottomFeeder domain model. There are several aspects to this:
Writing scripts. Smalltalk programmers write scripts all the time -- usually in a Workspace, but often in any convenient editing pane. It's how a lot of Smalltalk code gets tested. Workspaces provide convenient facilities for writing, managing and executing scripts, but they are not usually included with shipped applications. This is mostly a matter of application configuration.
Connecting scripts in a Workspace with the occurrence of events in the user interface. For example, it should be possible to invoke a specific script when a user removes a feed from a folder. Many such events are now handled by BottomFeeder without any possibility of intervention by a user script, including menu, toolbar and keyboard events. The Smalltalk event triggering and handling mechanisms could be used to do this. It is also desirable for a user to be able to define additional menu actions. The section of the BottomFeeder User's Guide on plugins already says how to do this.
Access to the BottomFeeder domain model. Internal to BottomFeeder is a domain model consisting of objects for folders, feeds, items, filters, queries, etc. Their "API" is in the form of Smalltalk messages, but this would have to be simplified and formalized to be usable by user scripts.
Error containment. User written scripts are, after all, just code; and therefore subject to bugs. It would be necessary to contain the execution of scripts in an error detection environment that protects the main program while still leaving open to script writers Smalltalk's powerful debugging facilities.
All in all, this would not be an easy thing to do, but then Smalltalkers revel in doing the difficult with the greatest of ease!