RFC Name : TaskMonitorRefactoring

Editor(s): ScooterMorris

Status: Work in Progress

<<TableOfContents: execution failed [Argument "maxdepth" must be an integer value, not "[2]"] (see also the log)>>


The current TaskMonitor mechanism has a number of flaws and challenges. First, task monitors are managed by passing task monitor objects as arguments to various methods. This can be onerous, since it means that all routines which call routines that might need a task monitor must themselves either accept a task monitor as an argument, or create a task monitor. Second, as Cytoscape processing becomes more complex, a single progress bar is no longer sufficient. For example, BioPAX loading has several steps, and each step updates the progress bar. This provides the user with information about how long the current step might take, but gives them no feedback about how many steps there are.

Open Issues

Backward Compatibility

Expected growth and plan for growth


Implementation Plan

One proposal would be to:

  1. Enhance the current task monitor to provide two progress bars: an overall progress, and a progress within this step.
  2. Provide a singleton class that represents the "current" task monitor. Processing routines could use this to determine if a task monitor is available, and update it if it is. This would allow us to avoid having to pass task monitor objects to all routines.


MikeSmoot - 8/20/2007

Perhaps the TaskManager can keep track of Tasks that are associated with threads and then provide a getCurrentTask() method that returns the task associated with Thread.getCurrentThread(). We'd then have to add a getTaskMonitor() method to Task. Then, if a TaskMonitored was desired, code could do something like TaskManger.getCurrentTask().getTaskMonitor() and set the appropriate values instead of passing TaskMonitor objects to and fro. Thoughts?

How to Comment

Edit the page and add your comments under the provided header. By adding your ideas to the Wiki directly, we can more easily organize everyone's ideas, and keep clear records. Be sure to include today's date and your name for each comment. Try to keep your comments as concrete and constructive as possible. For example, if you find a part of the RFC makes no sense, please say so, but don't stop there. Take the extra step and propose alternatives.

TaskMonitorRefactoring (last edited 2009-02-12 01:03:19 by localhost)

Funding for Cytoscape is provided by a federal grant from the U.S. National Institute of General Medical Sciences (NIGMS) of the Na tional Institutes of Health (NIH) under award number GM070743-01. Corporate funding is provided through a contract from Unilever PLC.

MoinMoin Appliance - Powered by TurnKey Linux