batavia batavia
Available jobs Plugin developer

As plugin developer your job is to write new and/or maintain existing plugins.

To implement a plugin you need to create a property file:

You should define the following properties:

  • plugin.loadmode is one of the following
    • afterGUI if the plugin don't need to modify the GUI.
    • start if the plugin is a GUI plugin like the look & feel plugin.
      This type of plugin is loaded before the main window is shown on the screen.
  • plugin.classname the fully qualified name of the class which extends org.qfirst.batavia.Plugin
  • plugin.version the version number of the plugin
  • the name of the plugin
  • an identifier which distinguish this plugin from other plugins
  • plugin.short.description short description for the plugin
  • plugin.long.description long description for the plugin

If your plugin has menus you should create an XML file describing the menu structure.

Here is the format of the menu structure:
	<menu text="The name of the main menu item, typically the name of the plugin">
	    <menuitem actionclass="The fully quailified name of the action 
		(which must implement org.qfirst.batavia.plugin.AbstractPluginAction)"/>

The submenu item name come from the Action class. (see swing documentation for details).

The plugin class should implement the start() (invoked when the plugin is started) and the stop() method (invoked when the plugin is stopped).

If your plugin has options, it should be decribed in options.xml. The xml format is described here

You can also help maintaining old plugins.
The already existing plugins are:
  1. Look&Feel plugin
  2. Shell plugin
  3. QuickBar plugin
  4. Treeview plugin
These are available in CVS.

VFS developer

As VFS developer you should create and/or maintain existing virtual file systems like sftp, ftp, jar, zip, tar, gz, bzip2, etc. To implement a new type of filesystem, you should subclass the org.qfirst.vfs.AbstractFile and the org.qfirst.vfs.AbstractFileSystem class.

In your AbstractFile subclass you should implement methods which deletes, renames the file, queries its attributes (name, path, size, etc.) In your AbstractFileSystem subclass you should implement three methods:
  1. doMkdir() in which you should either create the appropriate directory or throw an UnsupportedOperationExpection(eg.: read-only filesystem)
  2. doListChildren() which should return a List of children of the given AbstractFile
  3. getCachePolicy() which returns an integer indicating what should be cached: All, childrens and/or attributes
Of cource, you can use third party libraries or external program like rar(on UNIX)/rar.exe(on Windows). Thus you only need to write wrapper classes, which is quite easy.

UI designer

Your job would be to improve the UI of Batavia. Although the UI is written in Java (using Swing) you do not really need to be familiar with programming, it is enough to send me prototypes and/or suggestions.

April 23, 2005
Documentation browsable online

March 4, 2005
Batavia 0.72 is released

Dec 31, 2004
New plugins available for download via plugin manager

Dec 30, 2004
New homepage!

Dec 28, 2004
Webstart version now works correctly with plugins!

Dec 27, 2004
Batavia 0.69 available for download