home

Plugin Page

A list of current GOBU plugins (extension software) is given in this page. Plugin related programming topics will be provided in this page.

Contents

  1. Preface
  2. Plugin List
    1. Customized Plugins
  3. Plugin Programming
    1. Plugins Activated by Menu Selection
    2. Plugins Activated by Tree Node Selection
    3. Config Tree
    4. GOBU Tree API
  4. Property String Handlers
    1. Existing Property String Handlers
  5. PowerPoint Files
top

Preface

The section Plugin List gives an entry point of plugin information. Sections Plugin Programming and Property String Handlers are of programming related topics, and we don't suggest your reading if you are not interested in programming stuff.

To programmers: We suppose you had read Technical Section.
top

Plugin List

Here we list available plugins of GOBU. General purpose plugins are listed in Operation Manual.
  1. Genome View Plugin
  2. Conserved Segment View Plugin
  3. Listing
  4. Draw Focus Tree Plugin
  5. Data Distribution Chart
  6. GO Distribution Chart
  7. MultiView Plugin
  8. FastInput Plugin
  9. ExpressionView Plugin
Customized Plugins
Plugins customized for individual pipelines are listed here:
  1. Ferret Plugin
top

Plugin Programming

Plugin-writing related classes are collected in bio301.goutil.gobu.plugin package. Existing plugin classes are collected in bio301.goutil.gobu.plugins package. To write your own plugin, you need to implement a GOBU interface, GobuPlugin01. After compiling your plugin class and put it into a .jar file, you just need to put the .jar file into the plugins sub-folder of your GOBU folder for enabling your plugin. Enabled plugins will be listed in the Configuration Plugin. There are two ways to launch a plugin: by (popup) menu selection, or by tree node selection. Related concepts are described in the following two sub-sections.

Every GobuPlugin01 instance has a field named gobuFrame. gobuFrame holds the reference to the GOBU main window object (of class bio301.goutil.gobu.GobuFrame). By accessing gobuFrame, we are able to access GO tree, user tree and focused GO tree, where they are respectively named by jTreeLeft, jTreeMid and jTreeRight.

NOTE: We strongly recommend programmers to read at least Java Documents of GobuPlugin01. We also recommend programmers to trace the source code of bio301.goutil.gobu.plugins.testplugin.TestPlugin.

Plugins Activated by Menu Selection
A plugin can be listed and selected by four menus:
  1. GOBU menu bar: by selecting Plugins menu
  2. GO tree popup menu: by clicking a GO node and mouse-right-click
  3. User tree popup menu: by clicking a user node and mouse-right-click
  4. Focused GO tree popup menu: by clicking a node and mouse-right-click
If you want your plugin to be launchable by a menu selection, you have to assign a String value to XxxName and extend corresponding XxxLaunch() function. For example, in bio301.goutil.gobu.plugins.testplugin.TestPlugin, the field menuName is assigned by "test plugin menu" and corresponding menuLaunch() is implemented so that the String "launched by menu" will append to the plugin window.
click to enlarge
Fig. 1
Plugins Activated by Tree Node Selection
The mechanism of activating plugins by tree node selection is to let plugins immediately response user selection on a tree node. The general concepts are:
  1. A GobuPlugin01 instance should register its PropertyListeners to the PropertyListenerManager object held by GOBU main window. Every registered PropertyListener will take care only for programmer-designated selections.
  2. User may click on some tree nodes.
  3. Corresponding PropertyEvents will be generated by GOBU.
  4. GOBU will dispatch these PropertyEvents to registered PropertyListeners.
The interface PropertyListener assigns only one method named propertyChanged. This method has exactly one parameter -- a PropertyEvent instance. By accessing this instance, we are able to know the meaning of the selection (methods getNode and getSelectionLevel). We strongly recommend programmers to trace bio301.goutil.gobu.plugins.testplugin.TestPlugin for better understanding.
click to enlarge
Fig. 2
Config Tree
Config tree is a simple tree-structure information repository of GOBU. Tree format files in config sub-folder (of GOBU folder) will be loaded at start-up, then plugins can access config tree by accessing gobuFrame.configTree.

In config tree, loaded plugin classes are listed in the sub-tree rooted at "Configuration\tSystem Information\tPlugins".

GOBU Tree API
In bio301.goutil.gobu.GobuTreeUtility, several useful tree functions are provided. For detailed usage, please refer corresponding Java Documents. Examples:
top

Property String Handler

Property String Handler mechanism is designed for memory saving. For example, node names of LOC P-nodes (P-nodes representing user-defined LOC data type) are stored as Strings in memory. Observe that these node names are strings like "LOC:(11562763,12119228)@chr13@Mouse", we found that the starting point number and the ending point number can be saved as two int. We also noticed that sub-strings like "chr13" and "Mouse" are highly repetitive in all these node names, and we can just replace them by some Object references. By so doing, some memories are saved from recording P-node names.

Property String Handler related classes are collected in bio301.goutil.gobu.property package. Existing handler classes are collected in bio301.goutil.gobu.properties package. To write your own property string handler, you need to implement interface PropertyStringHandler. After compiling your handler class and put it into a .jar file, you just need to put the .jar file into the properties sub-folder of your GOBU folder for enabling your handler. Enabled handlers will be listed in the sub-tree rooted at "Configuration\tSystem Information\tProperty String Handlers" in Configuration Plugin.

Existing Property String Handlers
<ItalicString> means a variable.
  1. LocProperty
  2. ConfidenceProperty
top

PowerPoint Files

Here are some PowerPoint files for GOBU plugin programming, check out them if you are interested:
  1. GO Browsing Utility Plugin design - part 1
  2. GO Browsing Utility Plugin design - part 2
  3. GO Browsing Utility Plugin design - part 3