Tulip  4.6.0
Better Visualization Through Research
tlp::AbstractProperty< Tnode, Tedge, Tprop > Class Template Reference

#include <AbstractProperty.h>

+ Inheritance diagram for tlp::AbstractProperty< Tnode, Tedge, Tprop >:

List of all members.

Classes

class  MetaValueCalculator
 This class is used to delegate the computation of the values associated to meta nodes or edges. More...

Public Member Functions

 AbstractProperty (Graph *, const std::string &n="")
int compare (const node n1, const node n2) const
int compare (const edge e1, const edge e2) const
virtual void computeMetaValue (node n, Graph *sg, Graph *mg)
virtual void computeMetaValue (edge e, tlp::Iterator< edge > *itE, Graph *mg)
virtual bool copy (const node destination, const node source, PropertyInterface *property, bool ifNotDefault=false)
virtual bool copy (const edge destination, const edge source, PropertyInterface *property, bool ifNotDefault=false)
virtual void copy (PropertyInterface *property)
virtual unsigned int edgeValueSize () const
virtual void erase (const node n)
virtual void erase (const edge e)
virtual DataMem * getEdgeDataMemValue (const edge e) const
virtual DataMem * getEdgeDefaultDataMemValue () const
virtual std::string getEdgeDefaultStringValue () const
virtual Tedge::RealType getEdgeDefaultValue () const
virtual std::string getEdgeStringValue (const edge e) const
virtual tlp::StoredType
< typename Tedge::RealType >
::ReturnedConstValue 
getEdgeValue (const edge e) const
virtual DataMem * getNodeDataMemValue (const node n) const
virtual DataMem * getNodeDefaultDataMemValue () const
virtual std::string getNodeDefaultStringValue () const
virtual Tnode::RealType getNodeDefaultValue () const
virtual std::string getNodeStringValue (const node n) const
virtual tlp::StoredType
< typename Tnode::RealType >
::ReturnedConstValue 
getNodeValue (const node n) const
virtual DataMem * getNonDefaultDataMemValue (const node n) const
virtual DataMem * getNonDefaultDataMemValue (const edge e) const
virtual tlp::Iterator< edge > * getNonDefaultValuatedEdges (const Graph *g=NULL) const
virtual tlp::Iterator< node > * getNonDefaultValuatedNodes (const Graph *g=NULL) const
virtual unsigned int nodeValueSize () const
virtual unsigned int numberOfNonDefaultValuatedEdges () const
virtual unsigned int numberOfNonDefaultValuatedNodes () const
virtual AbstractProperty
< Tnode, Tedge, Tprop > & 
operator= (AbstractProperty< Tnode, Tedge, Tprop > &prop)
virtual bool readEdgeDefaultValue (std::istream &)
virtual bool readEdgeValue (std::istream &, edge)
virtual bool readNodeDefaultValue (std::istream &)
virtual bool readNodeValue (std::istream &, node)
virtual void setAllEdgeDataMemValue (const DataMem *v)
virtual bool setAllEdgeStringValue (const std::string &inV)
virtual void setAllEdgeValue (const typename Tedge::RealType &v)
virtual void setAllNodeDataMemValue (const DataMem *v)
virtual bool setAllNodeStringValue (const std::string &inV)
virtual void setAllNodeValue (const typename Tnode::RealType &v)
virtual void setEdgeDataMemValue (const edge e, const DataMem *v)
virtual bool setEdgeStringValue (const edge inE, const std::string &inV)
virtual void setEdgeValue (const edge e, const typename Tedge::RealType &v)
virtual void setMetaValueCalculator (PropertyInterface::MetaValueCalculator *mvCalc)
virtual void setNodeDataMemValue (const node n, const DataMem *v)
virtual bool setNodeStringValue (const node inN, const std::string &inV)
virtual void setNodeValue (const node n, const typename Tnode::RealType &v)
virtual void writeEdgeDefaultValue (std::ostream &) const
virtual void writeEdgeValue (std::ostream &, edge) const
virtual void writeNodeDefaultValue (std::ostream &) const
virtual void writeNodeValue (std::ostream &, node) const

Protected Member Functions

virtual void clone_handler (AbstractProperty< Tnode, Tedge, Tprop > &)

Protected Attributes

Tedge::RealType edgeDefaultValue
MutableContainer< typename
Tedge::RealType > 
edgeProperties
Tnode::RealType nodeDefaultValue
MutableContainer< typename
Tnode::RealType > 
nodeProperties

Friends

class Graph
class GraphView

Detailed Description

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
class tlp::AbstractProperty< Tnode, Tedge, Tprop >

This class extends upon PropertyInterface, and adds type-safe methods to get and set the node and edge values, through the magic of template programming.

Nodes and Edges can have different types (e.g. tlp::LayoutProperty has tlp::PointType as node type and tlp::LineType as edge type), but most of the time they have the same type (e.g. tlp::DoubleProperty, tlp::IntegerProperty).

Some of the pure virtual functions of PropertyInterface are implemented in this class (e.g. erase()).

The actual data is stored in this class, and it manages the default values.

Definition at line 54 of file AbstractProperty.h.


Member Function Documentation

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
virtual void tlp::AbstractProperty< Tnode, Tedge, Tprop >::clone_handler ( AbstractProperty< Tnode, Tedge, Tprop > &  ) [inline, protected, virtual]

Enable to clone part of sub_class.

Definition at line 413 of file AbstractProperty.h.

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
virtual void tlp::AbstractProperty< Tnode, Tedge, Tprop >::erase ( const node  n) [inline, virtual]

Resets the value of a node to the default value.

Parameters:
nThe node to reset the value of.

Definition at line 130 of file AbstractProperty.h.

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
virtual void tlp::AbstractProperty< Tnode, Tedge, Tprop >::erase ( const edge  e) [inline, virtual]

Resets the value of an edge to the default value.

Parameters:
eThe edge to reset the value of.

Definition at line 141 of file AbstractProperty.h.

template<class Tnode , class Tedge , class Tprop >
Tedge::RealType tlp::AbstractProperty< Tnode, Tedge, Tprop >::getEdgeDefaultValue ( ) const [virtual]

Gets the default edge value of the property.

Returns:
The default value of edges.

Definition at line 38 of file AbstractProperty.cxx.

+ Here is the caller graph for this function:

template<class Tnode , class Tedge , class Tprop >
tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue tlp::AbstractProperty< Tnode, Tedge, Tprop >::getEdgeValue ( const edge  e) const [virtual]

Returns the value associated to the edge e in this property. If there is no value, it returns the default edge value.

Parameters:
eThe edge for which we want to get the value of the property.
Returns:
:StoredType< Tedge::RealType >::ReturnedConstValue The value of the property for this edge.

Definition at line 49 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class Tnode , class Tedge , class Tprop >
Tnode::RealType tlp::AbstractProperty< Tnode, Tedge, Tprop >::getNodeDefaultValue ( ) const [virtual]

Gets the default node value of the property.

Returns:
The default value of nodes.

Definition at line 33 of file AbstractProperty.cxx.

+ Here is the caller graph for this function:

template<class Tnode , class Tedge , class Tprop >
tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue tlp::AbstractProperty< Tnode, Tedge, Tprop >::getNodeValue ( const node  n) const [virtual]

Returns the value associated with the node n in this property. If there is no value, it returns the default node value.

Parameters:
nThe node for which we want to get the value of the property.
Returns:
:StoredType< Tnode::RealType >::ReturnedConstValue The value of the property for this node.

Definition at line 43 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
virtual AbstractProperty<Tnode,Tedge,Tprop>& tlp::AbstractProperty< Tnode, Tedge, Tprop >::operator= ( AbstractProperty< Tnode, Tedge, Tprop > &  prop) [inline, virtual]

This operator overload allows to copy a property using the following syntax :

 IntegerProperty* shape = graph->getProperty<IntegerProperty>("viewShape");
 IntegerProperty* backup = graph->getProperty<IntegerProperty>("shapeBackup");
 *backup = *shape; // all the values from 'shape' will be copied into 'backup'.
Parameters:
propThe property nto copy the values from.
Returns:
This property with the values copied.

Definition at line 156 of file AbstractProperty.h.

template<class Tnode , class Tedge, class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setAllEdgeValue ( const typename Tedge::RealType &  v) [virtual]

Sets the value of all edges and notify the observers.

Parameters:
vThe value to set to all edges.

Definition at line 79 of file AbstractProperty.cxx.

template<class Tnode, class Tedge , class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setAllNodeValue ( const typename Tnode::RealType &  v) [virtual]

Sets the value of all nodes and notify the observers.

Parameters:
vThe value to set to all nodes.

Definition at line 71 of file AbstractProperty.cxx.

template<class Tnode , class Tedge, class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setEdgeValue ( const edge  e,
const typename Tedge::RealType &  v 
) [virtual]

Set the value of an edge and notify the observers of a modification.

Parameters:
eThe edge to set the value of.
vThe value to affect for this edge.

Definition at line 63 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

template<class Tnode, class Tedge , class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setNodeValue ( const node  n,
const typename Tnode::RealType &  v 
) [virtual]

Sets the value of a node and notify the observers of a modification.

Parameters:
nThe node to set the value of.
vThe value to affect for this node.
Examples:
graph_display/graph_display.cpp.

Definition at line 55 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

 All Classes Files Functions Variables Enumerations Enumerator Properties