cytoscape.visual
Class CalculatorCatalog

java.lang.Object
  extended by cytoscape.visual.CalculatorCatalog

public class CalculatorCatalog
extends Object

Stores various types of Calculators from data attributes to an attribute of a specified type. Also keeps track of available mappings. Notifies interested classes of changes to the underlying datasets.


Field Summary
protected  ChangeEvent changeEvent
          Only one ChangeEvent is needed per catalog instance since the event's only state is the source property.
 
Constructor Summary
CalculatorCatalog()
           
CalculatorCatalog(Properties props)
           
 
Method Summary
 void addCalculator(Calculator dupe)
          Add any calculator to the catalog.
protected  void addCalculator(Calculator c, Map m)
           
 void addChangeListener(ChangeListener l, byte type)
          Add a ChangeListener to the catalog.
 void addEdgeArrowCalculator(EdgeArrowCalculator c)
           
 void addEdgeColorCalculator(EdgeColorCalculator c)
           
 void addEdgeFontFaceCalculator(EdgeFontFaceCalculator c)
           
 void addEdgeFontSizeCalculator(EdgeFontSizeCalculator c)
           
 void addEdgeLabelCalculator(EdgeLabelCalculator c)
           
 void addEdgeLineTypeCalculator(EdgeLineTypeCalculator c)
           
 void addEdgeToolTipCalculator(EdgeToolTipCalculator c)
           
 void addMapping(String name, Class m)
          Add a mapping to the database of available mappings.
 void addNodeColorCalculator(NodeColorCalculator c)
           
 void addNodeFontFaceCalculator(NodeFontFaceCalculator c)
           
 void addNodeFontSizeCalculator(NodeFontSizeCalculator c)
           
 void addNodeLabelCalculator(NodeLabelCalculator c)
           
 void addNodeLabelColorCalculator(NodeLabelColorCalculator c)
           
 void addNodeLineTypeCalculator(NodeLineTypeCalculator c)
           
 void addNodeShapeCalculator(NodeShapeCalculator c)
           
 void addNodeSizeCalculator(NodeSizeCalculator c)
           
 void addNodeToolTipCalculator(NodeToolTipCalculator c)
           
 void addVisualStyle(VisualStyle vs)
           
 String checkCalculatorName(String calcName, byte calcType)
          Checks whether a name for a calculator is valid
 String checkEdgeArrowCalculatorName(String name)
           
 String checkEdgeColorCalculatorName(String name)
           
 String checkEdgeFontFaceCalculatorName(String name)
           
 String checkEdgeFontSizeCalculatorName(String name)
           
 String checkEdgeLabelCalculatorName(String name)
           
 String checkEdgeLineTypeCalculatorName(String name)
           
 String checkEdgeToolTipCalculatorName(String name)
           
 String checkMappingName(String name)
           
protected  String checkName(String name, Map m)
           
 String checkNodeColorCalculatorName(String name)
           
 String checkNodeFontFaceCalculatorName(String name)
           
 String checkNodeFontSizeCalculatorName(String name)
           
 String checkNodeLabelCalculatorName(String name)
           
 String checkNodeLabelColorCalculatorName(String name)
           
 String checkNodeLineTypeCalculatorName(String name)
           
 String checkNodeShapeCalculatorName(String name)
           
 String checkNodeSizeCalculatorName(String name)
           
 String checkNodeToolTipCalculatorName(String name)
           
 String checkVisualStyleName(String name)
           
 void clear()
           
 void createDefaultVisualStyle()
           
protected  void fireStateChanged(byte type)
          Notifies all listeners that have registered interest for notification on this event type.
protected  Map getCalculatorMap(byte type)
          Given a known byte identifier, returns the matching Map structure holding calculators of that type.
 EdgeArrowCalculator getEdgeArrowCalculator(String name)
           
 Collection getEdgeArrowCalculators()
           
 EdgeColorCalculator getEdgeColorCalculator(String name)
           
 Collection getEdgeColorCalculators()
           
 EdgeFontFaceCalculator getEdgeFontFaceCalculator(String name)
           
 Collection getEdgeFontFaceCalculators()
           
 EdgeFontSizeCalculator getEdgeFontSizeCalculator(String name)
           
 Collection getEdgeFontSizeCalculators()
           
 EdgeLabelCalculator getEdgeLabelCalculator(String name)
           
 Collection getEdgeLabelCalculators()
           
 EdgeLineTypeCalculator getEdgeLineTypeCalculator(String name)
           
 Collection getEdgeLineTypeCalculators()
           
 EdgeToolTipCalculator getEdgeToolTipCalculator(String name)
           
 Collection getEdgeToolTipCalculators()
           
protected  List getListenerList(byte type)
          Given a type argument, returns the List structure that holds the listeners for that type.
 Class getMapping(String name)
           
 Set getMappingNames()
          Returns the HashMap of mappers
 NodeColorCalculator getNodeColorCalculator(String name)
           
 Collection getNodeColorCalculators()
           
 NodeFontFaceCalculator getNodeFontFaceCalculator(String name)
           
 Collection getNodeFontFaceCalculators()
           
 NodeFontSizeCalculator getNodeFontSizeCalculator(String name)
           
 Collection getNodeFontSizeCalculators()
           
 NodeLabelCalculator getNodeLabelCalculator(String name)
           
 Collection getNodeLabelCalculators()
           
 NodeLabelColorCalculator getNodeLabelColorCalculator(String name)
           
 Collection getNodeLabelColorCalculators()
           
 NodeLineTypeCalculator getNodeLineTypeCalculator(String name)
           
 Collection getNodeLineTypeCalculators()
           
 NodeShapeCalculator getNodeShapeCalculator(String name)
           
 Collection getNodeShapeCalculators()
           
 NodeSizeCalculator getNodeSizeCalculator(String name)
           
 Collection getNodeSizeCalculators()
           
 NodeToolTipCalculator getNodeToolTipCalculator(String name)
           
 Collection getNodeToolTipCalculators()
           
 byte getType(Calculator c)
          Given a calculator, returns the matching byte type identifier.
 VisualStyle getVisualStyle(String name)
           
 Set getVisualStyleNames()
           
 Collection getVisualStyles()
           
 void removeCalculator(Calculator c)
          Remove a calculator.
 EdgeArrowCalculator removeEdgeArrowCalculator(String name)
           
 EdgeColorCalculator removeEdgeColorCalculator(String name)
           
 EdgeFontFaceCalculator removeEdgeFontFaceCalculator(String name)
           
 EdgeFontSizeCalculator removeEdgeFontSizeCalculator(String name)
           
 EdgeLabelCalculator removeEdgeLabelCalculator(String name)
           
 EdgeLineTypeCalculator removeEdgeLineTypeCalculator(String name)
           
 EdgeToolTipCalculator removeEdgeToolTipCalculator(String name)
           
 Class removeMapping(String name)
           
 NodeColorCalculator removeNodeColorCalculator(String name)
           
 NodeFontFaceCalculator removeNodeFontFaceCalculator(String name)
           
 NodeFontSizeCalculator removeNodeFontSizeCalculator(String name)
           
 NodeLabelCalculator removeNodeLabelCalculator(String name)
           
 NodeLabelColorCalculator removeNodeLabelColorCalculator(String name)
           
 NodeLineTypeCalculator removeNodeLineTypeCalculator(String name)
           
 NodeShapeCalculator removeNodeShapeCalculator(String name)
           
 NodeSizeCalculator removeNodeSizeCalculator(String name)
           
 NodeToolTipCalculator removeNodeToolTipCalculator(String name)
           
 VisualStyle removeVisualStyle(String name)
           
 void renameCalculator(Calculator c, String name)
          Renames a calculator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

changeEvent

protected transient ChangeEvent changeEvent
Only one ChangeEvent is needed per catalog instance since the event's only state is the source property. The source of events generated is always "this".

Constructor Detail

CalculatorCatalog

public CalculatorCatalog()

CalculatorCatalog

public CalculatorCatalog(Properties props)
Method Detail

clear

public void clear()

getListenerList

protected List getListenerList(byte type)
                        throws IllegalArgumentException
Given a type argument, returns the List structure that holds the listeners for that type.

Parameters:
type - type of calculator to add to, one of VizMapUI's constants
Throws:
IllegalArgumentException - if unknown type passed in

addChangeListener

public void addChangeListener(ChangeListener l,
                              byte type)
                       throws IllegalArgumentException
Add a ChangeListener to the catalog. Depending on the passed-in type, the catalog will add the ChangeListener to the appropriate listener vector for the associated set of calculators. When the catalog's database of calculators changes, the ChangeListener will be notified. This is used in the UI classes to ensure that the UI panes stay consistent with the data held in the catalog.

Parameters:
l - ChangeListener to add
type - type of calculator to add to, one of VizMapUI's constants
Throws:
IllegalArgumentException - if unknown type passed in

fireStateChanged

protected void fireStateChanged(byte type)
                         throws IllegalArgumentException
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created. Note that fireStateChanged is only triggered by calling addCalculator(cytoscape.visual.calculators.Calculator), renameCalculator(cytoscape.visual.calculators.Calculator, java.lang.String), or removeCalculator(cytoscape.visual.calculators.Calculator). Manipulating each type explicitly does not trigger ChangeEvents to be fired. This is because the UI classes only use the more general methods. However, this behavior does not permit "hidden" calculators. Upon the next refresh, all calculators contained will be visible.

Parameters:
type - one of VizMapUI constants, which set of listeners to notify
Throws:
IllegalArgumentException - if type is unknown

getType

public byte getType(Calculator c)
             throws IllegalArgumentException
Given a calculator, returns the matching byte type identifier.

Parameters:
c - the calculator
Returns:
byte the byte identifier
Throws:
IllegalArgumentException

getCalculatorMap

protected Map getCalculatorMap(byte type)
Given a known byte identifier, returns the matching Map structure holding calculators of that type.

Parameters:
type - a known type identifier
Returns:
Map the matching Map structure

addCalculator

public void addCalculator(Calculator dupe)
                   throws DuplicateCalculatorNameException,
                          IllegalArgumentException
Add any calculator to the catalog. Automatically checks type. Calculator is added according to its name as reported by the toString() method.

Parameters:
dupe - Calculator to add
Throws:
DuplicateCalculatorNameException - if calculator's name is a duplicate with valid name as detail message
IllegalArgumentException - if calculator is of an unknown type

checkCalculatorName

public String checkCalculatorName(String calcName,
                                  byte calcType)
Checks whether a name for a calculator is valid

Parameters:
calcName - Name to check
calcType - Type of calculator VizMapUI
Returns:
a valid name for the calculator. If the given name was not valid, numbers are appended until a valid name is found; this valid name is returned to the caller.

renameCalculator

public void renameCalculator(Calculator c,
                             String name)
                      throws DuplicateCalculatorNameException,
                             IllegalArgumentException
Renames a calculator.

Parameters:
c - Calculator to rename
name - New name for calculator
Throws:
DuplicateCalculatorNameException - if name is a duplicate with valid name as detail message
IllegalArgumentException - if c is of an unknown type

removeCalculator

public void removeCalculator(Calculator c)
                      throws IllegalArgumentException
Remove a calculator.

Parameters:
c - Calculator to remove
Throws:
IllegalArgumentException - if c is of an unknown calculator type

getMappingNames

public Set getMappingNames()
Returns the HashMap of mappers


addMapping

public void addMapping(String name,
                       Class m)
                throws DuplicateCalculatorNameException,
                       IllegalArgumentException
Add a mapping to the database of available mappings. Because mappings are instantiated for each calculator, only class types are stored.

Parameters:
name - Name of the mapping
m - Class of the mapping
Throws:
DuplicateCalculatorNameException - if the given name is already taken
IllegalArgumentException - if the given class is not in the mapping hierarchy

removeMapping

public Class removeMapping(String name)

getMapping

public Class getMapping(String name)

checkMappingName

public String checkMappingName(String name)

getVisualStyleNames

public Set getVisualStyleNames()

getVisualStyles

public Collection getVisualStyles()

addVisualStyle

public void addVisualStyle(VisualStyle vs)

removeVisualStyle

public VisualStyle removeVisualStyle(String name)

getVisualStyle

public VisualStyle getVisualStyle(String name)

checkVisualStyleName

public String checkVisualStyleName(String name)

addCalculator

protected void addCalculator(Calculator c,
                             Map m)
                      throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

checkName

protected String checkName(String name,
                           Map m)

getNodeColorCalculators

public Collection getNodeColorCalculators()

addNodeColorCalculator

public void addNodeColorCalculator(NodeColorCalculator c)
                            throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeNodeColorCalculator

public NodeColorCalculator removeNodeColorCalculator(String name)

getNodeColorCalculator

public NodeColorCalculator getNodeColorCalculator(String name)

checkNodeColorCalculatorName

public String checkNodeColorCalculatorName(String name)

getNodeLineTypeCalculators

public Collection getNodeLineTypeCalculators()

addNodeLineTypeCalculator

public void addNodeLineTypeCalculator(NodeLineTypeCalculator c)
                               throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeNodeLineTypeCalculator

public NodeLineTypeCalculator removeNodeLineTypeCalculator(String name)

getNodeLineTypeCalculator

public NodeLineTypeCalculator getNodeLineTypeCalculator(String name)

checkNodeLineTypeCalculatorName

public String checkNodeLineTypeCalculatorName(String name)

getNodeShapeCalculators

public Collection getNodeShapeCalculators()

addNodeShapeCalculator

public void addNodeShapeCalculator(NodeShapeCalculator c)
                            throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeNodeShapeCalculator

public NodeShapeCalculator removeNodeShapeCalculator(String name)

getNodeShapeCalculator

public NodeShapeCalculator getNodeShapeCalculator(String name)

checkNodeShapeCalculatorName

public String checkNodeShapeCalculatorName(String name)

getNodeSizeCalculators

public Collection getNodeSizeCalculators()

addNodeSizeCalculator

public void addNodeSizeCalculator(NodeSizeCalculator c)
                           throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeNodeSizeCalculator

public NodeSizeCalculator removeNodeSizeCalculator(String name)

getNodeSizeCalculator

public NodeSizeCalculator getNodeSizeCalculator(String name)

checkNodeSizeCalculatorName

public String checkNodeSizeCalculatorName(String name)

getNodeLabelCalculators

public Collection getNodeLabelCalculators()

addNodeLabelCalculator

public void addNodeLabelCalculator(NodeLabelCalculator c)
                            throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeNodeLabelCalculator

public NodeLabelCalculator removeNodeLabelCalculator(String name)

getNodeLabelCalculator

public NodeLabelCalculator getNodeLabelCalculator(String name)

checkNodeLabelCalculatorName

public String checkNodeLabelCalculatorName(String name)

getNodeLabelColorCalculators

public Collection getNodeLabelColorCalculators()

addNodeLabelColorCalculator

public void addNodeLabelColorCalculator(NodeLabelColorCalculator c)
                                 throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeNodeLabelColorCalculator

public NodeLabelColorCalculator removeNodeLabelColorCalculator(String name)

getNodeLabelColorCalculator

public NodeLabelColorCalculator getNodeLabelColorCalculator(String name)

checkNodeLabelColorCalculatorName

public String checkNodeLabelColorCalculatorName(String name)

getNodeToolTipCalculators

public Collection getNodeToolTipCalculators()

addNodeToolTipCalculator

public void addNodeToolTipCalculator(NodeToolTipCalculator c)
                              throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeNodeToolTipCalculator

public NodeToolTipCalculator removeNodeToolTipCalculator(String name)

getNodeToolTipCalculator

public NodeToolTipCalculator getNodeToolTipCalculator(String name)

checkNodeToolTipCalculatorName

public String checkNodeToolTipCalculatorName(String name)

getNodeFontFaceCalculators

public Collection getNodeFontFaceCalculators()

addNodeFontFaceCalculator

public void addNodeFontFaceCalculator(NodeFontFaceCalculator c)
                               throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeNodeFontFaceCalculator

public NodeFontFaceCalculator removeNodeFontFaceCalculator(String name)

getNodeFontFaceCalculator

public NodeFontFaceCalculator getNodeFontFaceCalculator(String name)

checkNodeFontFaceCalculatorName

public String checkNodeFontFaceCalculatorName(String name)

getNodeFontSizeCalculators

public Collection getNodeFontSizeCalculators()

addNodeFontSizeCalculator

public void addNodeFontSizeCalculator(NodeFontSizeCalculator c)
                               throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeNodeFontSizeCalculator

public NodeFontSizeCalculator removeNodeFontSizeCalculator(String name)

getNodeFontSizeCalculator

public NodeFontSizeCalculator getNodeFontSizeCalculator(String name)

checkNodeFontSizeCalculatorName

public String checkNodeFontSizeCalculatorName(String name)

getEdgeColorCalculators

public Collection getEdgeColorCalculators()

addEdgeColorCalculator

public void addEdgeColorCalculator(EdgeColorCalculator c)
                            throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeEdgeColorCalculator

public EdgeColorCalculator removeEdgeColorCalculator(String name)

getEdgeColorCalculator

public EdgeColorCalculator getEdgeColorCalculator(String name)

checkEdgeColorCalculatorName

public String checkEdgeColorCalculatorName(String name)

getEdgeLineTypeCalculators

public Collection getEdgeLineTypeCalculators()

addEdgeLineTypeCalculator

public void addEdgeLineTypeCalculator(EdgeLineTypeCalculator c)
                               throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeEdgeLineTypeCalculator

public EdgeLineTypeCalculator removeEdgeLineTypeCalculator(String name)

getEdgeLineTypeCalculator

public EdgeLineTypeCalculator getEdgeLineTypeCalculator(String name)

checkEdgeLineTypeCalculatorName

public String checkEdgeLineTypeCalculatorName(String name)

getEdgeArrowCalculators

public Collection getEdgeArrowCalculators()

addEdgeArrowCalculator

public void addEdgeArrowCalculator(EdgeArrowCalculator c)
                            throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeEdgeArrowCalculator

public EdgeArrowCalculator removeEdgeArrowCalculator(String name)

getEdgeArrowCalculator

public EdgeArrowCalculator getEdgeArrowCalculator(String name)

checkEdgeArrowCalculatorName

public String checkEdgeArrowCalculatorName(String name)

getEdgeLabelCalculators

public Collection getEdgeLabelCalculators()

addEdgeLabelCalculator

public void addEdgeLabelCalculator(EdgeLabelCalculator c)
                            throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeEdgeLabelCalculator

public EdgeLabelCalculator removeEdgeLabelCalculator(String name)

getEdgeLabelCalculator

public EdgeLabelCalculator getEdgeLabelCalculator(String name)

checkEdgeLabelCalculatorName

public String checkEdgeLabelCalculatorName(String name)

getEdgeToolTipCalculators

public Collection getEdgeToolTipCalculators()

addEdgeToolTipCalculator

public void addEdgeToolTipCalculator(EdgeToolTipCalculator c)
                              throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeEdgeToolTipCalculator

public EdgeToolTipCalculator removeEdgeToolTipCalculator(String name)

getEdgeToolTipCalculator

public EdgeToolTipCalculator getEdgeToolTipCalculator(String name)

checkEdgeToolTipCalculatorName

public String checkEdgeToolTipCalculatorName(String name)

getEdgeFontFaceCalculators

public Collection getEdgeFontFaceCalculators()

addEdgeFontFaceCalculator

public void addEdgeFontFaceCalculator(EdgeFontFaceCalculator c)
                               throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeEdgeFontFaceCalculator

public EdgeFontFaceCalculator removeEdgeFontFaceCalculator(String name)

getEdgeFontFaceCalculator

public EdgeFontFaceCalculator getEdgeFontFaceCalculator(String name)

checkEdgeFontFaceCalculatorName

public String checkEdgeFontFaceCalculatorName(String name)

getEdgeFontSizeCalculators

public Collection getEdgeFontSizeCalculators()

addEdgeFontSizeCalculator

public void addEdgeFontSizeCalculator(EdgeFontSizeCalculator c)
                               throws DuplicateCalculatorNameException
Throws:
DuplicateCalculatorNameException

removeEdgeFontSizeCalculator

public EdgeFontSizeCalculator removeEdgeFontSizeCalculator(String name)

getEdgeFontSizeCalculator

public EdgeFontSizeCalculator getEdgeFontSizeCalculator(String name)

checkEdgeFontSizeCalculatorName

public String checkEdgeFontSizeCalculatorName(String name)

createDefaultVisualStyle

public void createDefaultVisualStyle()