This is the list of events that we came up with during the second mini-retreat.
All events we plan to include as part of the 3.0 API for the layers mentioned should be included here.
(Note that events might be 'pluralized', but that decision has not been made, and minor changes might be made, but there is a general consensus that this is the list of events we will have)
The stand-alone desktop cytosape 3.0 app will, of course have many more types of events. These are just the ones that are part of the core API
Model Events
AboutToRemove{Node, Edge, Network, CyDataTable, CyRow, CyColumn?}
Created{Network, Subnetwork, CyDataTable} (NOTE: While the model package actually never fires CreatedNetwork, it should be defined in the model package for easier documentation.)
AboutToDelete{Network,Subnetwork, CyDataTable}
Deleted{Network,Subnetwork, CyDataTable}
View Model Events
(again, for both Networks and CyDataTables)
Since instead of seperate NodeView, EdgeView, etc. classes, we use a single, generic View<T> class, the following events are generic as well, and apply for Node,Edge, and CyDataTable elements as well:
ViewChanged (with detailed description about which property (properties) changed)
SubsetCreated, SubsetChanged, SubsetDestroyed (AboutToDestroy ?)
VizMap Events
VisualStyleChanged, Created, Destroyed, AboutToDestroy, Switched (e.g., swapping the entire visual style, versus editing a visual style)
Presentation Events
NOTE: Many of these are not presentation events, per se. They should be thought of as user actions. For some, the suggested way that the UI will allow the user to trigger the event is also mentioned.
This set is both for Network presentations and CyDataTable presentations:
PresentationCreated, Destroy, AboutToDestroy
ObjectOpened (double left-click)
ShowObjectOperations (right-click)
OpenRegion (double-click on empty space)
ViewportChanged (include zoom, pan, rotate)
SpinGesture - e.g., two-finger trackpad rotate (how would this work for selections?)
- These are specific to Table presentations:
RowSelected, Column, Cell
- Specific to Editor:
- Other miscellaneous
AnchorPoint (control-left-click on an Edge to create an anchor for bending (or command-click on Mac)
- We could subclass Presentation to support implementation-specific methods:
DragObject (create info), ObjectDropped (with info)
- MIME types, Visual Style copying, Columns of etc
Which of these are handled by the Application and Presentation?