RFC Name : Event Handling

Editor(s): BrianTurner

Date: Nov 21 2008

Status: Draft

TableOfContents([2])

Proposal

How the production and consumption of events should be handled; in particular how plugins interact with each other, the model(s), view(s), etc.

Background

Concerns have been raised on several fronts regarding event handling that cannot be addressed by simple (existing) Java patterns, largely because the application is not monolithic but is made up of independently moving parts.

Use Cases

This is less a listing of use cases as it is issues and concerns; an outline of what any solution should attempt to address:

  1. Batching: The case where many events (like the creation of many nodes) could possibly be grouped together as opposed to handling each one discretely.

  2. Transactions: Plugins should leave the model in a valid state, and conflicting changes by different plugins prevented. However not all plugins are about editing. Some plugins maybe passive, providing a view like an outline, in which case they should not have to concern themselves with the added complexities implied by participating in a transaction.

  3. Mode: Event handling needs to take into account modes of running like headless.

Implementation Plan

Outline and describe the process and major issues related to implementing this proposal. Illustrate your plan when possible. Try this free online tool for making diagrams -> [http://www.best4c.com/editor/NetMapApplication.jsp Best4c] (draw; save; then insert hyperlink into this page)

Project Management

Project Timeline

Provide a timeline for implementation. Insert a graphic if you can. Try this free online tool for making project timelines -> [http://www.helpuplan.com/index.asp Help-u-Plan] (create a new chart; modify; right-click to save gif; then attach to this page)

Tasks and Milestones

Outline the major milestones and tasks involved in implementation.

  1. Milestone 1: …

    1. Task 1: ...
    2. Task 2: ...
  2. Milestone 2: …

Project Dependencies

Outline and projects that depend on this project, link to relevant RFC's and note at what point dependent projects could be started.

Link to other related RFCs

Issues

List any issues, conflict, or dependencies raised by this proposal

Comments

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.

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