Extending Fedora Administrator

[insert quick description of types of extension mechanisms here]

Plug-In API

[talk about plug-in api]

The plug-ins are distributed as .class files in the plugins package. They're checked before performing an action... there is a hook before each action. You can continue with the default action or not, and you have access to a few things that let you interact with the system, etc, etc.

There will probably be two types of plug-ins. One is an action thing... before/after an action, and the other is a thing added to the tools menu. The plugin interface should provide some method for getting the name, description, and help html for a plugin... the help can be stored in the directory with the plugin, methinks.

I could extend SimpleHelpBroker to include a button or menu or something for installed plugins helps. But make it generalized so it could be re-used for other apps..hmm..

Datastream Editor API

[talk about datastream editor api]

The idea is that you can add an internal editor to take care of editing data of certain mime types. The editors will go in a standard place an probably follow something like (or exactly) the plugin interface. They'll also say what mime types they can edit or view, and whether they can only edit, only view, or both. They'll have access to internal variables so they can write their data, and they'll follow some kind of callback interface so when the app closes or the associated object is saved, etc, they'll know and can save automatically or bring up some kind of modal dialog or something.