Eclipse SUMO - Simulation of Urban MObility
GNEChange Class Reference

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

#include <GNEChange.h>

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

Public Member Functions

 GNEChange (bool forward, const bool selectedElement)
 Constructor. More...
 
 GNEChange (GNEHierarchicalElement *element, bool forward, const bool selectedElement)
 Constructor. More...
 
virtual void redo ()
 redo action/operation More...
 
virtual FXString redoName () const
 return rendoName More...
 
virtual FXuint size () const
 return actual size More...
 
virtual void undo ()
 undo action/operation More...
 
virtual FXString undoName () const
 return undoName More...
 
 ~GNEChange ()
 Destructor. More...
 

Protected Member Functions

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...
 
void restoreHierarchicalContainers ()
 restore container (only use in undo() function) More...
 

Protected Attributes

bool myForward
 we group antagonistic commands (create junction/delete junction) and keep them apart by this flag More...
 
std::map< GNEHierarchicalElement *, GNEHierarchicalContainermyHierarchicalContainers
 map with hierarchical container of all parent and children elements More...
 
const GNEHierarchicalContainer myOriginalHierarchicalContainer
 Hierarchical container with parent and children. More...
 
const bool mySelectedElement
 flag for check if element is selected More...
 

Detailed Description

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

Definition at line 65 of file GNEChange.h.

Constructor & Destructor Documentation

◆ GNEChange() [1/2]

GNEChange::GNEChange ( bool  forward,
const bool  selectedElement 
)

Constructor.

Parameters
[in]forwardThe direction of this change
[in]selectedElementflag to mark if element is selected

Definition at line 34 of file GNEChange.cpp.

◆ GNEChange() [2/2]

GNEChange::GNEChange ( GNEHierarchicalElement element,
bool  forward,
const bool  selectedElement 
)

Constructor.

Parameters
[in]elementhierarchical element
[in]forwardThe direction of this change
[in]selectedElementflag to mark if element is selected

Definition at line 39 of file GNEChange.cpp.

References GNEHierarchicalElement::getAllHierarchicalElements(), and myHierarchicalContainers.

◆ ~GNEChange()

GNEChange::~GNEChange ( )

Destructor.

Definition at line 52 of file GNEChange.cpp.

Member Function Documentation

◆ addElementInParentsAndChildren()

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

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

Definition at line 106 of file GNEChange.h.

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

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

Here is the caller graph for this function:

◆ redo()

◆ redoName()

◆ removeElementFromParentsAndChildren()

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

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

Definition at line 161 of file GNEChange.h.

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

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

Here is the caller graph for this function:

◆ restoreHierarchicalContainers()

void GNEChange::restoreHierarchicalContainers ( )
protected

restore container (only use in undo() function)

Definition at line 82 of file GNEChange.cpp.

References myHierarchicalContainers.

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

Here is the caller graph for this function:

◆ size()

FXuint GNEChange::size ( ) const
virtual

return actual size

Definition at line 56 of file GNEChange.cpp.

◆ undo()

◆ undoName()

Field Documentation

◆ myForward

bool GNEChange::myForward
protected

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

Definition at line 215 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_LaneType::redo(), GNEChange_Shape::redo(), GNEChange_TAZElement::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_LaneType::redoName(), GNEChange_Shape::redoName(), GNEChange_TAZElement::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_LaneType::undo(), GNEChange_Shape::undo(), GNEChange_TAZElement::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_LaneType::undoName(), GNEChange_Shape::undoName(), GNEChange_TAZElement::undoName(), and GNEChange_TLS::undoName().

◆ myHierarchicalContainers

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

map with hierarchical container of all parent and children elements

Definition at line 224 of file GNEChange.h.

Referenced by GNEChange(), and restoreHierarchicalContainers().

◆ myOriginalHierarchicalContainer

const GNEHierarchicalContainer GNEChange::myOriginalHierarchicalContainer
protected

Hierarchical container with parent and children.

Definition at line 221 of file GNEChange.h.

Referenced by addElementInParentsAndChildren(), GNEChange_DemandElement::redo(), removeElementFromParentsAndChildren(), and GNEChange_DemandElement::undo().

◆ mySelectedElement


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