Path: blob/main/src/netedit/changes/GNEChange_TAZSourceSink.cpp
169678 views
/****************************************************************************/1// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo2// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.3// This program and the accompanying materials are made available under the4// terms of the Eclipse Public License 2.0 which is available at5// https://www.eclipse.org/legal/epl-2.0/6// This Source Code may also be made available under the following Secondary7// Licenses when the conditions for such availability set forth in the Eclipse8// Public License 2.0 are satisfied: GNU General Public License, version 29// or later which is available at10// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html11// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later12/****************************************************************************/13/// @file GNEChange_TAZSourceSink.cpp14/// @author Pablo Alvarez Lopez15/// @date Nov 201516///17// A network change in which a busStop is created or deleted18/****************************************************************************/1920#include <netedit/GNENet.h>21#include <netedit/GNEViewNet.h>22#include <netedit/GNEViewParent.h>23#include <netedit/GNEApplicationWindow.h>2425#include "GNEChange_TAZSourceSink.h"2627// ===========================================================================28// FOX-declarations29// ===========================================================================3031FXIMPLEMENT_ABSTRACT(GNEChange_TAZSourceSink, GNEChange, nullptr, 0)3233// ===========================================================================34// member method definitions35// ===========================================================================3637GNEChange_TAZSourceSink::GNEChange_TAZSourceSink(GNETAZSourceSink* sourceSink, bool forward) :38GNEChange(Supermode::NETWORK, sourceSink, forward, sourceSink->isAttributeCarrierSelected()),39mySourceSink(sourceSink) {40mySourceSink->incRef("GNEChange_TAZSourceSink");41}424344GNEChange_TAZSourceSink::~GNEChange_TAZSourceSink() {45// only continue we have undo-redo mode enabled46if (mySourceSink->getNet()->getViewNet()->getViewParent()->getGNEAppWindows()->isUndoRedoAllowed()) {47mySourceSink->decRef("GNEChange_TAZSourceSink");48if (mySourceSink->unreferenced()) {49// make sure that sourceSink isn't in net before removing50if (mySourceSink->getNet()->getAttributeCarriers()->retrieveTAZSourceSink(mySourceSink, false)) {51// delete sourceSink from net52mySourceSink->getNet()->getAttributeCarriers()->deleteTAZSourceSink(mySourceSink);53}54delete mySourceSink;55}56}57}585960void61GNEChange_TAZSourceSink::undo() {62if (myForward) {63// delete sourceSink from net64mySourceSink->getNet()->getAttributeCarriers()->deleteTAZSourceSink(mySourceSink);65// remove element from parent and children66removeElementFromParentsAndChildren(mySourceSink);67} else {68// add element in parent and children69addElementInParentsAndChildren(mySourceSink);70// insert sourceSink into net71mySourceSink->getNet()->getAttributeCarriers()->insertTAZSourceSink(mySourceSink);72}73// require always save sourceSinks74mySourceSink->getNet()->getSavingStatus()->requireSaveAdditionals();75}767778void79GNEChange_TAZSourceSink::redo() {80if (myForward) {81// select if mySelectedElement is enabled82if (mySelectedElement) {83mySourceSink->selectAttributeCarrier();84}85// add element in parent and children86addElementInParentsAndChildren(mySourceSink);87// insert sourceSink into net88mySourceSink->getNet()->getAttributeCarriers()->insertTAZSourceSink(mySourceSink);89} else {90// delete sourceSink from net91mySourceSink->getNet()->getAttributeCarriers()->deleteTAZSourceSink(mySourceSink);92// remove element from parent and children93removeElementFromParentsAndChildren(mySourceSink);94}95// require always save sourceSinks96mySourceSink->getNet()->getSavingStatus()->requireSaveAdditionals();97}9899100std::string101GNEChange_TAZSourceSink::undoName() const {102if (myForward) {103return (TL("Undo create ") + mySourceSink->getTagStr() + " '" + mySourceSink->getID() + "'");104} else {105return (TL("Undo delete ") + mySourceSink->getTagStr() + " '" + mySourceSink->getID() + "'");106}107}108109110std::string111GNEChange_TAZSourceSink::redoName() const {112if (myForward) {113return (TL("Redo create ") + mySourceSink->getTagStr() + " '" + mySourceSink->getID() + "'");114} else {115return (TL("Redo delete ") + mySourceSink->getTagStr() + " '" + mySourceSink->getID() + "'");116}117}118119120