Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
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

 ~GNEChange_Attribute ()
 Destructor.
 
inherited from GNEChange
std::string undoName () const
 get undo Name
 
std::string redoName () const
 get Redo name
 
void undo ()
 undo action
 
void redo ()
 redo action
 

Static Public Member Functions

static void changeAttribute (GNEAttributeCarrier *AC, SumoXMLAttr key, const std::string &value, const std::string &originalValue, GNEUndoList *undoList, const bool force=false)
 change attribute specifying original value
 
static void changeAttribute (GNEAttributeCarrier *AC, SumoXMLAttr key, const std::string &value, GNEUndoList *undoList, const bool force=false)
 change attribute
 

Private Member Functions

 GNEChange_Attribute (GNEAttributeCarrier *ac, const SumoXMLAttr key, const std::string &value)
 constructor
 
 GNEChange_Attribute (GNEAttributeCarrier *ac, const SumoXMLAttr key, const std::string &value, const std::string &customOrigValue)
 Constructor with custom origin value.
 
bool trueChange ()
 wether original and new value differ
 

Private Attributes

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

friend class

GNEChangenext
 
virtual int size () const
 Return the size of the command group.
 
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.
 
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
 
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

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

Definition at line 32 of file GNEChange_Attribute.h.

Constructor & Destructor Documentation

◆ ~GNEChange_Attribute()

◆ GNEChange_Attribute() [1/2]

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

constructor

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

Definition at line 178 of file GNEChange_Attribute.cpp.

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

◆ GNEChange_Attribute() [2/2]

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

Constructor with custom origin value.

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

Definition at line 189 of file GNEChange_Attribute.cpp.

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

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:

◆ changeAttribute() [1/2]

void GNEChange_Attribute::changeAttribute ( GNEAttributeCarrier AC,
SumoXMLAttr  key,
const std::string &  value,
const std::string &  originalValue,
GNEUndoList undoList,
const bool  force = false 
)
static

change attribute specifying original value

Parameters
[in]acThe attribute-carrier to be modified
[in]keyThe attribute key
[in]valueThe new value
[in]originalValueThe original value
[in]undoListThe undoList
[in]forceenable or disable force change attribute

Definition at line 62 of file GNEChange_Attribute.cpp.

References GNEUndoList::add(), GNEUndoList::begin(), GNEUndoList::end(), GNEViewParent::getGNEAppWindows(), GNEAttributeCarrier::getID(), GNEAttributeCarrier::getNet(), GNEAttributeCarrier::getTagStr(), GNENet::getViewNet(), GNEViewNet::getViewParent(), GNEApplicationWindow::isUndoRedoAllowed(), GNEAttributeCarrier::setAttribute(), TLF, and toString().

◆ changeAttribute() [2/2]

void GNEChange_Attribute::changeAttribute ( GNEAttributeCarrier AC,
SumoXMLAttr  key,
const std::string &  value,
GNEUndoList undoList,
const bool  force = false 
)
static

change attribute

Parameters
[in]acThe attribute-carrier to be modified
[in]keyThe attribute key
[in]valueThe new value
[in]undoListThe undoList
[in]forceenable or disable force change attribute

Definition at line 41 of file GNEChange_Attribute.cpp.

References TLF, and toString().

Referenced by GNEMultiEntryExitDetector::commitMoveShape(), GNERerouter::commitMoveShape(), GNETAZ::commitMoveShape(), GNETractionSubstation::commitMoveShape(), GNEVariableSpeedSign::commitMoveShape(), GNEStop::commitMoveShape(), GNEConnection::commitMoveShape(), GNECrossing::commitMoveShape(), GNEEdge::commitMoveShape(), GNELane::commitMoveShape(), GNEWalkingArea::commitMoveShape(), GNEPOI::commitMoveShape(), GNEPoly::commitMoveShape(), GNEJunction::invalidateTLS(), GNENet::joinSelectedJunctions(), GNEJunction::markAsModified(), GNENet::mergeJunctions(), GNERoute::GNERoutePopupMenu::onCmdApplyDistance(), GNEViewNet::onCmdSetCustomGeometryPoint(), GNETAZ::removeGeometryPoint(), GNEConnection::removeGeometryPoint(), GNECrossing::removeGeometryPoint(), GNEEdge::removeGeometryPoint(), GNEJunction::removeGeometryPoint(), GNELane::removeGeometryPoint(), GNEPoly::removeGeometryPoint(), GNENet::replaceIncomingEdge(), GNENet::restrictLane(), GNEAccess::setAttribute(), GNEBusStop::setAttribute(), GNECalibrator::setAttribute(), GNECalibratorFlow::setAttribute(), GNEChargingStation::setAttribute(), GNEClosingLaneReroute::setAttribute(), GNEClosingReroute::setAttribute(), GNEContainerStop::setAttribute(), GNEDestProbReroute::setAttribute(), GNEEntryExitDetector::setAttribute(), GNELaneAreaDetector::setAttribute(), GNEMultiEntryExitDetector::setAttribute(), GNEOverheadWire::setAttribute(), GNEParkingArea::setAttribute(), GNEParkingAreaReroute::setAttribute(), GNEParkingSpace::setAttribute(), GNERerouter::setAttribute(), GNERerouterInterval::setAttribute(), GNERouteProbe::setAttribute(), GNERouteProbReroute::setAttribute(), GNETAZ::setAttribute(), GNETAZSourceSink::setAttribute(), GNETractionSubstation::setAttribute(), GNEVaporizer::setAttribute(), GNEVariableSpeedSign::setAttribute(), GNEVariableSpeedSignStep::setAttribute(), GNEDataInterval::setAttribute(), GNEDataSet::setAttribute(), GNEEdgeData::setAttribute(), GNEEdgeRelData::setAttribute(), GNEMeanData::setAttribute(), GNETAZRelData::setAttribute(), GNEContainer::setAttribute(), GNEDistribution::setAttribute(), GNEPerson::setAttribute(), GNEPersonTrip::setAttribute(), GNERide::setAttribute(), GNERoute::setAttribute(), GNEStop::setAttribute(), GNEStopPlan::setAttribute(), GNETranship::setAttribute(), GNETransport::setAttribute(), GNEVehicle::setAttribute(), GNEVType::setAttribute(), GNEWalk::setAttribute(), GNEConnection::setAttribute(), GNECrossing::setAttribute(), GNEEdge::setAttribute(), GNEJunction::setAttribute(), GNELane::setAttribute(), GNEWalkingArea::setAttribute(), GNEPOI::setAttribute(), GNEPoly::setAttribute(), GNEAttributeCarrier::setCommonAttribute(), GNEDetector::setDetectorAttribute(), GNEDemandElementFlow::setFlowAttribute(), GNEJunction::setJunctionType(), GNEJunction::setLogicValid(), GNEEdge::setNumLanes(), GNEDemandElementPlan::setPlanAttribute(), GNENet::splitEdge(), and GNENet::splitJunction().

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

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

◆ redo()

◆ redoName()

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

get Redo name

Implements GNEChange.

Definition at line 173 of file GNEChange_Attribute.cpp.

References GNEAttributeCarrier::getTagStr(), myAC, 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 GNEChange::size ( ) const
virtualinherited

Return the size of the command group.

Reimplemented in GNEChangeGroup.

Definition at line 61 of file GNEChange.cpp.

Referenced by GNEUndoList::currentCommandGroupSize(), and GNEChangeGroup::size().

Here is the caller graph for this function:

◆ trueChange()

bool GNEChange_Attribute::trueChange ( )
private

wether original and new value differ

Definition at line 201 of file GNEChange_Attribute.cpp.

References myForceChange, myNewValue, and myOrigValue.

◆ undo()

◆ undoName()

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

get undo Name

Implements GNEChange.

Definition at line 167 of file GNEChange_Attribute.cpp.

References GNEAttributeCarrier::getTagStr(), myAC, and TL.

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 81 of file GNEChange_Attribute.h.

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

◆ myForceChange

bool GNEChange_Attribute::myForceChange
private

flag used to force set attributes

Definition at line 87 of file GNEChange_Attribute.h.

Referenced by trueChange().

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

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

◆ myKey

const SumoXMLAttr GNEChange_Attribute::myKey
private

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

Definition at line 84 of file GNEChange_Attribute.h.

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

◆ myNewValue

const std::string GNEChange_Attribute::myNewValue
private

the new value

Definition at line 93 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 90 of file GNEChange_Attribute.h.

Referenced by trueChange(), and undo().

◆ mySelectedElement

◆ mySupermode

const Supermode GNEChange::mySupermode
protectedinherited

supermode related with this change

Definition at line 209 of file GNEChange.h.

Referenced by GNEChange::getSupermode().

◆ next


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