Eclipse SUMO - Simulation of Urban MObility
GNEChange Class Referenceabstract

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

#include <GNEChange.h>

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

friend class

class GNEChangeGroup
 
class GNEUndoList
 
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...
 
GNEChangenext
 
 GNEChange (Supermode supermode, bool forward, const bool selectedElement)
 Constructor. More...
 
 GNEChange (Supermode supermode, GNEHierarchicalElement *element, bool forward, const bool selectedElement)
 Constructor. More...
 
 ~GNEChange ()
 Destructor. More...
 
virtual void undo ()=0
 undo action/operation More...
 
virtual void redo ()=0
 redo action/operation More...
 
virtual std::string undoName () const =0
 return undoName More...
 
virtual std::string redoName () const =0
 return redoName More...
 
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...
 
 GNEChange ()
 FOX need this. 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...
 
 GNEChange (const GNEChange &)=delete
 Invalidated copy constructor. More...
 
GNEChangeoperator= (const GNEChange &)=delete
 Invalidated assignment operator. More...
 

Detailed Description

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

Definition at line 56 of file GNEChange.h.

Constructor & Destructor Documentation

◆ GNEChange() [1/4]

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

Constructor.

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

Definition at line 34 of file GNEChange.cpp.

◆ GNEChange() [2/4]

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

Constructor.

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

Definition at line 42 of file GNEChange.cpp.

References GNEHierarchicalElement::getAllHierarchicalElements(), and myHierarchicalContainers.

◆ ~GNEChange()

GNEChange::~GNEChange ( )

Destructor.

Definition at line 57 of file GNEChange.cpp.

◆ GNEChange() [3/4]

GNEChange::GNEChange ( )
protected

FOX need this.

Definition at line 85 of file GNEChange.cpp.

References NETWORK.

◆ GNEChange() [4/4]

GNEChange::GNEChange ( const GNEChange )
privatedelete

Invalidated copy constructor.

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 124 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(), and GNEChange_Lane::redo().

Here is the caller graph for this function:

◆ canMerge()

bool GNEChange::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.

Definition at line 74 of file GNEChange.cpp.

Referenced by GNEUndoList::add().

Here is the caller graph for this function:

◆ getSupermode()

Supermode GNEChange::getSupermode ( ) const

get supermode

Definition at line 68 of file GNEChange.cpp.

References mySupermode.

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

Here is the caller graph for this function:

◆ mergeWith()

bool GNEChange::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.

Definition at line 80 of file GNEChange.cpp.

Referenced by GNEUndoList::add().

Here is the caller graph for this function:

◆ operator=()

GNEChange& GNEChange::operator= ( const GNEChange )
privatedelete

Invalidated assignment operator.

◆ redo()

◆ redoName()

virtual std::string GNEChange::redoName ( ) const
pure virtual

◆ 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 167 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(), and GNEChange_Lane::redo().

Here is the caller graph for this function:

◆ restoreHierarchicalContainers()

void GNEChange::restoreHierarchicalContainers ( )
protected

restore container (only use in undo() function)

Definition at line 94 of file GNEChange.cpp.

References 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
virtual

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()

virtual std::string GNEChange::undoName ( ) const
pure virtual

Friends And Related Function Documentation

◆ GNEChangeGroup

friend class GNEChangeGroup
friend

Definition at line 61 of file GNEChange.h.

◆ GNEUndoList

friend class GNEUndoList
friend

Definition at line 62 of file GNEChange.h.

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 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
protected

map with hierarchical container of all parent and children elements

Definition at line 221 of file GNEChange.h.

Referenced by GNEChange(), and restoreHierarchicalContainers().

◆ myOriginalHierarchicalContainer

const GNEHierarchicalContainer GNEChange::myOriginalHierarchicalContainer
protected

Hierarchical container with parent and children.

Definition at line 218 of file GNEChange.h.

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

◆ mySelectedElement

◆ mySupermode

const Supermode GNEChange::mySupermode
protected

supermode related with this change

Definition at line 209 of file GNEChange.h.

Referenced by getSupermode().

◆ next


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