Eclipse SUMO - Simulation of Urban MObility
GNEChange_Distribution Class Reference

the function-object for an editing operation (abstract base) More...

#include <GNEChange_Distribution.h>

Inheritance diagram for GNEChange_Distribution:
[legend]
Collaboration diagram for GNEChange_Distribution:
[legend]

Public Member Functions

 ~GNEChange_Distribution ()
 Destructor. More...
 
inherited from GNEChange

get undo Name

std::string undoName () const
 return undoName More...
 
std::string redoName () const
 get Redo name More...
 
void undo ()
 undo action More...
 
void redo ()
 redo action More...
 

Static Public Member Functions

static void addKey (GNEDemandElement *distribution, const GNEDemandElement *key, const double value, GNEUndoList *undoList)
 add new key More...
 
static void editValue (GNEDemandElement *distribution, const GNEDemandElement *key, const double newValue, GNEUndoList *undoList)
 edit value More...
 
static void removeKey (GNEDemandElement *distribution, const GNEDemandElement *key, GNEUndoList *undoList)
 remove key More...
 

Private Member Functions

 GNEChange_Distribution (GNEDemandElement *distribution, const GNEDemandElement *key, const double originalValue, const double newValue)
 constructor for add/modify key More...
 
 GNEChange_Distribution (GNEDemandElement *distribution, const GNEDemandElement *key, const double value, const bool addKey)
 constructor for add/modify key More...
 

Private Attributes

const bool myAddKey
 flag for check if we're adding or removing key More...
 
GNEDemandElementmyDistribution
 the distribution to which all operations shall be applied More...
 
const bool myEditingProbability
 flag for check if we're editing value More...
 
const GNEDemandElementmyKey
 the key More...
 
const double myNewProbability
 the new value More...
 
const double myOriginalProbability
 the original value More...
 

friend class

GNEChangenext
 
virtual int size () const
 Return the size of the command group. More...
 
Supermode getSupermode () const
 get supermode More...
 
bool canMerge () const
 Return TRUE if this command can be merged with previous undo commands. This is useful to combine e.g. multiple consecutive single-character text changes into a single block change. The default implementation returns FALSE. More...
 
bool mergeWith (GNEChange *command)
 Called by the undo system to try and merge the new incoming command with this command; should return TRUE if merging was possible. The default implementation returns FALSE. More...
 
const Supermode mySupermode
 supermode related with this change More...
 
bool myForward
 we group antagonistic commands (create junction/delete junction) and keep them apart by this flag More...
 
const bool mySelectedElement
 flag for check if element is selected More...
 
const GNEHierarchicalContainer myOriginalHierarchicalContainer
 Hierarchical container with parent and children. More...
 
std::map< GNEHierarchicalElement *, GNEHierarchicalContainermyHierarchicalContainers
 map with hierarchical container of all parent and children elements More...
 
void restoreHierarchicalContainers ()
 restore container (only use in undo() function) More...
 
template<typename T >
void addElementInParentsAndChildren (T *element)
 add given element into parents and children (only use in redo() function) More...
 
template<typename T >
void removeElementFromParentsAndChildren (T *element)
 remove given element from parents and children (only use in redo() function) More...
 

Detailed Description

the function-object for an editing operation (abstract base)

Definition at line 32 of file GNEChange_Distribution.h.

Constructor & Destructor Documentation

◆ ~GNEChange_Distribution()

◆ GNEChange_Distribution() [1/2]

GNEChange_Distribution::GNEChange_Distribution ( GNEDemandElement distribution,
const GNEDemandElement key,
const double  value,
const bool  addKey 
)
private

constructor for add/modify key

Parameters
[in]distributionThe distribution to be modified
[in]keyto add/remove
[in]valuekey value
[in]addKeyflag to check if we're adding or removing key

Definition at line 128 of file GNEChange_Distribution.cpp.

References DEMAND, GNEAttributeCarrier::getTagProperty(), GNETagProperties::getTagStr(), GNEReferenceCounter::incRef(), and myDistribution.

Referenced by editValue(), and removeKey().

Here is the caller graph for this function:

◆ GNEChange_Distribution() [2/2]

GNEChange_Distribution::GNEChange_Distribution ( GNEDemandElement distribution,
const GNEDemandElement key,
const double  originalValue,
const double  newValue 
)
private

constructor for add/modify key

Parameters
[in]distributionThe distribution to be modified
[in]keyto add/remove
[in]originalValueThe original distribution value
[in]newValueThe new distribution value

Definition at line 140 of file GNEChange_Distribution.cpp.

References DEMAND, GNEAttributeCarrier::getTagProperty(), GNETagProperties::getTagStr(), GNEReferenceCounter::incRef(), and myDistribution.

Member Function Documentation

◆ addElementInParentsAndChildren()

template<typename T >
void GNEChange::addElementInParentsAndChildren ( T *  element)
inlineprotectedinherited

add given element into parents and children (only use in redo() function)

Definition at line 124 of file GNEChange.h.

References GNEHierarchicalContainer::getChildren(), GNEHierarchicalContainer::getParents(), and GNEChange::myOriginalHierarchicalContainer.

Referenced by GNEChange_Additional::redo(), GNEChange_DemandElement::redo(), GNEChange_Edge::redo(), GNEChange_GenericData::redo(), and GNEChange_Lane::redo().

Here is the caller graph for this function:

◆ addKey()

void GNEChange_Distribution::addKey ( GNEDemandElement distribution,
const GNEDemandElement key,
const double  value,
GNEUndoList undoList 
)
static

add new key

Definition at line 37 of file GNEChange_Distribution.cpp.

References TLF.

Referenced by GNEDemandElementDistribution::addDistributionKey().

Here is the caller graph for this function:

◆ canMerge()

bool GNEChange::canMerge ( ) const
inherited

Return TRUE if this command can be merged with previous undo commands. This is useful to combine e.g. multiple consecutive single-character text changes into a single block change. The default implementation returns FALSE.

Definition at line 74 of file GNEChange.cpp.

Referenced by GNEUndoList::add().

Here is the caller graph for this function:

◆ editValue()

void GNEChange_Distribution::editValue ( GNEDemandElement distribution,
const GNEDemandElement key,
const double  newValue,
GNEUndoList undoList 
)
static

edit value

Definition at line 59 of file GNEChange_Distribution.cpp.

References GNEUndoList::add(), GNEUndoList::begin(), GNEUndoList::end(), GNEDemandElementDistribution::getAttributeDistributionValue(), GNEChange_Distribution(), and TLF.

Referenced by GNEDemandElementDistribution::editDistributionValue().

Here is the caller graph for this function:

◆ getSupermode()

Supermode GNEChange::getSupermode ( ) const
inherited

get supermode

Definition at line 68 of file GNEChange.cpp.

References GNEChange::mySupermode.

Referenced by GNEUndoList::getRedoSupermode(), and GNEUndoList::getUndoSupermode().

Here is the caller graph for this function:

◆ mergeWith()

bool GNEChange::mergeWith ( GNEChange command)
inherited

Called by the undo system to try and merge the new incoming command with this command; should return TRUE if merging was possible. The default implementation returns FALSE.

Definition at line 80 of file GNEChange.cpp.

Referenced by GNEUndoList::add().

Here is the caller graph for this function:

◆ redo()

◆ redoName()

std::string GNEChange_Distribution::redoName ( ) const
virtual

get Redo name

Implements GNEChange.

Definition at line 123 of file GNEChange_Distribution.cpp.

References GNEAttributeCarrier::getID(), myDistribution, and TLF.

◆ removeElementFromParentsAndChildren()

template<typename T >
void GNEChange::removeElementFromParentsAndChildren ( T *  element)
inlineprotectedinherited

remove given element from parents and children (only use in redo() function)

Definition at line 167 of file GNEChange.h.

References GNEHierarchicalContainer::getChildren(), GNEHierarchicalContainer::getParents(), and GNEChange::myOriginalHierarchicalContainer.

Referenced by GNEChange_Additional::redo(), GNEChange_DemandElement::redo(), GNEChange_Edge::redo(), GNEChange_GenericData::redo(), and GNEChange_Lane::redo().

Here is the caller graph for this function:

◆ removeKey()

void GNEChange_Distribution::removeKey ( GNEDemandElement distribution,
const GNEDemandElement key,
GNEUndoList undoList 
)
static

remove key

Definition at line 48 of file GNEChange_Distribution.cpp.

References GNEUndoList::add(), GNEUndoList::begin(), GNEUndoList::end(), GNEAttributeCarrier::getID(), GNEAttributeCarrier::getTagStr(), GNEChange_Distribution(), and TLF.

Referenced by GNEDemandElementDistribution::removeDistributionKey().

Here is the caller graph for this function:

◆ restoreHierarchicalContainers()

void GNEChange::restoreHierarchicalContainers ( )
protectedinherited

restore container (only use in undo() function)

Definition at line 94 of file GNEChange.cpp.

References GNEChange::myHierarchicalContainers.

Referenced by GNEChange_Additional::undo(), GNEChange_DemandElement::undo(), GNEChange_Edge::undo(), GNEChange_GenericData::undo(), and GNEChange_Lane::undo().

Here is the caller graph for this function:

◆ size()

int GNEChange::size ( ) const
virtualinherited

Return the size of the command group.

Reimplemented in GNEChangeGroup.

Definition at line 61 of file GNEChange.cpp.

Referenced by GNEChangeGroup::size().

Here is the caller graph for this function:

◆ undo()

◆ undoName()

std::string GNEChange_Distribution::undoName ( ) const
virtual

return undoName

Implements GNEChange.

Definition at line 117 of file GNEChange_Distribution.cpp.

References GNEAttributeCarrier::getID(), myDistribution, and TLF.

Field Documentation

◆ myAddKey

const bool GNEChange_Distribution::myAddKey
private

flag for check if we're adding or removing key

Definition at line 79 of file GNEChange_Distribution.h.

Referenced by redo(), and undo().

◆ myDistribution

GNEDemandElement* GNEChange_Distribution::myDistribution
private

the distribution to which all operations shall be applied

Note
we are not responsible for the pointer

Definition at line 67 of file GNEChange_Distribution.h.

Referenced by GNEChange_Distribution(), redo(), redoName(), undo(), undoName(), and ~GNEChange_Distribution().

◆ myEditingProbability

const bool GNEChange_Distribution::myEditingProbability
private

flag for check if we're editing value

Definition at line 82 of file GNEChange_Distribution.h.

Referenced by redo(), and undo().

◆ myForward

bool GNEChange::myForward
protectedinherited

we group antagonistic commands (create junction/delete junction) and keep them apart by this flag

Definition at line 212 of file GNEChange.h.

Referenced by GNEChange_Additional::redo(), GNEChange_Children::redo(), GNEChange_Connection::redo(), GNEChange_Crossing::redo(), GNEChange_DataInterval::redo(), GNEChange_DataSet::redo(), GNEChange_DemandElement::redo(), GNEChange_Edge::redo(), GNEChange_EdgeType::redo(), GNEChange_GenericData::redo(), GNEChange_Junction::redo(), GNEChange_Lane::redo(), GNEChange_MeanData::redo(), GNEChange_TLS::redo(), GNEChange_Additional::redoName(), GNEChange_Children::redoName(), GNEChange_Connection::redoName(), GNEChange_Crossing::redoName(), GNEChange_DataInterval::redoName(), GNEChange_DataSet::redoName(), GNEChange_DemandElement::redoName(), GNEChange_Edge::redoName(), GNEChange_EdgeType::redoName(), GNEChange_GenericData::redoName(), GNEChange_Junction::redoName(), GNEChange_Lane::redoName(), GNEChange_MeanData::redoName(), GNEChange_TLS::redoName(), GNEChange_Additional::undo(), GNEChange_Children::undo(), GNEChange_Connection::undo(), GNEChange_Crossing::undo(), GNEChange_DataInterval::undo(), GNEChange_DataSet::undo(), GNEChange_DemandElement::undo(), GNEChange_Edge::undo(), GNEChange_EdgeType::undo(), GNEChange_GenericData::undo(), GNEChange_Junction::undo(), GNEChange_Lane::undo(), GNEChange_MeanData::undo(), GNEChange_TLS::undo(), GNEChange_Additional::undoName(), GNEChange_Children::undoName(), GNEChange_Connection::undoName(), GNEChange_Crossing::undoName(), GNEChange_DataInterval::undoName(), GNEChange_DataSet::undoName(), GNEChange_DemandElement::undoName(), GNEChange_Edge::undoName(), GNEChange_EdgeType::undoName(), GNEChange_GenericData::undoName(), GNEChange_Junction::undoName(), GNEChange_Lane::undoName(), GNEChange_MeanData::undoName(), and GNEChange_TLS::undoName().

◆ myHierarchicalContainers

std::map<GNEHierarchicalElement*, GNEHierarchicalContainer> GNEChange::myHierarchicalContainers
protectedinherited

map with hierarchical container of all parent and children elements

Definition at line 221 of file GNEChange.h.

Referenced by GNEChange::GNEChange(), and GNEChange::restoreHierarchicalContainers().

◆ myKey

const GNEDemandElement* GNEChange_Distribution::myKey
private

the key

Definition at line 70 of file GNEChange_Distribution.h.

Referenced by redo(), and undo().

◆ myNewProbability

const double GNEChange_Distribution::myNewProbability
private

the new value

Definition at line 76 of file GNEChange_Distribution.h.

Referenced by redo(), and undo().

◆ myOriginalHierarchicalContainer

const GNEHierarchicalContainer GNEChange::myOriginalHierarchicalContainer
protectedinherited

◆ myOriginalProbability

const double GNEChange_Distribution::myOriginalProbability
private

the original value

Definition at line 73 of file GNEChange_Distribution.h.

Referenced by undo().

◆ mySelectedElement

◆ mySupermode

const Supermode GNEChange::mySupermode
protectedinherited

supermode related with this change

Definition at line 209 of file GNEChange.h.

Referenced by GNEChange::getSupermode().

◆ next


The documentation for this class was generated from the following files: