Path: blob/main/src/netedit/changes/GNEChange_MeanData.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_MeanData.cpp14/// @author Pablo Alvarez Lopez15/// @date Nov 202216///17// A network change in which a mean data set is created or deleted18/****************************************************************************/1920#include <netedit/GNENet.h>21#include <netedit/GNETagProperties.h>22#include <netedit/GNEViewNet.h>23#include <netedit/GNEViewParent.h>24#include <netedit/GNEApplicationWindow.h>25#include <netedit/elements/data/GNEMeanData.h>2627#include "GNEChange_MeanData.h"2829// ===========================================================================30// FOX-declarations31// ===========================================================================32FXIMPLEMENT_ABSTRACT(GNEChange_MeanData, GNEChange, nullptr, 0)3334// ===========================================================================35// member method definitions36// ===========================================================================3738GNEChange_MeanData::GNEChange_MeanData(GNEMeanData* meanData, bool forward) :39GNEChange(Supermode::DATA, forward, meanData->isAttributeCarrierSelected()),40myMeanData(meanData) {41myMeanData->incRef("GNEChange_MeanData");42}434445GNEChange_MeanData::~GNEChange_MeanData() {46// only continue we have undo-redo mode enabled47if (myMeanData->getNet()->getViewNet()->getViewParent()->getGNEAppWindows()->isUndoRedoAllowed()) {48myMeanData->decRef("GNEChange_MeanData");49if (myMeanData->unreferenced()) {50// make sure that MeanData isn't in net before removing51if (myMeanData->getNet()->getAttributeCarriers()->retrieveMeanData(myMeanData->getTagProperty()->getTag(), myMeanData->getID(), false)) {52// delete MeanData from net53myMeanData->getNet()->getAttributeCarriers()->deleteMeanData(myMeanData);54}55// delete mean data56delete myMeanData;57}58}59}606162void63GNEChange_MeanData::undo() {64if (myForward) {65// unselect if mySelectedElement is enabled66if (mySelectedElement) {67myMeanData->unselectAttributeCarrier();68}69// delete meanData from net70myMeanData->getNet()->getAttributeCarriers()->deleteMeanData(myMeanData);71} else {72// select if mySelectedElement is enabled73if (mySelectedElement) {74myMeanData->selectAttributeCarrier();75}76// insert meanData into net77myMeanData->getNet()->getAttributeCarriers()->insertMeanData(myMeanData);78}79// require always save elements80myMeanData->getNet()->getSavingStatus()->requireSaveMeanDatas();81}828384void85GNEChange_MeanData::redo() {86if (myForward) {87// select if mySelectedElement is enabled88if (mySelectedElement) {89myMeanData->selectAttributeCarrier();90}91// insert meanData into net92myMeanData->getNet()->getAttributeCarriers()->insertMeanData(myMeanData);93} else {94// unselect if mySelectedElement is enabled95if (mySelectedElement) {96myMeanData->unselectAttributeCarrier();97}98// delete meanData from net99myMeanData->getNet()->getAttributeCarriers()->deleteMeanData(myMeanData);100}101// require always save elements102myMeanData->getNet()->getSavingStatus()->requireSaveMeanDatas();103}104105106std::string107GNEChange_MeanData::undoName() const {108if (myForward) {109return (TL("Undo create ") + myMeanData->getTagStr());110} else {111return (TL("Undo delete ") + myMeanData->getTagStr());112}113}114115116std::string117GNEChange_MeanData::redoName() const {118if (myForward) {119return (TL("Redo create ") + myMeanData->getTagStr());120} else {121return (TL("Redo delete ") + myMeanData->getTagStr());122}123}124125126