Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GNEChangeGroup Class Reference

#include <GNEChangeGroup.h>

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

declare friend class

class GNEUndoList
 
const std::string myDescription
 description of command
 
const Supermode myGroupSupermode
 supermode associated with this ChangeGroup
 
const GUIIcon myIcon
 icon associated with this ChangeGroup
 
GNEChangeundoList
 undo list command (can be access by GNEUndoList)
 
GNEChangeredoList
 redo list command (can be access by GNEUndoList)
 
GNEChangeGroupgroup
 group (can be access by GNEUndoList)
 
std::string myTimeStamp
 timeStamp HH:MM:SS
 
 GNEChangeGroup (Supermode groupSupermode, GUIIcon icon, const std::string &description)
 Construct initially empty undo command group.
 
 ~GNEChangeGroup ()
 Delete undo command and sub-commands.
 
void undo ()
 Undo whole command group.
 
void redo ()
 Redo whole command group.
 
std::string undoName () const
 get undo Name
 
std::string redoName () const
 get redo name
 
int size () const
 Return the size of the command group.
 
const std::string & getDescription ()
 get description
 
const std::string & getTimeStamp ()
 get timeStamp
 
Supermode getGroupSupermode () const
 get supermode associated with this ChangeGroup
 
GUIIcon getGroupIcon () const
 get icon associated with this ChangeGroup
 
bool empty () const
 Return TRUE if empty.
 
 GNEChangeGroup ()
 FOX need this.
 
 GNEChangeGroup (const GNEChangeGroup &)
 invalidate copy constructor
 
GNEChangeGroupoperator= (const GNEChangeGroup &)=delete
 invalidate assignment operator
 

friend class

const Supermode mySupermode
 supermode related with this change
 
bool myForward
 we group antagonistic commands (create junction/delete junction) and keep them apart by this flag
 
const bool mySelectedElement
 flag for check if element is selected
 
const GNEHierarchicalContainer myOriginalHierarchicalContainer
 Hierarchical container with parent and children.
 
std::map< GNEHierarchicalElement *, GNEHierarchicalContainermyHierarchicalContainers
 map with hierarchical container of all parent and children elements
 
GNEChangenext
 
Supermode getSupermode () const
 get supermode
 
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.
 
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.
 
void restoreHierarchicalContainers ()
 restore container (only use in undo() function)
 
template<typename T >
void addElementInParentsAndChildren (T *element)
 add given element into parents and children (only use in redo() function)
 
template<typename T >
void removeElementFromParentsAndChildren (T *element)
 remove given element from parents and children (only use in redo() function)
 

Detailed Description

Group of undoable commands. A group may comprise multiple individual actions which together undo (or redo) a larger operation. Even larger operations may be built by nesting multiple undo groups.

Definition at line 31 of file GNEChangeGroup.h.

Constructor & Destructor Documentation

◆ GNEChangeGroup() [1/3]

GNEChangeGroup::GNEChangeGroup ( Supermode  groupSupermode,
GUIIcon  icon,
const std::string &  description 
)

Construct initially empty undo command group.

Definition at line 40 of file GNEChangeGroup.cpp.

References toString().

◆ ~GNEChangeGroup()

GNEChangeGroup::~GNEChangeGroup ( )

Delete undo command and sub-commands.

Definition at line 58 of file GNEChangeGroup.cpp.

References group, GNEChange::next, redoList, and undoList.

◆ GNEChangeGroup() [2/3]

GNEChangeGroup::GNEChangeGroup ( )
protected

FOX need this.

Definition at line 156 of file GNEChangeGroup.cpp.

Referenced by GNEUndoList::begin(), and size().

Here is the caller graph for this function:

◆ GNEChangeGroup() [3/3]

GNEChangeGroup::GNEChangeGroup ( const GNEChangeGroup )
private

invalidate copy constructor

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:

◆ 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:

◆ empty()

bool GNEChangeGroup::empty ( ) const

Return TRUE if empty.

Definition at line 111 of file GNEChangeGroup.cpp.

References undoList.

Referenced by GNEUndoList::end().

Here is the caller graph for this function:

◆ getDescription()

const std::string & GNEChangeGroup::getDescription ( )

get description

Definition at line 75 of file GNEChangeGroup.cpp.

References myDescription.

◆ getGroupIcon()

GUIIcon GNEChangeGroup::getGroupIcon ( ) const

get icon associated with this ChangeGroup

Definition at line 93 of file GNEChangeGroup.cpp.

References myIcon.

Referenced by GNEUndoList::Iterator::getIcon().

Here is the caller graph for this function:

◆ getGroupSupermode()

Supermode GNEChangeGroup::getGroupSupermode ( ) const

get supermode associated with this ChangeGroup

Definition at line 87 of file GNEChangeGroup.cpp.

References myGroupSupermode.

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

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:

◆ getTimeStamp()

const std::string & GNEChangeGroup::getTimeStamp ( )

get timeStamp

Definition at line 81 of file GNEChangeGroup.cpp.

References myTimeStamp.

Referenced by GNEUndoList::Iterator::getTimeStamp().

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:

◆ operator=()

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

invalidate assignment operator

◆ redo()

void GNEChangeGroup::redo ( )
virtual

Redo whole command group.

Implements GNEChange.

Reimplemented in GNEUndoList.

Definition at line 130 of file GNEChangeGroup.cpp.

References GNEChange::next, GNEChange::redo(), redoList, and undoList.

◆ redoName()

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

get redo name

Implements GNEChange.

Reimplemented in GNEUndoList.

Definition at line 105 of file GNEChangeGroup.cpp.

References myDescription, and TL.

◆ 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:

◆ 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 GNEChangeGroup::size ( ) const
virtual

Return the size of the command group.

Reimplemented from GNEChange.

Definition at line 143 of file GNEChangeGroup.cpp.

References GNEChangeGroup(), GNEChange::next, redoList, GNEChange::size(), and undoList.

◆ undo()

void GNEChangeGroup::undo ( )
virtual

Undo whole command group.

Implements GNEChange.

Reimplemented in GNEUndoList.

Definition at line 117 of file GNEChangeGroup.cpp.

References GNEChange::next, redoList, GNEChange::undo(), and undoList.

Referenced by GNEUndoList::abortAllChangeGroups().

Here is the caller graph for this function:

◆ undoName()

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

get undo Name

Implements GNEChange.

Reimplemented in GNEUndoList.

Definition at line 99 of file GNEChangeGroup.cpp.

References myDescription, and TL.

Friends And Related Symbol Documentation

◆ GNEUndoList

friend class GNEUndoList
friend

Definition at line 36 of file GNEChangeGroup.h.

Field Documentation

◆ group

◆ myDescription

const std::string GNEChangeGroup::myDescription
protected

description of command

Definition at line 79 of file GNEChangeGroup.h.

Referenced by getDescription(), redoName(), and undoName().

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

◆ myGroupSupermode

const Supermode GNEChangeGroup::myGroupSupermode
protected

supermode associated with this ChangeGroup

Definition at line 82 of file GNEChangeGroup.h.

Referenced by getGroupSupermode().

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

◆ myIcon

const GUIIcon GNEChangeGroup::myIcon
protected

icon associated with this ChangeGroup

Definition at line 85 of file GNEChangeGroup.h.

Referenced by getGroupIcon().

◆ myOriginalHierarchicalContainer

const GNEHierarchicalContainer GNEChange::myOriginalHierarchicalContainer
protectedinherited

◆ mySelectedElement

◆ mySupermode

const Supermode GNEChange::mySupermode
protectedinherited

supermode related with this change

Definition at line 209 of file GNEChange.h.

Referenced by GNEChange::getSupermode().

◆ myTimeStamp

std::string GNEChangeGroup::myTimeStamp
private

timeStamp HH:MM:SS

Definition at line 98 of file GNEChangeGroup.h.

Referenced by getTimeStamp().

◆ next

◆ redoList

◆ undoList


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