Date: Sat, 29 Jan 2000 21:35:54 -0800
From: | Eric Armstrong |
eric.armstrong@eng.sun.com> Reply-To: unrev-II@onelist.com |
To: |
unrev-II@onelist.com" |
Subject: | [unrev-II] Possible Editor and Architecture |
This note covers a possible editor and some architecture ideas. The information here is based on some email conversations that grew out of the literate programming group, with the idea of using source code stored in XML to encourage literate programming.
[The project for maintaining source code in XML is slated to have it's web page at...
But that page isn't active yet. We're still trying to figure out why the mailing list doesn't work and sort out other admin issues.]
One of the goals for that project has been extensible XML editor -- one in which you can subclass existing code to modify it's behavior and then use the subclass in place of the original. That way, you can change not only the menu arrangements and keystroke assignments, but the very operation of the editor itself. (The major benefit of that strategy is that allows building up a repository of editor objects that operate in ways that are familiar to a variety of users. The resulting "editor construction kit" lets you build the editor of your dreams, or at least one you are familiar with.)
One option is to use the Apache editor, modifying it to achieve the desired level of extensibility. Another option is to use a Java-based XML recently developed by Grzegorz Skorupa. Grzegorz was kind enough to put it under a FreeBSD license and make the source available at http://pikosoft.dragontiger.com/index_en.html.
(This is the first editor I've seen that works along the lines I had envisioned -- with a JTree for structure and a secondary pane for content. Most don't present what I consider a reasonable interface to the user. Adept being a notable, and expensive, exception.)
As part of the eXtenDE project, Warner Ornstine (who suggested its name) has been working on an "Extension Cord Architecture" that allows new components to be added or replaced in an existing application. [He is currently examining JEdit, to see if it's EditBus can be used, or modified to work, with XML. JEdit is at:
This work is still in a very early stage, and exists only as a top level outline right now. However, that architecture might well be appropriate for the initial DKR prototype.
The heart of the architecture is Cord Manager, which manages all active Extensions and passes information from Plugs to Outlets.
Finally, a Cord may consist of many Plugs and Outlets.
Eric Armstrong
eric.armstrong@eng.sun.com