Eclipse SUMO - Simulation of Urban MObility
GNEChange_Attribute Class Reference

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

#include <GNEChange_Attribute.h>

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

Public Member Functions

void forceChange ()
 force change More...
 
 GNEChange_Attribute (GNEAttributeCarrier *ac, const SumoXMLAttr key, const std::string &value)
 constructor More...
 
 GNEChange_Attribute (GNEAttributeCarrier *ac, const SumoXMLAttr key, const std::string &value, const std::string &customOrigValue)
 Constructor with custom origin value. More...
 
virtual FXuint size () const
 return actual size More...
 
bool trueChange ()
 wether original and new value differ More...
 
 ~GNEChange_Attribute ()
 Destructor. More...
 
inherited from GNEChange

get undo Name

FXString undoName () const
 return undoName More...
 
FXString redoName () const
 get Redo name More...
 
void undo ()
 undo action More...
 
void redo ()
 redo action 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...
 

Private Attributes

GNEAttributeCarriermyAC
 the net to which all operations shall be applied More...
 
bool myForceChange
 flag used to force set attributes More...
 
const SumoXMLAttr myKey
 The attribute name (or the original attribute if we're editing a disjoint attribute) More...
 
const std::string myNewValue
 the new value More...
 
const std::string myOrigValue
 the original value More...
 

Detailed Description

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

Definition at line 32 of file GNEChange_Attribute.h.

Constructor & Destructor Documentation

◆ GNEChange_Attribute() [1/2]

GNEChange_Attribute::GNEChange_Attribute ( GNEAttributeCarrier ac,
const SumoXMLAttr  key,
const std::string &  value 
)

constructor

Parameters
[in]acThe attribute-carrier to be modified
[in]keyThe attribute key
[in]valueThe new value

Definition at line 36 of file GNEChange_Attribute.cpp.

References toString().

◆ GNEChange_Attribute() [2/2]

GNEChange_Attribute::GNEChange_Attribute ( GNEAttributeCarrier ac,
const SumoXMLAttr  key,
const std::string &  value,
const std::string &  customOrigValue 
)

Constructor with custom origin value.

Parameters
[in]acThe attribute-carrier to be modified
[in]keyThe attribute key
[in]valueThe new value
[in]customOrigValuecuston original value

Definition at line 47 of file GNEChange_Attribute.cpp.

References GNEReferenceCounter::incRef(), myAC, myKey, and toString().

◆ ~GNEChange_Attribute()

GNEChange_Attribute::~GNEChange_Attribute ( )

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

Here is the caller graph for this function:

◆ forceChange()

void GNEChange_Attribute::forceChange ( )

force change

Definition at line 140 of file GNEChange_Attribute.cpp.

References myForceChange.

Referenced by GNEVehicleType::setAttribute().

Here is the caller graph for this function:

◆ redo()

◆ redoName()

FXString GNEChange_Attribute::redoName ( ) const
virtual

get Redo name

Reimplemented from GNEChange.

Definition at line 163 of file GNEChange_Attribute.cpp.

References GNEAttributeCarrier::getTagStr(), and myAC.

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

Here is the caller graph for this function:

◆ restoreHierarchicalContainers()

void GNEChange::restoreHierarchicalContainers ( )
protectedinherited

restore container (only use in undo() function)

Definition at line 82 of file GNEChange.cpp.

References GNEChange::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
virtualinherited

return actual size

Definition at line 56 of file GNEChange.cpp.

◆ trueChange()

bool GNEChange_Attribute::trueChange ( )

wether original and new value differ

Definition at line 146 of file GNEChange_Attribute.cpp.

References myForceChange, myNewValue, and myOrigValue.

Referenced by GNEUndoList::p_add().

Here is the caller graph for this function:

◆ undo()

◆ undoName()

FXString GNEChange_Attribute::undoName ( ) const
virtual

return undoName

Reimplemented from GNEChange.

Definition at line 157 of file GNEChange_Attribute.cpp.

References GNEAttributeCarrier::getTagStr(), and myAC.

Field Documentation

◆ myAC

GNEAttributeCarrier* GNEChange_Attribute::myAC
private

the net to which all operations shall be applied

Note
we are not responsible for the pointer

Definition at line 80 of file GNEChange_Attribute.h.

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

◆ myForceChange

bool GNEChange_Attribute::myForceChange
private

flag used to force set attributes

Definition at line 86 of file GNEChange_Attribute.h.

Referenced by forceChange(), and trueChange().

◆ myForward

bool GNEChange::myForward
protectedinherited

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
protectedinherited

map with hierarchical container of all parent and children elements

Definition at line 224 of file GNEChange.h.

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

◆ myKey

const SumoXMLAttr GNEChange_Attribute::myKey
private

The attribute name (or the original attribute if we're editing a disjoint attribute)

Definition at line 83 of file GNEChange_Attribute.h.

Referenced by GNEChange_Attribute(), redo(), undo(), and ~GNEChange_Attribute().

◆ myNewValue

const std::string GNEChange_Attribute::myNewValue
private

the new value

Definition at line 92 of file GNEChange_Attribute.h.

Referenced by redo(), and trueChange().

◆ myOriginalHierarchicalContainer

const GNEHierarchicalContainer GNEChange::myOriginalHierarchicalContainer
protectedinherited

◆ myOrigValue

const std::string GNEChange_Attribute::myOrigValue
private

the original value

Definition at line 89 of file GNEChange_Attribute.h.

Referenced by trueChange(), and undo().

◆ mySelectedElement


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