Java GUI for OpenBiomind - GSOC 2008

From OpenCog

Basic Details


Many biologists using microarrayers and other tools are command-line-phobic. A simple graphical user interface could significantly improve OpenBiomind's usability and lower the barrier to entry. OpenBiomind-GUI tries to provide a graphical interface to execute the tasks provided by OpenBiomind. It provides wizards for all the tasks provided by OpenBiomind. In addition, it also provides wizards that chain multiple tasks together so that they can be executed together. The project home is at

(This project is based on the OpenBiomind Java GUI idea suggested in OpenCog list of ideas at Ideas#Java_GUI.)



About OpenBiomind

List of Suggestions

It looks like the data output from OpenBioMind is in tabbed format suitable for loading into a spreadsheet ( It might also be an idea to have the ability to output as XML then use a style sheet to display the results in a browser.

My original (and very simplified) idea was to roughly have one screen for each command, with fields, buttons and other GUI widgets for setting up parameters, input data, etc. Those screens could form a wizard-like sequence following the graph of possible inter-relationships of OpenBiomind commands with the input of one feeding the output of other. Anyway, I'll wait for you to get a feeling of how the system currently works in CLI, and if you have any new ideas for the GUI structure I'll be ready to hear them.

Work Log

Community Bonding Period

Week of May 12 (2008, May 12 - May 18)

Week of May 19 (2008, May 19 - May 25)

Development Period

Week of May 26 (2008, May 26 - Jun 1)

Week of Jun 2 (2008, Jun 2 - Jun 8)

  • Working on executing a command in a straight-forward fashion
  • Added standard Menu and made views
  • Added preference page

Week of Jun 9 (2008, Jun 9 - Jun 15)

  • Started using Eclipse 3.4 RCP
  • Updated the menubar and toolbar
  • Updated default views
  • Added Preference Page
    • Updated checks for Preference pages
  • Added basic Wizard page
    • Added Wizard page for EnhanceDataset command
      • Updated the Wizard page for EnhanceDataset command with proper error validation
  • Created stub for data objects
  • Externalized the strings
  • Added placeholders for icons

Week of Jun 16 (2008, Jun 16 - Jun 22)

  • Added progress monitor in the wizard
  • Added shared status line
  • Disabled the optional arguments composite of EnhanceDatasetWizardPage
    • Waiting for the fix in OpenBiomind to re-enable them

Week of Jun 23 (2008, Jun 23 - Jun 29)

  • Added standard console
  • Added product information
  • Update wizard to show different colors when there erroneous data is entered
    • Updated to use decorated field while validation
  • Updated to read colors using standard Color constants
  • Added a check box for using original dataset directory as enhanced datatset directory
  • Added method to extract directory name from a given pathname
  • Added method to add blank component label in wizards
  • Added DefaultTextEditor that opens at the end of command execution
    • Replaced the custom default text editor with standard default text editor provided by eclipse
  • Added actions for Save, Close, Close All, and Revert
  • Started using decorated field while validation.
  • Updated the Enhance Dataset Wizard to show the path of the final enhanced dataset file
  • Added WidgetHelper for creating common widgets
  • Refactored Constants and divided into various classes
  • Added place holders for all the tasks
  • Created icons for all the tasks, splash, and about dialog

Week of Jun 30 (2008, Jun 30 - July 6)

  • Replaced (dummy) FileList view with (functional) Executed Tasks view
  • Updated the initial layout for the perspective
  • Added optional field to specify the execution name
  • Refactored the messages into multiple classes and properties files
  • Reorganized the EnhanceDatasetWizard
    • Updated the grid data and grid layout properties for fix issues related to resizing
  • Added a helper method to get a bold font for any control
  • Added Dataset Transformer Wizard
    • Added capability to run Dataset Transformer task
  • Updated the TaskDataProject, TaskDataFolder, and TaskDataFile
  • Updated the externalized strings
  • Added menu items to visit OpenBiomind homepage and OpenBiomind-GUI homepage

Week of July 7 (2008, July 7 - July 13)

  • Updated to use Combo-box (drop-down) in Dataset Transformer Wizard page in place of radio button
  • Updated to link the train/test files rather than the folder for Dataset Transformer project
  • Stopped displaying hover text for information decoration automatically on focus
  • Implemented Meta Task Wizard
  • Fixed the problem of workspace not being saved at the end while quitting the workbench, due to which an exception was coming at the start of workbench
  • Added the capability to Open and Edit the file from the File menu
  • Added following File menu commands: Open File, Print, Restart
  • Added Edit menu commands: Undo, Redo, Cut, Copy, Paste, Delete, Select All, Find/Replace
  • Added createDefaultText() method in AbstractTaskWizardPage
  • Implemented Utility Computer Wizard and added UtilityComputerTaskData

Week of July 14 (2008, July 14 - July 20)

  • Refactored the Enums outside the classes
  • Added MetaTaskShuffling option for Meta Task wizard
  • Added editable combo box for targetCategory argument, with the value CASE in the list
  • Changed all wizards from 2 columns to 3 columns for better presentation
  • Replaced FocusListener with setShowOnlyOnFocus for info decorations
  • Implemented Clustering Transformer Wizard
  • Implemented Clusterize Wizard
  • Added functionality to store execution.log in the project that contains executed command and its output
  • Added functionality not to create project in case of error and show error
  • Implemented ViewClusters Wizard
  • Added ImageEditor to display an image
  • Added functionality to set Xmx option before executing a task
  • Updated to open all files in default editor rather than in the text editor

Week of July 21 (2008, July 21 - July 27)

  • Implemented GraphFeatures Wizard
  • Added functionality to specify default editor ID in TaskDataFile to initially open the file using that editor
  • Added a preference to set Graphviz dot utility
  • Updated the preference error checking
  • Updated the GraphFeatures wizard to automatically generated a png image from the generated dot file, if the Graphviz dot utility is set
  • Refactored the task execution mechanism
  • Refactored the usage of arguments by introducing the classes Argument, PairedArgument, and ConstantArguments
  • Removed the use of CommonMessages
  • Refactored the classes into a better hierarchy

Week of July 28 (2008, July 28 - Aug 3)

  • Modified the internationalization code
  • Modified the code to place the cursor at the end of the string when a new file or directory is selected using the button in TextButtonComposite
  • Enabled the image editor to open external files
  • Implemented the CompletePipeline task
  • Refactored the way projects are created
    • Now, input files and output files are created in two separated folders
  • Refactored the handling of combo
  • Changed the name of ExecutedTasks view to Results
  • Added required descriptions in the plungin.xml file
  • Added icon for perspective
    • Removed unused icons
  • Updated to support multiple operating systems

Week of Aug 4 (2008, Aug 4 - Aug 10)

  • Refactored the wizard and task data to allow the execution of multiple tasks at the end of a single wizard
  • Updated the execution log to include a TAB space before the task output
  • Added multi page wizard for executing Utility Computer starting from Meta Task
  • Refactored the way the data is prepared before execution of task
  • Added new constants for wizard titles
  • Added setFocus method in TextButtonComposite
  • Refactored the GraphvizHelper to store the output image path
  • Added the following wizard options:
    • Dataset Transformer > Meta Task
    • Dataset Transformer > Utility Computer
    • Dataset Transformer > Meta Task > Utility Computer
    • Dataset Transformer > Utility Computer > Graph Features
    • Dataset Transformer > Meta Task > Utility Computer > Graph Features
    • Meta Task > Utility Computer
    • Meta Task > Utility Computer > Graph Features
    • Utility Computer > Graph Features
    • Clustering Transformer > Clusterize
    • Clustering Transformer > View Clusters
    • Clustering Transformer > Graph Features
    • Clustering Transformer > Clusterize > View Clusters
    • Clusterize > View Clusters
  • Removed the use original dataset directory option from the Enhance Dataset wizard
  • Externalized the plugin properties
  • Updated the manifest
  • Updated the icons

Week of Aug 11 (2008, Aug 11 - Aug 17)

  • Fixed the issue related to Graphviz dot command
    • Now the file dialog will allow users to select files of the form "dot" or "dot.*"
  • Added GraphvizHelper.validateDotCommand() method to validate the Graphviz dot command
  • Fixed a issue in Utility.extractFileName() method related to files without extension
  • Updated validation in Preference dialog
    • Now, preferences are validated as soon as the page is visible
  • Updated the product file to call the executable openbiomind-gui rather than eclipse
  • Added methods TextButtonComposite.removeFocusListenerOnTextField() and TextButtonComposite.removeModifyListenerOnTextField()
    • Also added methods to find out the editable state of the text component
  • Updated the multi-page wizards such that the fields are not non-editable rather than disabled