Path: blob/main/tools/neteditTestFunctions/files/save.py
169678 views
# -*- coding: utf-8 -*-1# Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo2# Copyright (C) 2009-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-later1213# @file save.py14# @author Pablo Alvarez Lopez15# @date 28-05-251617# imports18import time19from ..constants import TEXTTEST_SANDBOX20from ..enums.attributesEnum import attrs21from ..enums.viewPositions import positions22from ..input.keyboard import typeKey, typeTwoKeys, typeThreeKeys, updateText23from ..input.mouse import moveMouse242526def saveNewFile(referencePosition, element: str, extension: str, extensionIndex: int):27"""28@brief save new file29"""30filename = ""31if (element == "network"):32typeTwoKeys('ctrl', 's')33filename = "net2"34elif (element == "trafficLights"):35typeThreeKeys('ctrl', 'shift', 'k')36filename = "trafficlights2"37elif (element == "edgeTypes"):38typeThreeKeys('ctrl', 'shift', 'h')39filename = "edgetypes2"40elif (element == "additional"):41typeThreeKeys('ctrl', 'shift', 'a')42filename = "additionals2"43elif (element == "demand"):44typeThreeKeys('ctrl', 'shift', 'd')45filename = "routes2"46elif (element == "data"):47typeThreeKeys('ctrl', 'shift', 'b')48filename = "datas2"49elif (element == "meanData"):50typeThreeKeys('ctrl', 'shift', 'm')51filename = "meandatas2.dat"52elif (element == "xml"):53typeTwoKeys('ctrl', 'l')54filename = "net2"55elif (element == "sumoConfig"):56typeThreeKeys('ctrl', 'shift', 's')57filename = "sumo2"58elif (element == "neteditConfig"):59typeThreeKeys('ctrl', 'shift', 'e')60filename = "netedit2"61elif (element == "joinedJunctions"):62filename = "joinedjunctions2"63# move mouse (to avoid problems with file menu)64moveMouse(referencePosition, positions.reference, 200, 0, False)65# go to menu command66typeTwoKeys('alt', 'f')67for _ in range(attrs.toolbar.file.saveJoinedJunctions):68typeKey('down')69typeKey('space')70# wait for dialog71time.sleep(2)72# set folder73updateText(TEXTTEST_SANDBOX)74typeKey('enter')75# set extension76typeKey('tab')77for _ in range(0, extensionIndex):78typeKey('down')79typeTwoKeys('shift', 'tab')80# set file81updateText(filename + "." + extension)82typeKey('enter')83# wait for load84time.sleep(2)858687def saveExistentFile(element):88"""89@brief save existent element using shortcut (without opening a saving dialog)90"""91if (element == "network"):92typeTwoKeys('ctrl', 's')93elif (element == "additionals"):94typeThreeKeys('ctrl', 'shift', 'a')95elif (element == "demands"):96typeThreeKeys('ctrl', 'shift', 'd')97elif (element == "datas"):98typeThreeKeys('ctrl', 'shift', 'b')99elif (element == "meanDatas"):100typeThreeKeys('ctrl', 'shift', 'm')101elif (element == "sumoConfig"):102typeThreeKeys('ctrl', 'shift', 's')103elif (element == "neteditConfig"):104typeThreeKeys('ctrl', 'shift', 'e')105# wait for debug (due recomputing)106time.sleep(2)107108109def saveFileAs(referencePosition, type: str, multiple: bool):110"""111@brief save the given element type as112"""113# first obstain number of jumps and filename114menuJumps = 0115subMenuJumps = 0116filename = ""117extra = 0118if (multiple):119extra = 1120if (type == "network"):121menuJumps = attrs.toolbar.file.saveNetworkAs122filename = "net3.net.xml"123elif (type == "trafficLights"):124menuJumps = attrs.toolbar.file.trafficLights.menu125subMenuJumps = attrs.toolbar.file.trafficLights.saveAs + extra126filename = "trafficlights3.tll.xml"127elif (type == "edgeTypes"):128menuJumps = attrs.toolbar.file.edgeTypes.menu129subMenuJumps = attrs.toolbar.file.edgeTypes.saveAs + extra130filename = "edgetypes3.typ.xml"131elif (type == "additional"):132menuJumps = attrs.toolbar.file.aditionalElements.menu133subMenuJumps = attrs.toolbar.file.aditionalElements.saveAs + extra134filename = "additionals3.add.xml"135elif (type == "jupedsim"):136menuJumps = attrs.toolbar.file.aditionalElements.menu137subMenuJumps = attrs.toolbar.file.aditionalElements.saveJupedsim138filename = "additionals3.add.xml"139elif (type == "demand"):140menuJumps = attrs.toolbar.file.demandElements.menu141subMenuJumps = attrs.toolbar.file.demandElements.saveAs + extra142filename = "routes3.rou.xml"143elif (type == "data"):144menuJumps = attrs.toolbar.file.dataElements.menu145subMenuJumps = attrs.toolbar.file.dataElements.saveAs + extra146filename = "datas3.dat.xml"147elif (type == "meanData"):148menuJumps = attrs.toolbar.file.meanDataElements.menu149subMenuJumps = attrs.toolbar.file.meanDataElements.saveAs + extra150filename = "meandatas3.dat.add.xml"151elif (type == "sumoConfig"):152menuJumps = attrs.toolbar.file.sumoConfig.menu153subMenuJumps = attrs.toolbar.file.sumoConfig.saveAs154filename = "sumo3.sumocfg"155elif (type == "neteditConfig"):156menuJumps = attrs.toolbar.file.neteditConfig.menu157subMenuJumps = attrs.toolbar.file.neteditConfig.saveAs + extra158filename = "netedit3.netecfg"159# move mouse (to avoid problems with file menu)160moveMouse(referencePosition, positions.reference, 200, 0, False)161# go to menu command162typeTwoKeys('alt', 'f')163for _ in range(menuJumps):164typeKey('down')165typeKey('space')166if (subMenuJumps > 0):167for _ in range(subMenuJumps):168typeKey('down')169typeKey('space')170# wait for dialog171time.sleep(2)172updateText(TEXTTEST_SANDBOX)173typeKey('enter')174updateText(filename)175typeKey('enter')176# wait for load177time.sleep(2)178179180