CySession.xml is the file to save current states of Cytoscape session. The following information will be stored in the XML document:
- List of networks opened in current session.
- States of Cytopanels 1~3.
Network Tree structure (shown in Network Panel in CytoPanel 1).
- Session ID
- Annotation (node/memo) for the session
- Selected/Hidden nodes and edges
- Plugin state (This topic should be dicussed with plugin writers)
Plugin State
7 is more complicated than others. First of all, we need to create new signals called "SESSION_SAVE" and "SESSION_LOAD" to tell plugins that session save/load command is executed. To simplify this process, we may need a standard for plugin state saving mechanism. One possible solution is:
- Create a schema for each plugin to describe its state.
- Use JAXB to create Java code to access plugin states in an XML file.
- Session Saving class copies state/data xml files for each plugins, and zip them into .cys file.
In any case, plugin writers are responsible to create readers/writers for their plugin state/data files. One standard they must follow is make method to catch signal generated by save/load session classes.