![]() |
Eclipse SUMO - Simulation of Urban MObility
|
the function-object for an editing operation (abstract base) More...
#include <GNEChange_Attribute.h>
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... | |
bool | trueChange () |
wether original and new value differ More... | |
~GNEChange_Attribute () | |
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... | |
Private Attributes | |
GNEAttributeCarrier * | myAC |
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... | |
friend class | |
GNEChange * | next |
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 *, GNEHierarchicalContainer > | myHierarchicalContainers |
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... | |
the function-object for an editing operation (abstract base)
Definition at line 32 of file GNEChange_Attribute.h.
GNEChange_Attribute::GNEChange_Attribute | ( | GNEAttributeCarrier * | ac, |
const SumoXMLAttr | key, | ||
const std::string & | value | ||
) |
constructor
[in] | ac | The attribute-carrier to be modified |
[in] | key | The attribute key |
[in] | value | The new value |
Definition at line 36 of file GNEChange_Attribute.cpp.
References toString().
GNEChange_Attribute::GNEChange_Attribute | ( | GNEAttributeCarrier * | ac, |
const SumoXMLAttr | key, | ||
const std::string & | value, | ||
const std::string & | customOrigValue | ||
) |
Constructor with custom origin value.
[in] | ac | The attribute-carrier to be modified |
[in] | key | The attribute key |
[in] | value | The new value |
[in] | customOrigValue | custom original value |
Definition at line 47 of file GNEChange_Attribute.cpp.
References GNEReferenceCounter::incRef(), myAC, myKey, and toString().
GNEChange_Attribute::~GNEChange_Attribute | ( | ) |
Destructor.
Definition at line 58 of file GNEChange_Attribute.cpp.
References GNEReferenceCounter::decRef(), GNEAttributeCarrier::getTagStr(), myAC, myKey, toString(), GNEReferenceCounter::unreferenced(), and WRITE_DEBUG.
|
inlineprotectedinherited |
add given element into parents and children (only use in redo() function)
Definition at line 128 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().
|
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().
void GNEChange_Attribute::forceChange | ( | ) |
force change
Definition at line 140 of file GNEChange_Attribute.cpp.
References myForceChange.
Referenced by GNEVType::setAttribute().
|
inherited |
get supermode
Definition at line 68 of file GNEChange.cpp.
References GNEChange::mySupermode.
Referenced by GNEUndoList::getRedoSupermode(), and GNEUndoList::getUndoSupermode().
|
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().
|
virtual |
redo action
Implements GNEChange.
Definition at line 106 of file GNEChange_Attribute.cpp.
References GNEAttributeCarrier::getAttribute(), GNENet::getAttributeCarriers(), GNETagProperties::getAttributeProperties(), GNEAttributeCarrier::getNet(), GNEAttributeCarrier::getTagProperty(), GNE_ATTR_DATASET, GNE_ATTR_SELECTED, GNETagProperties::hasAttribute(), GNETagProperties::isAdditionalElement(), GNETagProperties::isDataElement(), GNETagProperties::isDemandElement(), GNETagProperties::isGenericData(), GNETagProperties::isNetworkElement(), myAC, myKey, myNewValue, GNENet::requireSaveAdditionals(), GNENet::requireSaveDataElements(), GNENet::requireSaveDemandElements(), GNENet::requireSaveNet(), GNEAttributeProperties::requireUpdateGeometry(), GNENetHelper::AttributeCarriers::retrieveDataSet(), GNEAttributeCarrier::setAttribute(), SUMO_ATTR_ID, GNEDataSet::updateAttributeColors(), GNEAttributeCarrier::updateGeometry(), and WRITE_DEBUG.
|
virtual |
get Redo name
Implements GNEChange.
Definition at line 163 of file GNEChange_Attribute.cpp.
References GNEAttributeCarrier::getTagStr(), and myAC.
|
inlineprotectedinherited |
remove given element from parents and children (only use in redo() function)
Definition at line 171 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().
|
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().
|
virtualinherited |
Return the size of the command group.
Reimplemented in GNEChangeGroup.
Definition at line 61 of file GNEChange.cpp.
Referenced by GNEChangeGroup::size().
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::changeAttribute().
|
virtual |
undo action
Implements GNEChange.
Definition at line 72 of file GNEChange_Attribute.cpp.
References GNEAttributeCarrier::getAttribute(), GNENet::getAttributeCarriers(), GNETagProperties::getAttributeProperties(), GNEAttributeCarrier::getNet(), GNEAttributeCarrier::getTagProperty(), GNE_ATTR_DATASET, GNE_ATTR_SELECTED, GNETagProperties::hasAttribute(), GNETagProperties::isAdditionalElement(), GNETagProperties::isDataElement(), GNETagProperties::isDemandElement(), GNETagProperties::isGenericData(), GNETagProperties::isNetworkElement(), myAC, myKey, myOrigValue, GNENet::requireSaveAdditionals(), GNENet::requireSaveDataElements(), GNENet::requireSaveDemandElements(), GNENet::requireSaveNet(), GNEAttributeProperties::requireUpdateGeometry(), GNENetHelper::AttributeCarriers::retrieveDataSet(), GNEAttributeCarrier::setAttribute(), SUMO_ATTR_ID, GNEDataSet::updateAttributeColors(), GNEAttributeCarrier::updateGeometry(), and WRITE_DEBUG.
|
virtual |
return undoName
Implements GNEChange.
Definition at line 157 of file GNEChange_Attribute.cpp.
References GNEAttributeCarrier::getTagStr(), and myAC.
|
private |
the net to which all operations shall be applied
Definition at line 80 of file GNEChange_Attribute.h.
Referenced by GNEChange_Attribute(), redo(), redoName(), undo(), undoName(), and ~GNEChange_Attribute().
|
private |
flag used to force set attributes
Definition at line 86 of file GNEChange_Attribute.h.
Referenced by forceChange(), and trueChange().
|
protectedinherited |
we group antagonistic commands (create junction/delete junction) and keep them apart by this flag
Definition at line 216 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_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_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_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(), and GNEChange_TLS::undoName().
|
protectedinherited |
map with hierarchical container of all parent and children elements
Definition at line 225 of file GNEChange.h.
Referenced by GNEChange::GNEChange(), and GNEChange::restoreHierarchicalContainers().
|
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().
|
private |
the new value
Definition at line 92 of file GNEChange_Attribute.h.
Referenced by redo(), and trueChange().
|
protectedinherited |
Hierarchical container with parent and children.
Definition at line 222 of file GNEChange.h.
Referenced by GNEChange::addElementInParentsAndChildren(), GNEChange_DemandElement::redo(), GNEChange::removeElementFromParentsAndChildren(), and GNEChange_DemandElement::undo().
|
private |
the original value
Definition at line 89 of file GNEChange_Attribute.h.
Referenced by trueChange(), and undo().
|
protectedinherited |
flag for check if element is selected
Definition at line 219 of file GNEChange.h.
Referenced by GNEChange_Additional::redo(), GNEChange_Connection::redo(), GNEChange_Crossing::redo(), GNEChange_DemandElement::redo(), GNEChange_Edge::redo(), GNEChange_GenericData::redo(), GNEChange_Junction::redo(), GNEChange_Lane::redo(), GNEChange_Additional::undo(), GNEChange_Connection::undo(), GNEChange_Crossing::undo(), GNEChange_DemandElement::undo(), GNEChange_Edge::undo(), GNEChange_GenericData::undo(), GNEChange_Junction::undo(), and GNEChange_Lane::undo().
|
protectedinherited |
supermode related with this change
Definition at line 213 of file GNEChange.h.
Referenced by GNEChange::getSupermode().
|
privateinherited |
Definition at line 229 of file GNEChange.h.
Referenced by GNEUndoList::add(), GNEUndoList::clear(), GNEUndoList::cut(), GNEUndoList::end(), GNEChangeGroup::redo(), GNEUndoList::redo(), GNEChangeGroup::size(), GNEChangeGroup::undo(), GNEUndoList::undo(), and GNEChangeGroup::~GNEChangeGroup().