Software Development Kit

Revision as of 13:16, 1 February 2006 by Watkinson (talk | contribs)

The Developer Kit is a self-contained package that facilitates the process of developing plugins for geWorkbench.

Using the Developer Kit

The Developer Kit is available as a .zip file. Unzip it in to a directory of your choice, then follow the instructions below to create a geWorkbench plugin.

The high-level steps for creating, testing and releasing a plugin are as follows:

  1. Edit the provided Apache Ant build script to specify the name of your plugin.
  2. Add the .java source files for your plugin to the src directory.
  3. Add any .jar libraries that your plugin requires to the lib directory.
  4. Run ant to build your plugin.
  5. Edit the geWorkbench configuration file to add a directive for your new plugin.
  6. Run geWorkbench with ant run to test your plugin.
  7. Once satisfied with your plugin, use the provided utility to package your plugin in to a single file for distribution.

The next section will illustrate the above steps with an example.

An Example Plugin

We will create an example plugin that is simply called test. This will be a very simple visualization plugin that just displays a blank blue region.

  • In the provided build.xml file, we find this line:
<property name="component" value="noname"/>

The line is changed to:

<property name="component" value="test"/>

This specifies the name of our component, which is used for all build products.

  • Next we will add a single .java source file in the org.organization.test package. The file TestComponent.java goes in the src/org/organization/test and has the following contents:
package org.organization.test;

import org.geworkbench.engine.config.VisualPlugin;
 
import javax.swing.*;
import java.awt.*;
 
/**
 * @author John Watkinson
 */
public class TestComponent implements VisualPlugin {
 
    private JPanel panel;
 
    public TestComponent() {
        panel = new JPanel();
        panel.setBackground(Color.blue);
    }
 
    public Component getComponent() {
        return panel;
    }
}