## page was renamed from RFCTemplate ## This template may be useful for creating new RFC's (Request for comments) ## This is a wiki comment - leave these in so that people can see them when editing the page ##Fill in RFC Name, primary authors and editors, and the status of the RFC ##Example Status states include: Work in Progress, Open for Comment, Closed || '''RFC Name''' : TaskMonitorRefactoring || '''Editor(s)''': ScooterMorris || '''Status''': Work in Progress || <> == Proposal == 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 == == References == == 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. == Comments == 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? ##If you want to create a separate subpage for Comments, then provide this link: ["/Comment"] === 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.'''