Differences between revisions 45 and 46
Revision 45 as of 2005-12-12 19:21:51
Size: 9097
Editor: scsiapat1
Comment:
Revision 46 as of 2006-06-26 05:40:40
Size: 8996
Editor: cosiapat1
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
Cytoscape has a set of editors that enable the user to build and modify networks interactively by dragging and dropping nodes and edges from a palette onto the main network view window. The palette contains a set of shapes (for nodes) and arrows (for edges). The shapes on the palette are defined by the current Visual Style, with Node Shape and Node Color mapping into the shape and color of a node, and Edge Target Arrow mapping into the target arrow of an edge.
Line 3: Line 4:
Cytoscape version 2.2 has a set of editors that enable the user to build and modify networks interactively by dragging and dropping nodes and edges from a palette onto the main network view window. The palette contains a set of shapes (for nodes) and arrows (for edges). The shapes on the palette are defined by the current Visual Style, with Node Shape and Node Color mapping into the shape and color of a node, and Edge Target Arrow mapping into the target arrow of an edge. The set of classes for the Cytoscape''''''Editor is are extensible by both developers and end users. End users can extend the editor by defining a new visual style in which Node Shape, Node Color, and Edge Target Arrow are associated with a controlling attribute, defaulting to NODE_TYPE and EDGE_TYPE, respectively. Developers can extend the editor framework by plugging in semantic callback methods that are invoked when editor operations, such as adding and deleting Nodes and Edges, are performed. Such semantic methods might include
Line 5: Line 6:
In Cytoscape version 2.3, the set of classes for the Cytoscape''''''Editor is will be extensible by both developers and end users. End users will be able to extend the editor by defining a new visual style in which Node Shape, Node Color, and Edge Target Arrow are associated with a controlling attribute, defaulting to NODE_TYPE and EDGE_TYPE, respectively. Developers will be able to extend the editor framework by plugging in semantic callback methods that are invoked when editor operations, such as adding and deleting Nodes and Edges, are performed. Such semantic methods might include
* restricting the kinds of Nodes that can be connected by a particular type of edge
* prompting the user, when adding a Node, to select an entity from a database
 * *
Line 12: Line 10:

||'''Package'''||'''Class or Interface'''||'''Description'''||
||cytoscape.editor|| ||top-level classes and interfaces||
|| ||C
ytoscape''''''Editor||interface for common methods that all editors must implement, such as adding/deleting nodes and edges, handling palette controls||
||  ||Cytoscape''''''Editor''''''Factory||Interface used for building new instances of editors. Before an editor can be built, it first needs to be registered with the Cytoscape''''''Editor''''''Manager||
||  ||Cytoscape''''''Editor''''''Manager||Static routines for managing editors, views, event handlers, global variables||
||  ||Cytoscape''''''Editor''''''Plugin||encapsulating plugin class that builds the initial set of editor (''may be separated out into a separate jar'')||
||  ||Graphical''''''Entity||Interface for defining draggable/droppable visual components. Graphical entities are associated with semantic objects, i.e. nodes and edges, that are created when the graphical entities are dropped onto the canvas.||
||  ||Invalid''''''Editor''''''Exception||Creates a new exception when there is no registered editor corresponding to the editor type suppied to the Cytoscape''''''Editor''''''Factory.get''''''Editor() method||
||cytoscape.editor.editors|| ||classes for editors provided with Cytoscape 2.2||
||  ||Basic''''''Cytoscape''''''Editor||provides base-level functionality present in all editors, such as adding and deleting nodes and edges, building palettes||
|| ||Default''''''Cytoscape''''''Editor||An example editor that extends the Basic'''''''Cytoscape''''''Editor and contains one default node and one default edge on its palette. This editor definesthe nodes and shapes on its palette using the current Visual Style||
|| ||Simple''''''Bio''''''Molecule''''''Editor||an example editor that defines the nodes and shapes on its palette using the Simple''''''Bio''''''Molecule Visual Style, which contains a simple set of colored shapes that represent biological entities||
|| ||Map''''''Bio''''''Molecule''''''To''''''Visual''''''Style||Creates the Simple''''''Bio''''''Molecule Visual Style||
||  ||Simple''''''Bio''''''PAX_Editor||an example editor that defines the nodes and shapes on its palette using a Visual Style that maps node shapes and colors according to the value of the "BIOPAX_NODE_TYPE" attribute and maps edge target arrows according to the value of the "BIOPAX_EDGE_TYPE" attribute. (''Note that, this is not a fully functional BioPAX editor'')||
||cytoscape.editor.event|| ||event handlers used by the different editors||
||  ||Network''''''Edit''''''Event''''''Adapter||contains stub methods for handling mouse actions, drag/drop actions, attribute value change events||
||  ||Basic''''''Network''''''Edit''''''Event''''''Handler||extends Network''''''Edit''''''Event''''''Adapter, implementing methods for handling mouse actions, drag/drop actions, attribute value change events, as well as three core methods for creating Nodes and beginning and finishing Edges||
||  ||Palette''''''Network''''''Edit''''''Event''''''Handler||extends the Basic''''''Network''''''Edit''''''Event''''''Handler with the capability to drag and drop shapes from a palette onto the canvas||
||  ||Bio''''''PAX''''''Network''''''Edit''''''Event''''''Handler||extends the Palette''''''Network''''''Edit''''''Event''''''Handler with methods for setting Bio''''''PAX-related attributes on Nodes and Edges||
||cytoscape.editor.impl|| ||implementation and utility classes||
|| ||Basic''''''Cyto''''''Shape''''''Entity||base class for draggable/droppable shapes on the palette||
|| ||Cyto''''''Shape''''''Icon||Specialized Icon for Cytoscape editor palette entry.  Renders icon based upon input shape, size, color, as defined by the Visual Style that is used by the current editor.||
||  ||Shape''''''Palette||methods for building, displaying the palette, adding shapes to the palette, rendering shapes, and handling drag/drop events. (''Should this be an Interface with extending classes?'')||
||  ||Cytoscape''''''Editor''''''Factory''''''Impl||implementation of Cytoscape''''''Editor''''''Factory Interface, builds new instances of editors and network edit event adapters||
||  ||Cytoscape''''''Editor''''''Manager''''''Support||provides non-static methods needed by the CytoscapeEditorManager, such as listeners for Swing property changes, graph perspective changes, and visual style changes||
||  ||String''''''Transfer''''''Handler||base class for the Transfer''''''Handler used by the Shape''''''Palette for drag operations||
||cytoscape.editor.actions|| ||actions associated with buttons and other UI components (''some of this has been deferred to Cytoscape version 2.3'')||
||  ||Set''''''Editor''''''Action||sets up the selected editor from the File -> SetEditor menu. Disables controls for any previously assigned editors. Initializes controls for the new editor.  Assigns editor to the current network view||
||  ||New''''''Network''''''Action||creates a new network and associates an editor with it||
||  ||Restore''''''Action||Restores any Nodes and/or Edges that have been ''hidden'' (removed) from the current network||
||  ||Delete''''''Action||context menu item for deleting selected Nodes and Edges (''not used in Cytoscape version 2.2'')||
||  ||Edge''''''Action||button action for adding an Edge(''not used in Cytoscape version 2.2'')||
||  ||Node''''''Action||button action for adding a Node (''not used in Cytoscape version 2.2'')||
||  ||Undo''''''Action||action for undoing an edit (''not used in Cytoscape version 2.2'')||
||  ||Redo''''''Action||action for redoing an edit (''not used in Cytoscape version 2.2'')||
||'''Package''' ||'''Class or Interface''' ||'''Description''' ||
||cytoscape.editor || ||top-level classes and interfaces ||
|| ||
Cytoscape''''''Editor ||interface for common methods that all editors must implement, such as adding/deleting nodes and edges, handling palette controls ||
|| ||Cytoscape''''''Editor''''''Factory ||Interface used for building new instances of editors. Before an editor can be built, it first needs to be registered with the Cytoscape''''''Editor''''''Manager ||
|| ||Cytoscape''''''Editor''''''Manager ||Static routines for managing editors, views, event handlers, global variables ||
|| ||Cytoscape''''''Editor''''''Plugin ||encapsulating plugin class that builds the initial set of editor (''may be separated out into a separate jar'') ||
|| ||Graphical''''''Entity ||Interface for defining draggable/droppable visual components. Graphical entities are associated with semantic objects, i.e. nodes and edges, that are created when the graphical entities are dropped onto the canvas. ||
|| ||Invalid''''''Editor''''''Exception ||Creates a new exception when there is no registered editor corresponding to the editor type suppied to the Cytoscape''''''Editor''''''Factory.get''''''Editor() method ||
||cytoscape.editor.editors || ||classes for editors provided with Cytoscape 2.2 ||
|| ||Basic''''''Cytoscape''''''Editor ||provides base-level functionality present in all editors, such as adding and deleting nodes and edges, building palettes ||
|| ||Default''''''Cytoscape''''''Editor ||An example editor that extends the Basic'''''''Cytoscape''''''Editor and contains one default node and one default edge on its palette. This editor definesthe nodes and shapes on its palette using the current Visual Style ||
|| ||Simple''''''Bio''''''Molecule''''''Editor ||an example editor that defines the nodes and shapes on its palette using the Simple''''''Bio''''''Molecule Visual Style, which contains a simple set of colored shapes that represent biological entities ||
|| ||Map''''''Bio''''''Molecule''''''To''''''Visual''''''Style ||Creates the Simple''''''Bio''''''Molecule Visual Style ||
|| ||Simple''''''Bio''''''PAX_Editor ||an example editor that defines the nodes and shapes on its palette using a Visual Style that maps node shapes and colors according to the value of the "BIOPAX_NODE_TYPE" attribute and maps edge target arrows according to the value of the "BIOPAX_EDGE_TYPE" attribute. (''Note that, this is not a fully functional BioPAX editor'') ||
||cytoscape.editor.event || ||event handlers used by the different editors ||
|| ||Network''''''Edit''''''Event''''''Adapter ||contains stub methods for handling mouse actions, drag/drop actions, attribute value change events ||
|| ||Basic''''''Network''''''Edit''''''Event''''''Handler ||extends Network''''''Edit''''''Event''''''Adapter, implementing methods for handling mouse actions, drag/drop actions, attribute value change events, as well as three core methods for creating Nodes and beginning and finishing Edges ||
|| ||Palette''''''Network''''''Edit''''''Event''''''Handler ||extends the Basic''''''Network''''''Edit''''''Event''''''Handler with the capability to drag and drop shapes from a palette onto the canvas ||
|| ||Bio''''''PAX''''''Network''''''Edit''''''Event''''''Handler ||extends the Palette''''''Network''''''Edit''''''Event''''''Handler with methods for setting Bio''''''PAX-related attributes on Nodes and Edges ||
||cytoscape.editor.impl || ||implementation and utility classes ||
|| ||Basic''''''Cyto''''''Shape''''''Entity ||base class for draggable/droppable shapes on the palette ||
|| ||Cyto''''''Shape''''''Icon ||Specialized Icon for Cytoscape editor palette entry. Renders icon based upon input shape, size, color, as defined by the Visual Style that is used by the current editor. ||
|| ||Shape''''''Palette ||methods for building, displaying the palette, adding shapes to the palette, rendering shapes, and handling drag/drop events. (''Should this be an Interface with extending classes?'') ||
|| ||Cytoscape''''''Editor''''''Factory''''''Impl ||implementation of Cytoscape''''''Editor''''''Factory Interface, builds new instances of editors and network edit event adapters ||
|| ||Cytoscape''''''Editor''''''Manager''''''Support ||provides non-static methods needed by the CytoscapeEditorManager, such as listeners for Swing property changes, graph perspective changes, and visual style changes ||
|| ||String''''''Transfer''''''Handler ||base class for the Transfer''''''Handler used by the Shape''''''Palette for drag operations ||
||cytoscape.editor.actions || ||actions associated with buttons and other UI components (''some of this has been deferred to Cytoscape version 2.3'') ||
|| ||Set''''''Editor''''''Action ||sets up the selected editor from the File -> SetEditor menu. Disables controls for any previously assigned editors. Initializes controls for the new editor. Assigns editor to the current network view ||
|| ||New''''''Network''''''Action ||creates a new network and associates an editor with it ||
|| ||Restore''''''Action ||Restores any Nodes and/or Edges that have been ''hidden'' (removed) from the current network ||
|| ||Delete''''''Action ||context menu item for deleting selected Nodes and Edges (''not used in Cytoscape version 2.2'') ||
|| ||Edge''''''Action ||button action for adding an Edge(''not used in Cytoscape version 2.2'') ||
|| ||Node''''''Action ||button action for adding a Node (''not used in Cytoscape version 2.2'') ||
|| ||Undo''''''Action ||action for undoing an edit (''not used in Cytoscape version 2.2'') ||
|| ||Redo''''''Action ||action for redoing an edit (''not used in Cytoscape version 2.2'') ||
Line 50: Line 47:
'''Add a comment about these ideas:  ["/Editor_Framework_Comment"]''' '''Add a comment about these ideas: [:CytoscapeEditorFramework/Editor Framework Comment:/Editor Framework Comment]'''
Line 54: Line 52:
 1. How much can be made user-extensible?  It would be straightforward to enable the user to define a new palette by building a visual style for it.  Could event handling and semantics be made user-extensible as well?  Should it be?  
 2. Where best to put hooks for semantic processing?  Should they be at the point of adding a node and starting and finishing an edge?  Should it be more fine-grained, e.g. place a hook in all events that are responded to, such as mousePressed()?
 3. How best to make decisions based upon results of semantic processing?  Should the semantic processing callback method return a boolean result, a result of false resulting in aborting the node or edge addition?  Alternatively, should it return an object that contains attributes and other information for the Node or Edge to be added?  Would that be required in order to do things like add from databases?
 4. How to make accelerators and other functionality more accessible/apparent to the end user?  Can't expect that the user will read the Help docs; it should be a ''walk up and use'' functionality.
 5. How to handle '''undo''' functionality, in particular how to interleave it with undo facilities in other Cytoscape components and plugins?  How to make '''undo''' operate on a per view basis, while also handling undo/redo for more ''global'' edits, such as those in Attribute''''''Browser?
 6. What information gets output when the network is saved?  Does there need to be a Bio''''''PAX exporter to go with a Bio''''''PAX editor?
 7. Use of Piccolo for rendering and event handling.  If Piccolo goes away for Cytoscape 2.3, then these all need to be re-implemented.
 1. How much can be made user-extensible? It would be straightforward to enable the user to define a new palette by building a visual style for it. Could event handling and semantics be made user-extensible as well? Should it be?
 1. Where best to put hooks for semantic processing? Should they be at the point of adding a node and starting and finishing an edge? Should it be more fine-grained, e.g. place a hook in all events that are responded to, such as mousePressed()?
 1. How best to make decisions based upon results of semantic processing? Should the semantic processing callback method return a boolean result, a result of false resulting in aborting the node or edge addition? Alternatively, should it return an object that contains attributes and other information for the Node or Edge to be added? Would that be required in order to do things like add from databases?
 1. How to make accelerators and other functionality more accessible/apparent to the end user? Can't expect that the user will read the Help docs; it should be a ''walk up and use'' functionality.
 1. How to handle '''undo''' functionality, in particular how to interleave it with undo facilities in other Cytoscape components and plugins? How to make '''undo''' operate on a per view basis, while also handling undo/redo for more ''global'' edits, such as those in Attribute''''''Browser?
 1. What information gets output when the network is saved? Does there need to be a Bio''''''PAX exporter to go with a Bio''''''PAX editor?
 1. Use of Piccolo for rendering and event handling. If Piccolo goes away for Cytoscape 2.3, then these all need to be re-implemented.
'''Add a comment about these issues: [:CytoscapeEditorFramework/Editor Framework Issues Comment:/Editor Framework Issues Comment]'''
Line 62: Line 61:
'''Add a comment about these issues: ["/Editor_Framework_Issues_Comment"]'''
Line 64: Line 62:

Extensible Framework for Cytoscape Editor

Cytoscape has a set of editors that enable the user to build and modify networks interactively by dragging and dropping nodes and edges from a palette onto the main network view window. The palette contains a set of shapes (for nodes) and arrows (for edges). The shapes on the palette are defined by the current Visual Style, with Node Shape and Node Color mapping into the shape and color of a node, and Edge Target Arrow mapping into the target arrow of an edge.

The set of classes for the CytoscapeEditor is are extensible by both developers and end users. End users can extend the editor by defining a new visual style in which Node Shape, Node Color, and Edge Target Arrow are associated with a controlling attribute, defaulting to NODE_TYPE and EDGE_TYPE, respectively. Developers can extend the editor framework by plugging in semantic callback methods that are invoked when editor operations, such as adding and deleting Nodes and Edges, are performed. Such semantic methods might include

  • *

Developers may also provide new editors, palette shapes, and event handlers by extending the classes in the editor framework.

The packages, interfaces and classes that exist in the CytoscapeEditor in Cytoscape version 2.2. are:

Package

Class or Interface

Description

cytoscape.editor

top-level classes and interfaces

CytoscapeEditor

interface for common methods that all editors must implement, such as adding/deleting nodes and edges, handling palette controls

CytoscapeEditorFactory

Interface used for building new instances of editors. Before an editor can be built, it first needs to be registered with the CytoscapeEditorManager

CytoscapeEditorManager

Static routines for managing editors, views, event handlers, global variables

CytoscapeEditorPlugin

encapsulating plugin class that builds the initial set of editor (may be separated out into a separate jar)

GraphicalEntity

Interface for defining draggable/droppable visual components. Graphical entities are associated with semantic objects, i.e. nodes and edges, that are created when the graphical entities are dropped onto the canvas.

InvalidEditorException

Creates a new exception when there is no registered editor corresponding to the editor type suppied to the CytoscapeEditorFactory.getEditor() method

cytoscape.editor.editors

classes for editors provided with Cytoscape 2.2

BasicCytoscapeEditor

provides base-level functionality present in all editors, such as adding and deleting nodes and edges, building palettes

DefaultCytoscapeEditor

An example editor that extends the Basic'CytoscapeEditor and contains one default node and one default edge on its palette. This editor definesthe nodes and shapes on its palette using the current Visual Style

SimpleBioMoleculeEditor

an example editor that defines the nodes and shapes on its palette using the SimpleBioMolecule Visual Style, which contains a simple set of colored shapes that represent biological entities

MapBioMoleculeToVisualStyle

Creates the SimpleBioMolecule Visual Style

SimpleBioPAX_Editor

an example editor that defines the nodes and shapes on its palette using a Visual Style that maps node shapes and colors according to the value of the "BIOPAX_NODE_TYPE" attribute and maps edge target arrows according to the value of the "BIOPAX_EDGE_TYPE" attribute. (Note that, this is not a fully functional BioPAX editor)

cytoscape.editor.event

event handlers used by the different editors

NetworkEditEventAdapter

contains stub methods for handling mouse actions, drag/drop actions, attribute value change events

BasicNetworkEditEventHandler

extends NetworkEditEventAdapter, implementing methods for handling mouse actions, drag/drop actions, attribute value change events, as well as three core methods for creating Nodes and beginning and finishing Edges

PaletteNetworkEditEventHandler

extends the BasicNetworkEditEventHandler with the capability to drag and drop shapes from a palette onto the canvas

BioPAXNetworkEditEventHandler

extends the PaletteNetworkEditEventHandler with methods for setting BioPAX-related attributes on Nodes and Edges

cytoscape.editor.impl

implementation and utility classes

BasicCytoShapeEntity

base class for draggable/droppable shapes on the palette

CytoShapeIcon

Specialized Icon for Cytoscape editor palette entry. Renders icon based upon input shape, size, color, as defined by the Visual Style that is used by the current editor.

ShapePalette

methods for building, displaying the palette, adding shapes to the palette, rendering shapes, and handling drag/drop events. (Should this be an Interface with extending classes?)

CytoscapeEditorFactoryImpl

implementation of CytoscapeEditorFactory Interface, builds new instances of editors and network edit event adapters

CytoscapeEditorManagerSupport

provides non-static methods needed by the CytoscapeEditorManager, such as listeners for Swing property changes, graph perspective changes, and visual style changes

StringTransferHandler

base class for the TransferHandler used by the ShapePalette for drag operations

cytoscape.editor.actions

actions associated with buttons and other UI components (some of this has been deferred to Cytoscape version 2.3)

SetEditorAction

sets up the selected editor from the File -> SetEditor menu. Disables controls for any previously assigned editors. Initializes controls for the new editor. Assigns editor to the current network view

NewNetworkAction

creates a new network and associates an editor with it

RestoreAction

Restores any Nodes and/or Edges that have been hidden (removed) from the current network

DeleteAction

context menu item for deleting selected Nodes and Edges (not used in Cytoscape version 2.2)

EdgeAction

button action for adding an Edge(not used in Cytoscape version 2.2)

NodeAction

button action for adding a Node (not used in Cytoscape version 2.2)

UndoAction

action for undoing an edit (not used in Cytoscape version 2.2)

RedoAction

action for redoing an edit (not used in Cytoscape version 2.2)

Add a comment about these ideas: [:CytoscapeEditorFramework/Editor Framework Comment:/Editor Framework Comment]


Open Issues

  1. How much can be made user-extensible? It would be straightforward to enable the user to define a new palette by building a visual style for it. Could event handling and semantics be made user-extensible as well? Should it be?
  2. Where best to put hooks for semantic processing? Should they be at the point of adding a node and starting and finishing an edge? Should it be more fine-grained, e.g. place a hook in all events that are responded to, such as mousePressed()?
  3. How best to make decisions based upon results of semantic processing? Should the semantic processing callback method return a boolean result, a result of false resulting in aborting the node or edge addition? Alternatively, should it return an object that contains attributes and other information for the Node or Edge to be added? Would that be required in order to do things like add from databases?
  4. How to make accelerators and other functionality more accessible/apparent to the end user? Can't expect that the user will read the Help docs; it should be a walk up and use functionality.

  5. How to handle undo functionality, in particular how to interleave it with undo facilities in other Cytoscape components and plugins? How to make undo operate on a per view basis, while also handling undo/redo for more global edits, such as those in AttributeBrowser?

  6. What information gets output when the network is saved? Does there need to be a BioPAX exporter to go with a BioPAX editor?

  7. Use of Piccolo for rendering and event handling. If Piccolo goes away for Cytoscape 2.3, then these all need to be re-implemented.

Add a comment about these issues: [:CytoscapeEditorFramework/Editor Framework Issues Comment:/Editor Framework Issues Comment]


More to follow...

CytoscapeEditorFramework (last edited 2009-02-12 01:03:56 by localhost)

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