## page was renamed from Cytoscape_3.0/EventHandling/PlannedCoreEventsIn3.0 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?} * Removed{Node, Edge, CyRow, CyColumn?} * Added{Node, Edge, 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} * ColumnCreated * ColumnDeleted * RowSet * RowDeleted == View Model Events == (again, for both Networks and CyDataTables) Since instead of seperate NodeView, EdgeView, etc. classes, we use a single, generic View 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) * ViewCreated, AboutToDestroy, ViewDestroyed * 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) * ObjectSelected * ShowObjectOperations (right-click) * AddObjectToSelection * SelectRegion * 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: * BeginEdge (control-left-click on a Node in Editor (or command-click on Mac platform) * EndEdge (left-click while in Edge construction 'mode'. Finishes edge if clicked on Node, Abort edge if clicked on empty space) * 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?