30#include <netedit/templates.h>
37#include <xercesc/parsers/SAXParser.hpp>
38#include <xercesc/sax/AttributeList.hpp>
39#include <xercesc/sax/HandlerBase.hpp>
40#include <xercesc/sax/SAXException.hpp>
41#include <xercesc/sax/SAXParseException.hpp>
52 myApplicationWindow(applicationWindow) {
59 myPythonToolBarShellMenu =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
69 myPythonToolBarShellSuperModes =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
70 myPythonToolBarShellSaveElements =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
71 myPythonToolBarShellTimeFormat =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
72 myPythonToolBarShellNavigation =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
73 myPythonToolBarShellModes =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
74 myPythonToolBarShellIntervalBar =
new FXToolBarShell(myApplicationWindow,
GUIDesignToolBar);
95 saveElements->create();
99 intervalBar->create();
101 myPythonToolBarShellSuperModes->create();
102 myPythonToolBarShellSaveElements->create();
103 myPythonToolBarShellTimeFormat->create();
104 myPythonToolBarShellNavigation->create();
105 myPythonToolBarShellModes->create();
106 myPythonToolBarShellIntervalBar->create();
108 myApplicationWindow->getTopDock()->recalc();
122 delete myPythonToolBarShellSuperModes;
123 delete myPythonToolBarShellSaveElements;
124 delete myPythonToolBarShellTimeFormat;
125 delete myPythonToolBarShellNavigation;
126 delete myPythonToolBarShellModes;
127 delete myPythonToolBarShellIntervalBar;
129 myApplicationWindow->getTopDock()->recalc();
137 myRecentNetworks(applicationWindow->getApp(),
TL(
"nets")),
138 myRecentConfigs(applicationWindow->getApp(),
TL(
"configs")),
139 myApplicationWindow(applicationWindow) {
156 new FXMenuSeparator(fileMenuRecentNetworkFiles);
160 myRecentNetworks.setTarget(myApplicationWindow);
162 new FXMenuCascade(fileMenu,
TL(
"Recent Networks"),
nullptr, fileMenuRecentNetworkFiles);
179 new FXMenuSeparator(fileMenuRecentConfigFiles);
183 myRecentConfigs.setTarget(myApplicationWindow);
185 new FXMenuCascade(fileMenu,
TL(
"Recent Configs"),
nullptr, fileMenuRecentConfigFiles);
193 myApplicationWindow(applicationWindow) {
199 FXMenuPane* fileMenuSumoConfig, FXMenuPane* fileMenuTLS, FXMenuPane* fileMenuEdgeTypes, FXMenuPane* fileMenuAdditionals,
200 FXMenuPane* fileMenuDemandElements, FXMenuPane* fileMenuDataElements, FXMenuPane* fileMenuMeanDataElements) {
203 TL(
"New Network"),
"Ctrl+N",
TL(
"Create a new network."),
207 TL(
"New Window"),
"Ctrl+Shift+N",
TL(
"Open a new netedit window."),
211 TL(
"Generate Network"),
"",
TL(
"Create network using netgenerate."),
215 new FXMenuSeparator(fileMenu);
218 TL(
"Load Netedit config..."),
"Ctrl+E",
TL(
"Load a netedit configuration file."),
222 TL(
"Load Sumo config..."),
"Ctrl+M",
TL(
"Load a SUMO configuration file."),
226 new FXMenuSeparator(fileMenu);
229 TL(
"Open Network..."),
"Ctrl+O",
TL(
"Open a SUMO network."),
233 TL(
"Open Netconvert Configuration..."),
"Ctrl+Shift+O",
TL(
"Open a configuration file with NETCONVERT options."),
237 TL(
"Import Foreign Network..."),
"",
TL(
"Import a foreign network such as OSM."),
241 new FXMenuSeparator(fileMenu);
244 TL(
"Save Network"),
"Ctrl+S",
TL(
"Save the network."),
248 TL(
"Save Network As..."),
"",
TL(
"Save the network to another file."),
252 TL(
"Save Plain XML..."),
"Ctrl+L",
TL(
"Save a plain XML representation of the network."),
256 TL(
"Save Joined Junctions..."),
"",
TL(
"Save log of joined junctions (allows reproduction of joins)."),
260 new FXMenuSeparator(fileMenu);
263 TL(
"Reload"),
"Ctrl+R",
TL(
"Reload the network."),
267 TL(
"Reload Network"),
"",
TL(
"Reload the network."),
270 new FXMenuSeparator(fileMenu);
273 buildNeteditConfigSection(fileMenuNeteditConfig);
277 buildSumoConfigSection(fileMenuSumoConfig);
281 buildTrafficLightSection(fileMenuTLS);
285 buildEdgeTypeSection(fileMenuEdgeTypes);
289 buildAdditionalSection(fileMenuAdditionals);
293 buildDemandSection(fileMenuDemandElements);
297 buildDataSection(fileMenuDataElements);
301 buildMeanDataSection(fileMenuMeanDataElements);
305 new FXMenuSeparator(fileMenu);
307 TL(
"Allow undoing element loading"),
TL(
"Allow to undo loading of elements (Slow if a lot of elements are loaded)"),
310 menuCheckAllowUndoRedoLoading->setCheck(myApplicationWindow->getApp()->reg().readBoolEntry(
"NETEDIT",
"AllowUndoRedoLoading",
true));
313 new FXMenuSeparator(fileMenu);
315 TL(
"Close"),
"Ctrl+W",
TL(
"Close the network."),
322 mySumoConfigMenuCascade->enable();
323 myNeteditConfigMenuCascade->enable();
324 myTLSMenuCascade->enable();
325 myEdgeTypesMenuCascade->enable();
326 myAdditionalMenuCascade->enable();
327 myDemandMenuCascade->enable();
328 myDataMenuCascade->enable();
329 myMeanDataMenuCascade->enable();
335 mySumoConfigMenuCascade->disable();
336 myNeteditConfigMenuCascade->disable();
337 myTLSMenuCascade->disable();
338 myEdgeTypesMenuCascade->disable();
339 myAdditionalMenuCascade->disable();
340 myDemandMenuCascade->disable();
341 myDataMenuCascade->disable();
342 myMeanDataMenuCascade->disable();
348 myTLSMenuCascade->show();
349 myDataMenuCascade->show();
350 myMeanDataMenuCascade->show();
356 myTLSMenuCascade->hide();
357 myDataMenuCascade->hide();
358 myMeanDataMenuCascade->hide();
365 TL(
"Save Netedit Config"),
"Ctrl+Shift+E",
TL(
"Save netedit configuration file."),
369 TL(
"Save Netedit Config As..."),
"",
TL(
"Save netedit configuration in a new file."),
372 new FXMenuSeparator(menuPane);
375 TL(
"Reload Netedit Config"),
"",
TL(
"Reload netedit configuration."),
383 TL(
"Save Sumo Config"),
"Ctrl+Shift+S",
TL(
"Save sumo configuration file."),
387 TL(
"Save Sumo Config As..."),
"",
TL(
"Save sumo configuration in a new file."),
390 new FXMenuSeparator(menuPane);
393 TL(
"Reload Sumo Config"),
"",
TL(
"Reload sumo configuration."),
401 TL(
"Load TLS Programs..."),
"Ctrl+K",
TL(
"Load programs for traffic lights in the current net."),
404 new FXMenuSeparator(menuPane);
407 TL(
"Save TLS Programs"),
"Ctrl+Shift+K",
TL(
"Save all traffic light programs of the current network."),
411 TL(
"Save TLS Programs As..."),
"",
TL(
"Save all traffic light programs of the current network to another file."),
414 new FXMenuSeparator(menuPane);
417 TL(
"Reload TLS Programs"),
"",
TL(
"Reload TLS Programs."),
425 TL(
"Load Edge Types..."),
"Ctrl+H",
TL(
"Load edge types in the current net."),
428 new FXMenuSeparator(menuPane);
431 TL(
"Save Edge Types"),
"Ctrl+Shift+H",
TL(
"Save edge types of the current net."),
435 TL(
"Save Edge Types As..."),
"",
TL(
"Save edge types of the current net to another file."),
438 new FXMenuSeparator(menuPane);
441 TL(
"Reload edge types"),
"",
TL(
"Reload edge types."),
449 TL(
"Load Additionals..."),
"Ctrl+A",
TL(
"Load additionals and shapes."),
452 new FXMenuSeparator(menuPane);
455 TL(
"Save Additionals"),
"Ctrl+Shift+A",
TL(
"Save additionals and shapes."),
459 TL(
"Save Additionals unified as..."),
"",
TL(
"Save all additional elements to the chosen file."),
463 TL(
"Save JuPedSim Elements as..."),
"",
TL(
"Save JuPedSim elements in a separated file."),
466 new FXMenuSeparator(menuPane);
469 TL(
"Reload Additionals"),
"",
TL(
"Reload additionals."),
477 TL(
"Load Demand Elements..."),
"Ctrl+D",
TL(
"Load demand elements."),
480 new FXMenuSeparator(menuPane);
483 TL(
"Save Demand Elements"),
"Ctrl+Shift+D",
TL(
"Save demand elements."),
487 TL(
"Save Demand Elements unified as..."),
"",
TL(
"Save all demand elements to the chosen file"),
490 new FXMenuSeparator(menuPane);
493 TL(
"Reload Demand Elements"),
"",
TL(
"Reload demand elements."),
501 TL(
"Load Data Elements..."),
"Ctrl+B",
TL(
"Load data elements."),
504 new FXMenuSeparator(menuPane);
507 TL(
"Save Data Elements"),
"Ctrl+Shift+B",
TL(
"Save data elements."),
511 TL(
"Save Data Elements unified as..."),
"",
TL(
"Save all data elements to the chosen file."),
514 new FXMenuSeparator(menuPane);
517 TL(
"Reload Data Elements"),
"",
TL(
"Reload data elements."),
525 TL(
"Load MeanDatas..."),
"",
TL(
"Load meanDatas and shapes."),
528 new FXMenuSeparator(menuPane);
531 TL(
"Save MeanDatas"),
"",
TL(
"Save meanDatas and shapes."),
535 TL(
"Save MeanDatas unified as..."),
"Ctrl+Shift+M",
TL(
"Save all meanData elements to the chosen file."),
538 new FXMenuSeparator(menuPane);
541 TL(
"Reload MeanDatas"),
"",
TL(
"Reload meanDatas."),
550 myModesMenuCommandsParent(modesMenuCommandsParent) {
558 TL(
"&Inspect"),
"I",
TL(
"Inspect elements and change their attributes."),
561 TL(
"&Delete"),
"D",
TL(
"Delete elements."),
564 TL(
"&Select"),
"S",
TL(
"Select elements."),
573 myModesMenuCommandsParent(modesMenuCommandsParent) {
579 createEdgeMode->show();
582 prohibitionMode->show();
584 additionalMode->show();
585 crossingMode->show();
595 createEdgeMode->hide();
598 prohibitionMode->hide();
600 additionalMode->hide();
601 crossingMode->hide();
613 TL(
"&Move"),
"M",
TL(
"Move elements."),
617 TL(
"&Edge"),
"E",
TL(
"Create junction and edges."),
621 TL(
"&Traffic light"),
"T",
TL(
"Modes traffic lights over junctions."),
625 TL(
"&Connection"),
"C",
TL(
"Modes connections between lanes."),
629 TL(
"Pro&hibition"),
"H",
TL(
"Modes connection prohibitions."),
633 TL(
"C&rossing"),
"R",
TL(
"Create crossings between edges."),
637 TL(
"&Additional"),
"A",
TL(
"Create additional elements."),
641 TL(
"&Wire"),
"W",
TL(
"Create wires."),
645 TL(
"TA&Z"),
"Z",
TL(
"Create Traffic Assignment Zones."),
649 TL(
"&POI-Poly"),
"P",
TL(
"Create Points-Of-Interest and polygons."),
653 TL(
"Deca&ls"),
"U",
TL(
"Create decals."),
663 myModesMenuCommandsParent(modesMenuCommandsParent) {
671 routeDistributionMode->show();
674 typeDistributionMode->show();
677 personPlanMode->show();
678 containerMode->show();
679 containerPlanMode->show();
687 routeDistributionMode->hide();
690 typeDistributionMode->hide();
693 personPlanMode->hide();
694 containerMode->hide();
695 containerPlanMode->hide();
703 TL(
"&Move"),
"M",
TL(
"Move elements."),
706 TL(
"Route"),
"R",
TL(
"Create Routes."),
709 TL(
"Route distribution"),
"W",
TL(
"Create and edit route distributions."),
713 TL(
"Vehicle"),
"V",
TL(
"Create vehicles."),
716 TL(
"Type"),
"T",
TL(
"Create types (vehicles, person and containers)."),
719 TL(
"TypeDistribution"),
"U",
TL(
"Create and edit type distributions."),
722 TL(
"Stop"),
"A",
TL(
"Create stops."),
725 TL(
"Person"),
"P",
TL(
"Create persons."),
728 TL(
"Person plan"),
"L",
TL(
"Create person plans."),
731 TL(
"Container"),
"C",
TL(
"Create containers."),
734 TL(
"Container plan"),
"H",
TL(
"Create container plans."),
743 myModesMenuCommandsParent(modesMenuCommandsParent) {
769 TL(
"&EdgeData"),
"E",
TL(
"Create edgeData elements."),
772 TL(
"Edge&Relation"),
"R",
TL(
"Create edgeRelation elements."),
775 TL(
"TA&ZRelation"),
"Z",
TL(
"Create TAZRelation elements."),
778 TL(
"&MeanData"),
"M",
TL(
"Create MeanData edge/lanes."),
788#pragma warning(disable: 4355)
804 commonMenuCommands.buildCommonMenuCommands(modesMenu);
806 networkMenuCommands.buildNetworkMenuCommands(modesMenu);
807 networkMenuCommands.hideNetworkMenuCommands();
809 demandMenuCommands.buildDemandMenuCommands(modesMenu);
810 demandMenuCommands.hideDemandMenuCommands();
812 dataMenuCommands.buildDataMenuCommands(modesMenu);
813 dataMenuCommands.hideDataMenuCommands();
820 networkMenuCommands.showNetworkMenuCommands();
822 demandMenuCommands.showDemandMenuCommands();
824 dataMenuCommands.showDataMenuCommands();
832 networkMenuCommands.connectMode->hide();
833 networkMenuCommands.TLSMode->hide();
834 networkMenuCommands.prohibitionMode->hide();
835 networkMenuCommands.wireMode->hide();
836 networkMenuCommands.decalMode->hide();
838 demandMenuCommands.moveMode->hide();
839 demandMenuCommands.vehicleMode->hide();
840 demandMenuCommands.stopMode->hide();
841 demandMenuCommands.containerMode->hide();
842 demandMenuCommands.containerPlanMode->hide();
844 dataMenuCommands.hideDataMenuCommands();
853 myApplicationWindow(applicationWindow) {
861 TL(
"Show grid"),
"Ctrl+G or Alt+1",
"",
866 TL(
"Hide junction shape"),
"Ctrl+J or Alt+2",
"",
871 TL(
"Draw vehicles spread in lane or in depart position"),
"Alt+3",
"",
876 TL(
"Show demand elements"),
"Alt+4",
"",
881 TL(
"Clicking should target lanes"),
"Alt+5",
"",
886 TL(
"Show connections over junctions"),
"Alt+6",
"",
891 TL(
"Hide connections"),
"Alt+7",
"",
896 TL(
"Show sub-additional elements"),
"Alt+8",
"",
901 TL(
"Show TAZ elements"),
"Alt+9",
"",
906 TL(
"Selecting multiple edges automatically select their junctions"),
"Alt+10",
"",
911 TL(
"Clicking should apply state changes to all phases of TLS plan"),
"Alt+5",
"",
916 TL(
"Don't ask for confirmation before merging junction"),
"Alt+5",
"",
921 TL(
"Create consecutive edges"),
"Alt+5",
"",
926 TL(
"Create an edge in the opposite direction"),
"Alt+6",
"",
931 TL(
"Apply mouse movement to elevation"),
"Alt+7",
"",
936 TL(
"Show bubbles over junctions shapes"),
"Alt+8",
"",
941 TL(
"Show polygon symbols"),
"Alt+9",
"",
944 menuCheckShowPolygonSymbols->setCheck(TRUE);
947 separator =
new FXMenuSeparator(editMenu);
953 menuCheckToggleGrid->hide();
954 menuCheckToggleDrawJunctionShape->hide();
955 menuCheckDrawSpreadVehicles->hide();
956 menuCheckShowDemandElements->hide();
957 menuCheckSelectEdges->hide();
958 menuCheckShowConnections->hide();
959 menuCheckHideConnections->hide();
960 menuCheckShowAdditionalSubElements->hide();
961 menuCheckShowTAZElements->hide();
962 menuCheckExtendSelection->hide();
963 menuCheckChangeAllPhases->hide();
964 menuCheckMergeAutomatically->hide();
965 menuCheckShowJunctionBubble->hide();
966 menuCheckMoveElevation->hide();
967 menuCheckChainEdges->hide();
968 menuCheckAutoOppositeEdge->hide();
969 menuCheckShowPolygonSymbols->hide();
978 if (menuCheckDrawSpreadVehicles->shown()) {
979 menuCheckDrawSpreadVehicles->setAccelText((
"Alt+" +
toString(index)).c_str());
982 if (menuCheckDrawSpreadVehicles->shown()) {
983 menuCheckDrawSpreadVehicles->setAccelText((
"Alt+" +
toString(index)).c_str());
986 if (menuCheckShowDemandElements->shown()) {
987 menuCheckShowDemandElements->setAccelText((
"Alt+" +
toString(index)).c_str());
990 if (menuCheckSelectEdges->shown()) {
991 menuCheckSelectEdges->setAccelText((
"Alt+" +
toString(index)).c_str());
994 if (menuCheckShowConnections->shown()) {
995 menuCheckShowConnections->setAccelText((
"Alt+" +
toString(index)).c_str());
998 if (menuCheckHideConnections->shown()) {
999 menuCheckHideConnections->setAccelText((
"Alt+" +
toString(index)).c_str());
1002 if (menuCheckShowAdditionalSubElements->shown()) {
1003 menuCheckShowAdditionalSubElements->setAccelText((
"Alt+" +
toString(index)).c_str());
1006 if (menuCheckShowTAZElements->shown()) {
1007 menuCheckShowTAZElements->setAccelText((
"Alt+" +
toString(index)).c_str());
1010 if (menuCheckExtendSelection->shown()) {
1011 menuCheckExtendSelection->setAccelText((
"Alt+" +
toString(index)).c_str());
1014 if (menuCheckChangeAllPhases->shown()) {
1015 menuCheckChangeAllPhases->setAccelText((
"Alt+" +
toString(index)).c_str());
1018 if (menuCheckMergeAutomatically->shown()) {
1019 menuCheckMergeAutomatically->setAccelText((
"Alt+" +
toString(index)).c_str());
1022 if (menuCheckChainEdges->shown()) {
1023 menuCheckChainEdges->setAccelText((
"Alt+" +
toString(index)).c_str());
1026 if (menuCheckAutoOppositeEdge->shown()) {
1027 menuCheckAutoOppositeEdge->setAccelText((
"Alt+" +
toString(index)).c_str());
1030 if (menuCheckMoveElevation->shown()) {
1031 menuCheckMoveElevation->setAccelText((
"Alt+" +
toString(index)).c_str());
1034 if (menuCheckShowJunctionBubble->shown()) {
1035 menuCheckShowJunctionBubble->setAccelText((
"Alt+" +
toString(index)).c_str());
1038 if (menuCheckShowPolygonSymbols->shown()) {
1039 menuCheckShowPolygonSymbols->setAccelText((
"Alt+" +
toString(index)).c_str());
1057 TL(
"Show grid"),
"Ctrl+G or Alt+1",
"",
1062 TL(
"Hide junction shape"),
"Ctrl+J or Alt+2",
"",
1067 TL(
"Draw vehicles spread/depart position"),
"Alt+3",
"",
1072 TL(
"Show shapes"),
"Alt+4",
"",
1077 TL(
"Show all trips"),
"Alt+5",
"",
1082 TL(
"Show all person plans"),
"Alt+6",
"",
1087 TL(
"Lock selected person"),
"Alt+7",
"",
1092 TL(
"Show all container plans"),
"Alt+6",
"",
1097 TL(
"Lock selected container"),
"Alt+7",
"",
1102 TL(
"Show non-inspected demand elements"),
"Alt+8",
"",
1107 TL(
"Show number of overlapped routes"),
"Alt+9",
"",
1112 separator =
new FXMenuSeparator(editMenu);
1118 menuCheckToggleGrid->hide();
1119 menuCheckToggleDrawJunctionShape->hide();
1120 menuCheckDrawSpreadVehicles->hide();
1121 menuCheckHideShapes->hide();
1122 menuCheckShowAllTrips->hide();
1123 menuCheckHideNonInspectedDemandElements->hide();
1124 menuCheckShowOverlappedRoutes->hide();
1125 menuCheckShowAllPersonPlans->hide();
1126 menuCheckLockPerson->hide();
1127 menuCheckShowAllContainerPlans->hide();
1128 menuCheckLockContainer->hide();
1137 if (menuCheckDrawSpreadVehicles->shown()) {
1138 menuCheckDrawSpreadVehicles->setAccelText((
"Alt+" +
toString(index)).c_str());
1141 if (menuCheckHideShapes->shown()) {
1142 menuCheckHideShapes->setAccelText((
"Alt+" +
toString(index)).c_str());
1145 if (menuCheckShowAllTrips->shown()) {
1146 menuCheckShowAllTrips->setAccelText((
"Alt+" +
toString(index)).c_str());
1149 if (menuCheckHideNonInspectedDemandElements->shown()) {
1150 menuCheckHideNonInspectedDemandElements->setAccelText((
"Alt+" +
toString(index)).c_str());
1153 if (menuCheckShowOverlappedRoutes->shown()) {
1154 menuCheckShowOverlappedRoutes->setAccelText((
"Alt+" +
toString(index)).c_str());
1157 if (menuCheckShowAllPersonPlans->shown()) {
1158 menuCheckShowAllPersonPlans->setAccelText((
"Alt+" +
toString(index)).c_str());
1161 if (menuCheckLockPerson->shown()) {
1162 menuCheckLockPerson->setAccelText((
"Alt+" +
toString(index)).c_str());
1165 if (menuCheckShowAllContainerPlans->shown()) {
1166 menuCheckShowAllContainerPlans->setAccelText((
"Alt+" +
toString(index)).c_str());
1169 if (menuCheckLockContainer->shown()) {
1170 menuCheckLockContainer->setAccelText((
"Alt+" +
toString(index)).c_str());
1188 TL(
"Hide junction shape"),
"Ctrl+J or Alt+1",
"",
1193 TL(
"Show additionals"),
"Alt+2",
"",
1198 TL(
"Show shapes"),
"Alt+3",
"",
1203 TL(
"Show demand elements"),
"Alt+4",
"",
1208 TL(
"Draw TAZRel from center"),
"Alt+5",
"",
1213 TL(
"Draw TAZ fill"),
"Alt+6",
"",
1218 TL(
"Only draw TAZRel from"),
"Alt+6",
"",
1223 TL(
"Only draw TAZRel to"),
"Alt+7",
"",
1227 separator =
new FXMenuSeparator(editMenu);
1233 menuCheckToggleDrawJunctionShape->hide();
1234 menuCheckShowAdditionals->hide();
1235 menuCheckShowShapes->hide();
1236 menuCheckShowDemandElements->hide();
1237 menuCheckToggleTAZRelDrawing->hide();
1238 menuCheckToggleTAZDrawFill->hide();
1239 menuCheckToggleTAZRelOnlyFrom->hide();
1240 menuCheckToggleTAZRelOnlyTo->hide();
1249 if (menuCheckShowAdditionals->shown()) {
1250 menuCheckShowAdditionals->setAccelText((
"Alt+" +
toString(index)).c_str());
1253 if (menuCheckShowShapes->shown()) {
1254 menuCheckShowShapes->setAccelText((
"Alt+" +
toString(index)).c_str());
1257 if (menuCheckShowDemandElements->shown()) {
1258 menuCheckShowDemandElements->setAccelText((
"Alt+" +
toString(index)).c_str());
1261 if (menuCheckToggleTAZRelDrawing->shown()) {
1262 menuCheckToggleTAZRelDrawing->setAccelText((
"Alt+" +
toString(index)).c_str());
1265 if (menuCheckToggleTAZDrawFill->shown()) {
1266 menuCheckToggleTAZDrawFill->setAccelText((
"Alt+" +
toString(index)).c_str());
1269 if (menuCheckToggleTAZRelOnlyFrom->shown()) {
1270 menuCheckToggleTAZRelOnlyFrom->setAccelText((
"Alt+" +
toString(index)).c_str());
1273 if (menuCheckToggleTAZRelOnlyTo->shown()) {
1274 menuCheckToggleTAZRelOnlyTo->setAccelText((
"Alt+" +
toString(index)).c_str());
1295 TL(
"Undo"),
"Ctrl+Z",
TL(
"Undo the last change."),
1298 TL(
"Redo"),
"Ctrl+Y",
TL(
"Redo the last change."),
1301 TL(
"Show undo/redo history"),
"",
TL(
"Open undo/redo history dialog."),
1305 TL(
"Allow undo-redo"),
"",
1307 menuCheckAllowUndoRedo->setCheck(myApplicationWindow->getApp()->reg().readBoolEntry(
"NETEDIT",
"AllowUndoRedo",
true));
1315 TL(
"Edit Visualisation"),
"F9",
TL(
"Opens a dialog for editing visualization settings."),
1318 TL(
"Edit Viewport"),
"Ctrl+I",
TL(
"Opens a dialog for editing viewing area, zoom and rotation."),
1327 TL(
"Front element"),
"F11",
TL(
"Mark current inspected element as front element"),
1336 TL(
"Load additionals in sumo-gui"),
TL(
"Load additionals in sumo-gui."),
1338 loadAdditionalsInSUMOGUI->setCheck(TRUE);
1340 TL(
"Load demand in sumo-gui"),
TL(
"Load demand in sumo-gui."),
1342 loadDemandInSUMOGUI->setCheck(TRUE);
1344 TL(
"Open in sumo-gui"),
"Ctrl+T",
TL(
"Opens the sumo-gui application with the current network."),
1353 myApplicationWindow(applicationWindow) {
1361 TL(
"&Junctions"),
"",
"",
1366 TL(
"&Edges"),
"",
"",
1371 TL(
"&Lanes"),
"",
"",
1376 TL(
"&Connections"),
"",
"",
1381 TL(
"C&rossings"),
"",
"",
1386 TL(
"Walkin&gAreas"),
"",
"",
1391 TL(
"&Additionals"),
"",
"",
1396 TL(
"&TAZs"),
"",
"",
1401 TL(
"&Wires"),
"",
"",
1406 TL(
"&Polygons"),
"",
"",
1411 TL(
"P&OIs"),
"",
"",
1416 TL(
"WalkableAreas"),
"",
"",
1421 TL(
"Obstacles"),
"",
"",
1426 TL(
"&Routes"),
"",
"",
1431 TL(
"&Vehicles"),
"",
"",
1436 TL(
"&Persons"),
"",
"",
1441 TL(
"Person&Trips"),
"",
"",
1446 TL(
"&Walks"),
"",
"",
1451 TL(
"Ri&des"),
"",
"",
1456 TL(
"&Containers"),
"",
"",
1461 TL(
"Tra&nsports"),
"",
"",
1466 TL(
"Trans&hips"),
"",
"",
1471 TL(
"Stop&s"),
"",
"",
1476 TL(
"&EdgeDatas"),
"",
"",
1481 TL(
"E&dgeRelDatas"),
"",
"",
1486 TL(
"Edge&TAZRel"),
"",
"",
1491 new FXMenuSeparator(fileMenu);
1494 TL(
"Lock selected elements"),
"",
TL(
"selected elements"),
1498 new FXMenuSeparator(fileMenu);
1501 TL(
"Lock all elements"),
"",
TL(
"all elements"),
1505 TL(
"Unlock all elements"),
"",
TL(
"Unlock all elements"),
1513 menuCheckLockJunctions->remHotKey(parseHotKey(
'j'));
1514 menuCheckLockEdges->remHotKey(parseHotKey(
'e'));
1515 menuCheckLockLanes->remHotKey(parseHotKey(
'l'));
1516 menuCheckLockConnections->remHotKey(parseHotKey(
'c'));
1517 menuCheckLockCrossings->remHotKey(parseHotKey(
'r'));
1518 menuCheckLockWalkingAreas->remHotKey(parseHotKey(
'g'));
1519 menuCheckLockAdditionals->remHotKey(parseHotKey(
'a'));
1520 menuCheckLockTAZs->remHotKey(parseHotKey(
't'));
1521 menuCheckLockWires->remHotKey(parseHotKey(
'w'));
1522 menuCheckLockPolygons->remHotKey(parseHotKey(
'p'));
1523 menuCheckLockPOIs->remHotKey(parseHotKey(
'o'));
1524 menuCheckLockJpsWalkableAreas->remHotKey(parseHotKey(
'n'));
1525 menuCheckLockJpsObstacles->remHotKey(parseHotKey(
'b'));
1527 menuCheckLockRoutes->remHotKey(parseHotKey(
'r'));
1528 menuCheckLockVehicles->remHotKey(parseHotKey(
'v'));
1529 menuCheckLockPersons->remHotKey(parseHotKey(
'p'));
1530 menuCheckLockPersonTrips->remHotKey(parseHotKey(
't'));
1531 menuCheckLockWalks->remHotKey(parseHotKey(
'w'));
1532 menuCheckLockRides->remHotKey(parseHotKey(
'd'));
1533 menuCheckLockContainers->remHotKey(parseHotKey(
'c'));
1534 menuCheckLockTransports->remHotKey(parseHotKey(
'n'));
1535 menuCheckLockTranships->remHotKey(parseHotKey(
'h'));
1536 menuCheckLockStops->remHotKey(parseHotKey(
's'));
1538 menuCheckLockEdgeDatas->remHotKey(parseHotKey(
'e'));
1539 menuCheckLockEdgeRelDatas->remHotKey(parseHotKey(
'd'));
1540 menuCheckLockEdgeTAZRels->remHotKey(parseHotKey(
't'));
1546 menuCheckLockJunctions->enable();
1547 menuCheckLockEdges->enable();
1548 menuCheckLockLanes->enable();
1549 menuCheckLockConnections->enable();
1550 menuCheckLockCrossings->enable();
1551 menuCheckLockWalkingAreas->enable();
1552 menuCheckLockAdditionals->enable();
1553 menuCheckLockTAZs->enable();
1554 menuCheckLockWires->enable();
1555 menuCheckLockPolygons->enable();
1556 menuCheckLockPOIs->enable();
1557 menuCheckLockJpsWalkableAreas->enable();
1558 menuCheckLockJpsObstacles->enable();
1560 menuCheckLockJunctions->addHotKey(parseHotKey(
'j'));
1561 menuCheckLockEdges->addHotKey(parseHotKey(
'e'));
1562 menuCheckLockLanes->addHotKey(parseHotKey(
'l'));
1563 menuCheckLockConnections->addHotKey(parseHotKey(
'c'));
1564 menuCheckLockCrossings->addHotKey(parseHotKey(
'r'));
1565 menuCheckLockWalkingAreas->addHotKey(parseHotKey(
'g'));
1566 menuCheckLockAdditionals->addHotKey(parseHotKey(
'a'));
1567 menuCheckLockTAZs->addHotKey(parseHotKey(
't'));
1568 menuCheckLockWires->addHotKey(parseHotKey(
'w'));
1569 menuCheckLockPolygons->addHotKey(parseHotKey(
'p'));
1570 menuCheckLockPOIs->addHotKey(parseHotKey(
'o'));
1571 menuCheckLockJpsWalkableAreas->addHotKey(parseHotKey(
'n'));
1572 menuCheckLockJpsObstacles->addHotKey(parseHotKey(
'b'));
1574 menuCheckLockJunctions->show();
1575 menuCheckLockEdges->show();
1576 menuCheckLockLanes->show();
1577 menuCheckLockConnections->show();
1578 menuCheckLockCrossings->show();
1579 menuCheckLockWalkingAreas->show();
1580 menuCheckLockAdditionals->show();
1581 menuCheckLockTAZs->show();
1582 menuCheckLockWires->show();
1583 menuCheckLockPolygons->show();
1584 menuCheckLockPOIs->show();
1585 menuCheckLockJpsWalkableAreas->show();
1586 menuCheckLockJpsObstacles->show();
1593 menuCheckLockJunctions->disable();
1594 menuCheckLockEdges->disable();
1595 menuCheckLockLanes->disable();
1596 menuCheckLockConnections->disable();
1597 menuCheckLockCrossings->disable();
1598 menuCheckLockWalkingAreas->disable();
1599 menuCheckLockAdditionals->disable();
1600 menuCheckLockTAZs->disable();
1601 menuCheckLockPolygons->disable();
1602 menuCheckLockPOIs->disable();
1603 menuCheckLockJpsWalkableAreas->disable();
1604 menuCheckLockJpsObstacles->disable();
1606 menuCheckLockJunctions->hide();
1607 menuCheckLockEdges->hide();
1608 menuCheckLockLanes->hide();
1609 menuCheckLockConnections->hide();
1610 menuCheckLockCrossings->hide();
1611 menuCheckLockWalkingAreas->hide();
1612 menuCheckLockAdditionals->hide();
1613 menuCheckLockTAZs->hide();
1614 menuCheckLockWires->hide();
1615 menuCheckLockPolygons->hide();
1616 menuCheckLockPOIs->hide();
1617 menuCheckLockJpsWalkableAreas->hide();
1618 menuCheckLockJpsObstacles->hide();
1625 menuCheckLockRoutes->enable();
1626 menuCheckLockVehicles->enable();
1627 menuCheckLockPersons->enable();
1628 menuCheckLockPersonTrips->enable();
1629 menuCheckLockWalks->enable();
1630 menuCheckLockRides->enable();
1631 menuCheckLockContainers->enable();
1632 menuCheckLockTransports->enable();
1633 menuCheckLockTranships->enable();
1634 menuCheckLockStops->enable();
1636 menuCheckLockRoutes->addHotKey(parseHotKey(
'r'));
1637 menuCheckLockVehicles->addHotKey(parseHotKey(
'v'));
1638 menuCheckLockPersons->addHotKey(parseHotKey(
'p'));
1639 menuCheckLockPersonTrips->addHotKey(parseHotKey(
't'));
1640 menuCheckLockWalks->addHotKey(parseHotKey(
'w'));
1641 menuCheckLockRides->addHotKey(parseHotKey(
'd'));
1642 menuCheckLockContainers->addHotKey(parseHotKey(
'c'));
1643 menuCheckLockTransports->addHotKey(parseHotKey(
'n'));
1644 menuCheckLockTranships->addHotKey(parseHotKey(
'h'));
1645 menuCheckLockStops->addHotKey(parseHotKey(
's'));
1647 menuCheckLockRoutes->show();
1648 menuCheckLockVehicles->show();
1649 menuCheckLockPersons->show();
1650 menuCheckLockPersonTrips->show();
1651 menuCheckLockWalks->show();
1652 menuCheckLockRides->show();
1653 menuCheckLockContainers->show();
1654 menuCheckLockTransports->show();
1655 menuCheckLockTranships->show();
1656 menuCheckLockStops->show();
1663 menuCheckLockRoutes->disable();
1664 menuCheckLockVehicles->disable();
1665 menuCheckLockPersons->disable();
1666 menuCheckLockPersonTrips->disable();
1667 menuCheckLockWalks->disable();
1668 menuCheckLockRides->disable();
1669 menuCheckLockContainers->disable();
1670 menuCheckLockTransports->disable();
1671 menuCheckLockTranships->disable();
1672 menuCheckLockStops->disable();
1674 menuCheckLockRoutes->hide();
1675 menuCheckLockVehicles->hide();
1676 menuCheckLockPersons->hide();
1677 menuCheckLockPersonTrips->hide();
1678 menuCheckLockWalks->hide();
1679 menuCheckLockRides->hide();
1680 menuCheckLockContainers->hide();
1681 menuCheckLockTransports->hide();
1682 menuCheckLockTranships->hide();
1683 menuCheckLockStops->hide();
1690 menuCheckLockEdgeDatas->enable();
1691 menuCheckLockEdgeRelDatas->enable();
1692 menuCheckLockEdgeTAZRels->enable();
1694 menuCheckLockEdgeDatas->addHotKey(parseHotKey(
'e'));
1695 menuCheckLockEdgeRelDatas->addHotKey(parseHotKey(
'd'));
1696 menuCheckLockEdgeTAZRels->addHotKey(parseHotKey(
't'));
1698 menuCheckLockEdgeDatas->show();
1699 menuCheckLockEdgeRelDatas->show();
1700 menuCheckLockEdgeTAZRels->show();
1707 menuCheckLockEdgeDatas->disable();
1708 menuCheckLockEdgeRelDatas->disable();
1709 menuCheckLockEdgeTAZRels->disable();
1711 menuCheckLockEdgeDatas->hide();
1712 menuCheckLockEdgeRelDatas->hide();
1713 menuCheckLockEdgeTAZRels->hide();
1719 menuCheckLockJunctions->setCheck(TRUE);
1720 menuCheckLockEdges->setCheck(TRUE);
1721 menuCheckLockLanes->setCheck(TRUE);
1722 menuCheckLockConnections->setCheck(TRUE);
1723 menuCheckLockCrossings->setCheck(TRUE);
1724 menuCheckLockWalkingAreas->setCheck(TRUE);
1725 menuCheckLockAdditionals->setCheck(TRUE);
1726 menuCheckLockTAZs->setCheck(TRUE);
1727 menuCheckLockWires->setCheck(TRUE);
1728 menuCheckLockPolygons->setCheck(TRUE);
1729 menuCheckLockPOIs->setCheck(TRUE);
1730 menuCheckLockJpsWalkableAreas->setCheck(TRUE);
1731 menuCheckLockJpsObstacles->setCheck(TRUE);
1732 menuCheckLockRoutes->setCheck(TRUE);
1733 menuCheckLockVehicles->setCheck(TRUE);
1734 menuCheckLockPersons->setCheck(TRUE);
1735 menuCheckLockPersonTrips->setCheck(TRUE);
1736 menuCheckLockWalks->setCheck(TRUE);
1737 menuCheckLockRides->setCheck(TRUE);
1738 menuCheckLockContainers->setCheck(TRUE);
1739 menuCheckLockTransports->setCheck(TRUE);
1740 menuCheckLockTranships->setCheck(TRUE);
1741 menuCheckLockStops->setCheck(TRUE);
1742 menuCheckLockEdgeDatas->setCheck(TRUE);
1743 menuCheckLockEdgeRelDatas->setCheck(TRUE);
1744 menuCheckLockEdgeTAZRels->setCheck(TRUE);
1750 menuCheckLockJunctions->setCheck(FALSE);
1751 menuCheckLockEdges->setCheck(FALSE);
1752 menuCheckLockLanes->setCheck(FALSE);
1753 menuCheckLockConnections->setCheck(FALSE);
1754 menuCheckLockCrossings->setCheck(FALSE);
1755 menuCheckLockWalkingAreas->setCheck(FALSE);
1756 menuCheckLockAdditionals->setCheck(FALSE);
1757 menuCheckLockTAZs->setCheck(FALSE);
1758 menuCheckLockWires->setCheck(FALSE);
1759 menuCheckLockPolygons->setCheck(FALSE);
1760 menuCheckLockPOIs->setCheck(FALSE);
1761 menuCheckLockJpsWalkableAreas->setCheck(FALSE);
1762 menuCheckLockJpsObstacles->setCheck(FALSE);
1763 menuCheckLockRoutes->setCheck(FALSE);
1764 menuCheckLockVehicles->setCheck(FALSE);
1765 menuCheckLockPersons->setCheck(FALSE);
1766 menuCheckLockPersonTrips->setCheck(FALSE);
1767 menuCheckLockWalks->setCheck(FALSE);
1768 menuCheckLockRides->setCheck(FALSE);
1769 menuCheckLockContainers->setCheck(FALSE);
1770 menuCheckLockTransports->setCheck(FALSE);
1771 menuCheckLockTranships->setCheck(FALSE);
1772 menuCheckLockStops->setCheck(FALSE);
1773 menuCheckLockEdgeDatas->setCheck(FALSE);
1774 menuCheckLockEdgeRelDatas->setCheck(FALSE);
1775 menuCheckLockEdgeTAZRels->setCheck(FALSE);
1783 menuCheckLockJunctions->setCheck(value);
1785 menuCheckLockEdges->setCheck(value);
1787 menuCheckLockLanes->setCheck(value);
1789 menuCheckLockConnections->setCheck(value);
1791 menuCheckLockCrossings->setCheck(value);
1793 menuCheckLockWalkingAreas->setCheck(value);
1795 menuCheckLockAdditionals->setCheck(value);
1797 menuCheckLockTAZs->setCheck(value);
1799 menuCheckLockWires->setCheck(value);
1801 menuCheckLockPolygons->setCheck(value);
1803 menuCheckLockJpsWalkableAreas->setCheck(value);
1805 menuCheckLockJpsObstacles->setCheck(value);
1809 menuCheckLockPOIs->setCheck(value);
1811 menuCheckLockRoutes->setCheck(value);
1813 menuCheckLockVehicles->setCheck(value);
1815 menuCheckLockPersons->setCheck(value);
1817 menuCheckLockPersonTrips->setCheck(value);
1819 menuCheckLockWalks->setCheck(value);
1821 menuCheckLockRides->setCheck(value);
1823 menuCheckLockContainers->setCheck(value);
1825 menuCheckLockTransports->setCheck(value);
1827 menuCheckLockTranships->setCheck(value);
1831 menuCheckLockStops->setCheck(value);
1833 menuCheckLockEdgeDatas->setCheck(value);
1835 menuCheckLockEdgeRelDatas->setCheck(value);
1837 menuCheckLockEdgeTAZRels->setCheck(value);
1844 FXuint code = 0, mods = 0;
1845 if (Unicode::isAlphaNumeric(character)) {
1847 code = fxucs2keysym(Unicode::toLower(character));
1849 return MKUINT(code, mods);
1857 myApplicationWindow(applicationWindow) {
1865 TL(
"Compute Junctions"),
"F5",
TL(
"Compute junction shape and logic."),
1868 TL(
"Compute Junctions with volatile options"),
"Shift+F5",
TL(
"Compute junction shape and logic using volatile junctions."),
1871 TL(
"Clean Junctions"),
"F6",
TL(
"Remove solitary junctions."),
1874 TL(
"Join Selected Junctions"),
"F7",
TL(
"Join selected junctions into a single junction."),
1877 TL(
"Clean invalid crossings"),
"F8",
TL(
"Clear invalid crossings."),
1880 mySeparatorCheckBox =
new FXMenuSeparator(processingMenu);
1883 TL(
"Recompute Network in Data Mode"),
"",
"",
1886 menuCheckRecomputeDataMode->setCheck(myApplicationWindow->getApp()->reg().readBoolEntry(
"NETEDIT",
"RecomputeData",
true));
1889 TL(
"Compute demand"),
"F5",
TL(
"Computes demand elements."),
1892 TL(
"Clean routes"),
"F6",
TL(
"Removes routes without vehicles."),
1895 TL(
"Join routes"),
"F7",
TL(
"Joins routes with the same edges."),
1898 TL(
"Adjust person plans"),
"Shift+F7",
TL(
"Adjust person plans (start/end positions, arrival positions, etc.)"),
1901 TL(
"Clean invalid route elements"),
"F8",
TL(
"Clear elements with an invalid path (routes, Trips, Flows...)."),
1904 myOptionsSeparator =
new FXMenuSeparator(processingMenu);
1907 TL(
"Sumo options"),
"Shift+F10",
TL(
"Configure sumo Options."),
1910 myOptionsSeparator =
new FXMenuSeparator(processingMenu);
1913 TL(
"Options"),
"F10",
TL(
"Configure netedit Options."),
1921 computeNetwork->enable();
1922 computeNetworkVolatile->enable();
1923 cleanJunctions->enable();
1924 joinJunctions->enable();
1925 clearInvalidCrossings->enable();
1926 mySeparatorCheckBox->enable();
1927 menuCheckRecomputeDataMode->enable();
1929 computeNetwork->show();
1930 computeNetworkVolatile->show();
1931 cleanJunctions->show();
1932 joinJunctions->show();
1933 clearInvalidCrossings->show();
1934 mySeparatorCheckBox->show();
1935 menuCheckRecomputeDataMode->show();
1942 computeNetwork->disable();
1943 computeNetworkVolatile->disable();
1944 cleanJunctions->disable();
1945 joinJunctions->disable();
1946 clearInvalidCrossings->disable();
1948 computeNetwork->hide();
1949 computeNetworkVolatile->hide();
1950 cleanJunctions->hide();
1951 joinJunctions->hide();
1952 clearInvalidCrossings->hide();
1959 computeDemand->enable();
1960 cleanRoutes->enable();
1961 joinRoutes->enable();
1962 adjustPersonPlans->enable();
1963 clearInvalidDemandElements->enable();
1965 computeDemand->show();
1966 cleanRoutes->show();
1968 adjustPersonPlans->show();
1969 clearInvalidDemandElements->show();
1976 computeDemand->disable();
1977 cleanRoutes->disable();
1978 joinRoutes->disable();
1979 adjustPersonPlans->disable();
1980 clearInvalidDemandElements->disable();
1982 computeDemand->hide();
1983 cleanRoutes->hide();
1985 adjustPersonPlans->hide();
1986 clearInvalidDemandElements->hide();
2004 myOptionsSeparator->show();
2010 myOptionsSeparator->hide();
2018 myApplicationWindow(applicationWindow) {
2026 TL(
"&Junctions"),
"Shift+J",
TL(
"Open a dialog for locating a Junction."),
2029 TL(
"&Edges"),
"Shift+E",
TL(
"Open a dialog for locating an Edge."),
2032 TL(
"&WalkingAreas"),
"Shift+W",
TL(
"Open a dialog for locating a Walking Area."),
2035 TL(
"&Vehicles"),
"Shift+V",
TL(
"Open a dialog for locating a Vehicle."),
2038 TL(
"&Persons"),
"Shift+P",
TL(
"Open a dialog for locating a Person."),
2041 TL(
"&Containers"),
"Shift+C",
TL(
"Open a dialog for locating a Container."),
2044 TL(
"&Route"),
"Shift+R",
TL(
"Open a dialog for locating a Route."),
2047 TL(
"&Stops"),
"Shift+S",
TL(
"Open a dialog for locating a Stop."),
2050 TL(
"&TLS"),
"Shift+T",
TL(
"Open a dialog for locating a Traffic Light."),
2053 TL(
"&Additional"),
"Shift+A",
TL(
"Open a dialog for locating an Additional Structure."),
2056 TL(
"P&oI"),
"Shift+O",
TL(
"Open a dialog for locating a Point of Interest."),
2059 TL(
"Po&lygon"),
"Shift+L",
TL(
"Open a dialog for locating a Polygon."),
2068 myApplicationWindow(applicationWindow) {
2074 for (
const auto& tool : myPythonTools) {
2082 const std::map<std::string, FXMenuPane*>& menuPaneToolMaps) {
2085 for (
const auto& templateTool : templateTools) {
2086 if (templateTool.name ==
"netdiff") {
2087 myPythonTools.push_back(
new GNENetDiffTool(myApplicationWindow, templateTool.pythonPath,
2088 menuPaneToolMaps.at(templateTool.subfolder)));
2089 }
else if (menuPaneToolMaps.count(templateTool.subfolder) > 0) {
2090 myPythonTools.push_back(
new GNEPythonTool(myApplicationWindow, templateTool.pythonPath,
2091 templateTool.templateStr, menuPaneToolMaps.at(templateTool.subfolder)));
2093 myPythonTools.push_back(
new GNEPythonTool(myApplicationWindow, templateTool.pythonPath,
2094 templateTool.templateStr, toolsMenu));
2103 for (
const auto& tool : myPythonTools) {
2104 if (tool->getMenuCommand() == menuCommand) {
2116 for (
const auto& tool : myPythonTools) {
2117 if (tool->getMenuCommand() == menuCommand) {
2129 for (
const auto& tool : myPythonTools) {
2130 if (tool->getMenuCommand() == menuCommand) {
2132 tool->postProcessing();
2144 myApplicationWindow(applicationWindow) {
2153 TL(
"Show Status Line"),
TL(
"Toggle this Status Bar on/off."),
2154 statusbar, FXWindow::ID_TOGGLESHOWN);
2156 TL(
"Show Message Window"),
TL(
"Toggle the Message Window on/off."),
2157 messageWindow, FXWindow::ID_TOGGLESHOWN);
2158 new FXMenuSeparator(windowsMenu);
2160 TL(
"Clear Message Window"),
"",
TL(
"Clear the Message Window."),
2169 myApplicationWindow(applicationWindow) {
2178 new FXMenuSeparator(helpMenu);
2187 new FXMenuSeparator(helpMenu);
2197 myApplicationWindow(applicationWindow) {
2203 networkMode->show();
2211 showSupermodeCommands();
2225 TL(
"&Network"),
"F2",
TL(
"Select network mode."),
2228 TL(
"&Demand"),
"F3",
TL(
"Select demand mode."),
2231 TL(
"&Data"),
"F4",
TL(
"Select data mode."),
2240 myApplicationWindow(applicationWindow),
2241 mySumoConfigFile(sumoConfigFile) {
2249 auto& sumoOptions = myApplicationWindow->getSumoOptions();
2251 sumoOptions.resetDefault();
2252 neteditOptions.resetDefault();
2254 sumoOptions.resetWritable();
2255 neteditOptions.resetWritable();
2257 XERCES_CPP_NAMESPACE::SAXParser parser;
2258 parser.setValidationScheme(XERCES_CPP_NAMESPACE::SAXParser::Val_Never);
2259 parser.setDisableDefaultEntityResolution(
true);
2263 parser.setDocumentHandler(&handler);
2264 parser.setErrorHandler(&handler);
2268 WRITE_WARNING(
TLF(
"There are invalid options in sumo configuration '%'.", mySumoConfigFile));
2270 }
catch (
const XERCES_CPP_NAMESPACE::XMLException& e) {
2275 sumoOptions.relocateFiles(mySumoConfigFile);
2279 neteditOptions.resetWritable();
2280 if (sumoOptions.getString(
"net-file").size() > 0) {
2281 myApplicationWindow->getFileBucketHandler()->setDefaultFilenameFile(
FileBucket::Type::NETWORK, sumoOptions.getString(
"net-file"));
2283 WRITE_ERROR(
TLF(
"No network defined in sumo configuration '%'.", mySumoConfigFile));
2286 neteditOptions.set(
"additional-files", sumoOptions.getString(
"additional-files"));
2287 neteditOptions.set(
"route-files", sumoOptions.getString(
"route-files"));
2296 myNetconvertConfigFile(sumoConfigFile) {
2305 neteditOptions.resetDefault();
2306 neteditOptions.resetWritable();
2308 XERCES_CPP_NAMESPACE::SAXParser parser;
2309 parser.setValidationScheme(XERCES_CPP_NAMESPACE::SAXParser::Val_Never);
2310 parser.setDisableDefaultEntityResolution(
true);
2314 parser.setDocumentHandler(&handler);
2315 parser.setErrorHandler(&handler);
2319 WRITE_WARNING(
TLF(
"There are invalid options in netconvert configuration '%'.", myNetconvertConfigFile));
2321 }
catch (
const XERCES_CPP_NAMESPACE::XMLException& e) {
2326 neteditOptions.relocateFiles(myNetconvertConfigFile);
2328 neteditOptions.resetWritable();
2338 myApplicationWindow(applicationWindow),
2339 myNeteditConfigFile(neteditConfigFile) {
2348 const bool ignoreAdditionalElements = neteditOptions.getBool(
"ignore.additionalelements");
2349 const bool ignoreRouteElements = neteditOptions.getBool(
"ignore.routeelements");
2351 neteditOptions.resetDefault();
2353 neteditOptions.resetWritable();
2355 XERCES_CPP_NAMESPACE::SAXParser parser;
2356 parser.setValidationScheme(XERCES_CPP_NAMESPACE::SAXParser::Val_Never);
2357 parser.setDisableDefaultEntityResolution(
true);
2361 parser.setDocumentHandler(&handler);
2362 parser.setErrorHandler(&handler);
2366 WRITE_WARNING(
TLF(
"There are invalid options in netedit configuration '%'.", myNeteditConfigFile));
2368 }
catch (
const XERCES_CPP_NAMESPACE::XMLException& e) {
2373 neteditOptions.relocateFiles(myNeteditConfigFile);
2376 myApplicationWindow->getFileBucketHandler()->setDefaultFilenameFile(
FileBucket::Type::SUMO_CONFIG, neteditOptions.getString(
"sumocfg-file"));
2377 myApplicationWindow->getFileBucketHandler()->setDefaultFilenameFile(
FileBucket::Type::NETWORK, neteditOptions.getString(
"sumo-net-file"));
2378 myApplicationWindow->getFileBucketHandler()->setDefaultFilenameFile(
FileBucket::Type::TLS, neteditOptions.getString(
"tls-file"));
2379 myApplicationWindow->getFileBucketHandler()->setDefaultFilenameFile(
FileBucket::Type::EDGETYPE, neteditOptions.getString(
"edgetypes-file"));
2381 neteditOptions.resetWritable();
2383 if (ignoreAdditionalElements) {
2384 neteditOptions.resetDefault(
"additional-files");
2386 if (ignoreRouteElements) {
2387 neteditOptions.resetDefault(
"route-files");
2399 myApplicationWindow(applicationWindow),
2400 myNeteditOptions(neteditOptions),
2401 mySumoOptions(sumoOptions) {
2414 for (
auto& bucketMap : myBuckets) {
2415 for (
auto& bucket : bucketMap.second) {
2456 auto defaultBucket = getDefaultBucket(type);
2460 for (
auto& bucket : myBuckets.at(type)) {
2461 if (bucket->getFilename() == filename) {
2473 const auto bucketType = getDefaultBucket(type)->getType();
2477 auto bucket =
new FileBucket(bucketType, filename);
2478 myBuckets.at(bucketType).push_back(bucket);
2502 for (
auto& bucket : myBuckets.at(type)) {
2503 if (bucket->getFilename() == filename) {
2518 if (isFilenameDefined(type)) {
2519 return getDefaultFolder(type);
2529 if (isFilenameDefined(type)) {
2530 return getDefaultFilename(type) + sufix;
2539 return myBuckets.at(type).front();
2546 for (
auto& bucketMap : myBuckets) {
2547 for (
auto& bucket : bucketMap.second) {
2548 if ((bucket->getFilename() == filename) && (bucket->getType() == type)) {
2556 if (getDefaultFilename(type).empty() && (filename.size() > 0)) {
2557 setDefaultFilenameFile(type, filename);
2558 return getDefaultBucket(type);
2561 auto bucket =
new FileBucket(type, filename);
2562 myBuckets.at(type).push_back(bucket);
2571const std::vector<FileBucket*>&
2573 return myBuckets.at(type);
2579 return myBuckets.at(type).front()->getFilename();
2585 std::string prefix = getDefaultFilename(type);
2588 if (prefix.empty()) {
2590 }
else if ((prefix.back() ==
'\'') ||
2591 (prefix.back() ==
'\\') ||
2592 (prefix.back() ==
'/')) {
2605 myBuckets.at(type).front()->setFilename(filename);
2613 return (myBuckets.at(type).front()->getFilename().size() > 0);
2619 for (
const auto& bucketPair : myBuckets) {
2620 bucketPair.second.front()->setFilename(
"");
2641 myNeteditOptions.resetWritable();
2642 mySumoOptions.resetWritable();
2644 const bool sumoAdditionals = (myApplicationWindow->getEditMenuCommands().loadAdditionalsInSUMOGUI->getCheck() == TRUE);
2645 const bool sumoDemandElements = (myApplicationWindow->getEditMenuCommands().loadDemandInSUMOGUI->getCheck() == TRUE);
2647 if (sumoconfig.size() > 0) {
2648 myNeteditOptions.set(
"sumocfg-file", sumoconfig);
2650 myNeteditOptions.resetDefault(
"sumocfg-file");
2653 if (neteditconfig.size() > 0) {
2654 myNeteditOptions.set(
"configuration-file", neteditconfig);
2656 myNeteditOptions.resetDefault(
"configuration-file");
2659 if (networkFile.size() > 0) {
2660 myNeteditOptions.set(
"sumo-net-file", networkFile);
2661 mySumoOptions.set(
"net-file", networkFile);
2663 myNeteditOptions.resetDefault(
"sumo-net-file");
2664 mySumoOptions.resetDefault(
"net-file");
2667 if (additional.size() > 0) {
2668 myNeteditOptions.set(
"additional-files", additional);
2670 myNeteditOptions.resetDefault(
"additional-files");
2673 if (demandFile.size() > 0) {
2674 myNeteditOptions.set(
"route-files", demandFile);
2676 myNeteditOptions.resetDefault(
"route-files");
2679 if (sumoDemandElements && (demandFile.size() > 0)) {
2680 mySumoOptions.set(
"route-files", demandFile);
2682 mySumoOptions.resetDefault(
"route-files");
2685 if (data.size() > 0) {
2686 myNeteditOptions.set(
"data-files", data);
2688 myNeteditOptions.resetDefault(
"data-files");
2691 if (meanData.size() > 0) {
2692 myNeteditOptions.set(
"meandata-files", meanData);
2694 myNeteditOptions.resetDefault(
"meandata-files");
2697 if (sumoAdditionals && (additionalMeanData.size() > 0)) {
2698 mySumoOptions.set(
"additional-files", additionalMeanData);
2700 mySumoOptions.resetDefault(
"additional-files");
2703 if (edgeType.size() > 0) {
2704 myNeteditOptions.set(
"edgetypes-file", edgeType);
2706 myNeteditOptions.resetDefault(
"edgetypes-file");
2709 if (tls.size() > 0) {
2710 myNeteditOptions.set(
"tls-file", tls);
2712 myNeteditOptions.resetDefault(
"tls-file");
2725 for (
const auto& type : types) {
2726 for (
const auto& bucket : myBuckets.at(type)) {
2727 if ((bucket->getFilename().size() > 0) && (bucket->isDefaultBucket() || (bucket->getNumElements() > 0))) {
2728 result.append(bucket->getFilename() +
",");
2733 if (result.size() > 0) {
2744 size_t bucketIndex = 0;
2745 while (bucketIndex < myBuckets.at(type).size()) {
2746 auto bucket = myBuckets.at(type).at(bucketIndex);
2747 if (bucket->isEmpty() && (bucket->isDefaultBucket() ==
false)) {
2749 myBuckets.at(type).erase(myBuckets.at(type).begin() + bucketIndex);
2760 std::string filename = getDefaultFilename(type);
2761 if (filename.size() > 0) {
2762 if (filename.back() ==
'.') {
2763 filename.pop_back();
2765 for (
const auto& invalidExtension : invalidExtensions) {
2915 if (str.length() < suffix.length()) {
2918 return str.compare(str.length() - suffix.length(), suffix.length(), suffix) == 0;
Supermode
@brie enum for supermodes
@ NETWORK
Network mode (Edges, junctions, etc..)
@ DATA
Data mode (edgeData, LaneData etc..)
@ DEMAND
Demand mode (Routes, Vehicles etc..)
@ MID_GNE_NETWORKVIEWOPTIONS_AUTOOPPOSITEEDGES
automatically create opposite edge
@ MID_GNE_NETGENERATE
netgenerate dialog
@ MID_HOTKEY_SHIFT_F10_SUMOOPTIONSMENU
open SUMO options menu (used in netedit)
@ MID_HOTKEY_SHIFT_F7_ADJUST_PERSON_PLANS
Adjust person plans (start und end positions, arrival positions, etc.)
@ MID_HOTKEY_SHIFT_F5_COMPUTEJUNCTIONS_VOLATILE
compute junctions with volatile options
@ MID_HOTKEY_CTRL_SHIFT_B_SAVEDATAELEMENTS
save Data Elements
@ MID_HOTKEY_F3_SUPERMODE_DEMAND
select demand supermode in netedit
@ MID_GNE_UNDOLISTDIALOG
open undo list dialog
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLPERSONPLANS
show all person plans
@ MID_GNE_UNLOCK_ALLELEMENTS
unlock all element
@ MID_HOTKEY_SHIFT_S_LOCATESTOP
Locate stop - button.
@ MID_HOTKEY_CTRL_T_OPENNETEDIT_OPENSUMO
Open current SUMO simulation/network in netedit, or current netedit simulation/network in SUMO.
@ MID_GNE_DATAVIEWOPTIONS_TAZRELDRAWING
toggle TAZRel drawing
@ MID_GNE_TOGGLE_COMPUTE_NETWORK_DATA
enable/disable computing after switchin between supermodes
@ MID_GNE_TOOLBARFILE_SAVEADDITIONALELEMENTS_UNIFIED
save additionals unified
@ MID_TOOLBAREDIT_LOADADDITIONALS
load additionals in sumo-gui/netedit after press ctrl+T
@ MID_HOTKEY_U_MODE_DECAL_TYPEDISTRIBUTION
hotkey for mode decal AND type distribution
@ MID_GNE_NETWORKVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
@ MID_HOTKEY_CTRL_Y_REDO
Undo.
@ MID_HOTKEY_CTRL_SHIFT_H_SAVEEDGETYPES
save Edge Types
@ MID_GNE_NETWORKVIEWOPTIONS_MOVEELEVATION
move elevation instead of x,y
@ MID_GNE_TOOLBARFILE_RELOAD_EDGETYPES
reload edge types
@ MID_GNE_NETWORKVIEWOPTIONS_HIDECONNECTIONS
hide connections
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWCONNECTIONS
show connections
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYTO
toggle draw TAZRel only to
@ MID_HOTKEY_CTRL_W_CLOSESIMULATION
Close simulation - ID.
@ MID_GNE_LOCK_ALLELEMENTS
lock all element
@ MID_HOTKEY_F7_JOIN_SELECTEDJUNCTIONS_ROUTES
join selected junctions in network mode and normalice demand element ids in demand mode
@ MID_HOTKEY_CTRL_D_SINGLESIMULATIONSTEP_OPENDEMANDELEMENTS
Perform a single simulation step in SUMO and open Demand Elements in netedit.
@ MID_HOTKEY_F5_COMPUTE_NETWORK_DEMAND
compute Network in network mode and Demand elements in demand mode
@ MID_HOTKEY_CTRL_O_OPENSIMULATION_OPENNETWORK
Open simulation in SUMO and open network in netedit.
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWTAZELEMENTS
show TAZ elements
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKPERSON
lock person
@ MID_HOTKEY_Z_MODE_TAZ_TAZREL
hotkey for mode editing TAZ and TAZRel
@ MID_HOTKEY_F9_EDIT_VIEWSCHEME
open edit scheme menu
@ MID_GNE_DEMANDVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_GNE_LOCK_SELECTEDELEMENTS
lock selected element
@ MID_GNE_TOOLBARFILE_SAVESUMOCONFIG_AS
save SUMOConfig as
@ MID_GNE_TOOLBARFILE_RELOAD_TLSPROGRAMS
reload TLS Programs
@ MID_HOTKEY_A_MODE_STARTSIMULATION_ADDITIONALS_STOPS
hotkey for start simulation in SUMO and set editing mode additionals AND stops in netedit
@ MID_GNE_TOOLBARFILE_OPENMEANDATAELEMENTS
open meanData file
@ MID_CHANGELOG
changelog button
@ MID_GNE_TOOLBARFILE_OPENFOREIGN
open foreign network
@ MID_GNE_TOOLBARFILE_RELOAD_NETEDITCONFIG
reload neteditConfig
@ MID_HOTKEY_CTRL_B_EDITBREAKPOINT_OPENDATAELEMENTS
Edit simulation breakpoints in SUMO and open Data Elements in netedit.
@ MID_TOOLBAREDIT_LOADDEMAND
load demand in sumo-gui/netedit after press ctrl+T
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWGRID
show grid
@ MID_HOTKEY_F1_ONLINEDOCUMENTATION
open online documentation
@ MID_HOTKEY_CTRL_SHIFT_D_SAVEDEMANDELEMENTS
Save Demand Elements.
@ MID_HOTKEY_CTRL_R_RELOAD
Reload the previously loaded simulation.
@ MID_HOTKEY_CTRL_S_STOPSIMULATION_SAVENETWORK
Stop the simulation in SUMO and save network in netedit.
@ MID_HOTKEY_D_MODE_SINGLESIMULATIONSTEP_DELETE
hotkey for perform a single simulation step in SUMO and set delete mode in netedit
@ MID_GNE_NETWORKVIEWOPTIONS_CHAINEDGES
create edges in chain mode
@ MID_HOTKEY_F10_OPTIONSMENU
open options menu
@ MID_HOTKEY_F11_FRONTELEMENT
set/clear front element
@ MID_HOTKEY_F8_CLEANINVALID_CROSSINGS_DEMANDELEMENTS
clean invalid crossings in network mode and demand elements in demand mode
@ MID_GNE_DATAVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
@ MID_GNE_TOOLBARFILE_RELOAD_MEANDATAELEMENTS
reload meanDatas
@ MID_GNE_TOOLBARFILE_SAVEMEANDATAELEMENTS_UNIFIED
save meanDatas unified
@ MID_HOTKEY_CTRL_A_STARTSIMULATION_OPENADDITIONALELEMENTS
Start the simulation in SUMO and open Additionals Elements in netedit.
@ MID_HOTKEY_C_MODE_CONNECT_CONTAINER
hotkey for mode connecting lanes AND container
@ MID_HOTKEY_H_MODE_PROHIBITION_CONTAINERPLAN
hotkey for mode prohibition AND container plan
@ MID_HOTKEY_SHIFT_O_LOCATEPOI
Locate poi - button.
@ MID_HOTKEY_W_MODE_WIRE_ROUTEDISTRIBUTION
hotkey for mode editing overhead wires AND route distributions
@ MID_HOTKEY_T_MODE_TLS_TYPE
hotkey for mode editing TLS AND Vehicle Types
@ MID_GNE_DEMANDVIEWOPTIONS_HIDESHAPES
hide shapes
@ MID_GNE_TOGGLE_UNDOREDO
enable/disable undo-redo
@ MID_HOTKEY_SHIFT_A_LOCATEADDITIONAL
Locate additional structure - button.
@ MID_GNE_TOOLBARFILE_SAVETLSPROGRAMS_AS
save TLS Programs as
@ MID_GNE_DATAVIEWOPTIONS_SHOWADDITIONALS
show additionals
@ MID_HOTKEY_SHIFT_R_LOCATEROUTE
Locate route - button.
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWBUBBLES
show junctions as bubbles
@ MID_HOTKEY_SHIFT_W_LOCATEWALKINGAREA
Locate edge - button.
@ MID_GNE_TOOLBARFILE_RELOAD_DEMANDELEMENTS
reload demand elements
@ MID_GNE_NETWORKVIEWOPTIONS_EXTENDSELECTION
extend selection
@ MID_HOTKEY_CTRL_I_EDITVIEWPORT
Open viewport editor.
@ MID_RECENTFILE
Loads a file previously loaded.
@ MID_HOTKEY_S_MODE_STOPSIMULATION_SELECT
hotkey for stop simulation in SUMO and set select mode in netedit
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWSUBADDITIONALS
show sub-additionals
@ MID_HOTKEY_SHIFT_C_LOCATECONTAINER
Locate container - button.
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWALLCONTAINERPLANS
show all container plans
@ MID_HOTKEY_CTRL_SHIFT_N_NEWWINDOW
open a new window (SUMO AND netedit)
@ MID_HOTKEY_SHIFT_V_LOCATEVEHICLE
Locate vehicle - button.
@ MID_HOTKEY_F4_SUPERMODE_DATA
select data supermode in netedit
@ MID_HOTKEY_SHIFT_L_LOCATEPOLY
Locate polygons - button.
@ MID_HOTKEY_F6_CLEAN_SOLITARYJUNCTIONS_UNUSEDROUTES
clean junctions without edges in network mode and unused routes in demand mode
@ MID_HOTKEY_CTRL_K_OPENTLSPROGRAMS
Load file with TLS Programs.
@ MID_GNE_LOCK_ELEMENT
lock element (general, used if we press directly the menuCommand in the toolbar)
@ MID_GNE_TOOLBARFILE_SAVENETEDITCONFIG_AS
save neteditConfig as
@ MID_HOTKEY_SHIFT_E_LOCATEEDGE
Locate edge - button.
@ MID_CLEARMESSAGEWINDOW
Clear simulation output.
@ MID_HOTKEY_R_MODE_CROSSING_ROUTE_EDGERELDATA
hotkey for mode editing crossing, routes and edge rel datas
@ MID_TUTORIAL
tutorial button
@ MID_GNE_TOGGLE_UNDOREDO_LOADING
enable/disable undo-redo during loading
@ MID_GNE_DATAVIEWOPTIONS_TAZDRAWFILL
toggle draw TAZ fill
@ MID_HOTKEY_L_MODE_PERSONPLAN
hotkey for mode person plan
@ MID_HOTKEY_V_MODE_VEHICLE
hotkey for mode create vehicles
@ MID_HOTKEY_SHIFT_P_LOCATEPERSON
Locate person - button.
@ MID_GNE_TOOLBARFILE_SAVEDATAELEMENTS_UNIFIED
save data elements unified
@ MID_HOTKEY_I_MODE_INSPECT
hotkey for mode inspecting object attributes
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWPOLYGONSYMBOLS
show polygon symbols
@ MID_GNE_NETWORKVIEWOPTIONS_SHOWDEMANDELEMENTS
show demand elements
@ MID_HOTKEY_SHIFT_J_LOCATEJUNCTION
Locate junction - button.
@ MID_HOTKEY_CTRL_SHIFT_E_SAVENETEDITCONFIG
save netedit Config
@ MID_GNE_TOOLBARFILE_SAVEEDGETYPES_AS
save edgeTypes as
@ MID_HOTKEYS
hotkeys button
@ MID_GNE_DEMANDVIEWOPTIONS_HIDENONINSPECTED
hide non-inspected demand element
@ MID_GNE_TOOLBARFILE_RELOADNETWORK
reload only network
@ MID_GNE_NETWORKVIEWOPTIONS_MERGEAUTOMATICALLY
don't ask before merging junctions
@ MID_HOTKEY_CTRL_SHIFT_M_SAVEMEANDATAELEMENTS
save Mean Datas
@ MID_GNE_NETWORKVIEWOPTIONS_CHANGEALLPHASES
change all phases
@ MID_GNE_DATAVIEWOPTIONS_SHOWSHAPES
show shapes
@ MID_HOTKEY_E_MODE_EDGE_EDGEDATA
hotkey for mode adding edges AND edgeDatas
@ MID_GNE_DATAVIEWOPTIONS_TAZRELONLYFROM
toggle draw TAZRel only from
@ MID_GNE_TOOLBARFILE_RELOAD_SUMOCONFIG
reload SUMOConfig
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEDRAWJUNCTIONSHAPE
toggle draw junction shape
@ MID_HOTKEY_CTRL_SHIFT_O_OPENNETCONVERTFILE
open Netconvert file
@ MID_HOTKEY_CTRL_M_OPENSUMOCONFIG
open sumo config
@ MID_GNE_TOOLBARFILE_SAVENETWORK_AS
save network as
@ MID_GNE_DEMANDVIEWOPTIONS_DRAWSPREADVEHICLES
Draw vehicles in begin position or spread in lane.
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWOVERLAPPEDROUTES
show overlapped routes
@ MID_HOTKEY_CTRL_Z_UNDO
Redo.
@ MID_GNE_TOOLBARFILE_SAVEDEMANDELEMENTS_UNIFIED
save demand elements unified
@ MID_FEEDBACK
feedback button
@ MID_HOTKEY_CTRL_H_APPSETTINGS_OPENEDGETYPES
open app setting dialog in SUMO and open edge type files in netedit
@ MID_HOTKEY_CTRL_SHIFT_S_SAVESUMOCONFIG
save SUMOConfig (SUMO AND netedit)
@ MID_HOTKEY_F12_ABOUT
open about dialog
@ MID_HOTKEY_CTRL_E_EDITSELECTION_LOADNETEDITCONFIG
Edit selection in SUMO and load neteditConfig in netedit.
@ MID_GNE_TOOLBARFILE_RELOAD_DATAELEMENTS
reload data elements
@ MID_HOTKEY_CTRL_SHIFT_K_SAVETLS
save TLS Programs
@ MID_HOTKEY_SHIFT_T_LOCATETLS
Locate TLS - button.
@ MID_HOTKEY_M_MODE_MOVE_MEANDATA
hotkey for mode moving element AND mean data
@ MID_HOTKEY_F2_SUPERMODE_NETWORK
select network supermode in netedit
@ MID_GNE_DEMANDVIEWOPTIONS_LOCKCONTAINER
lock container
@ MID_HOTKEY_CTRL_N_OPENNETWORK_NEWNETWORK
open network in SUMO and create new empty network in netedit
@ MID_GNE_TOOLBARFILE_RELOAD_ADDITIONALELEMENTS
reload additionals
@ MID_GNE_NETWORKVIEWOPTIONS_SELECTEDGES
select edges
@ MID_GNE_SAVEJOINEDJUNCTIONS
save joined junctions
@ MID_GNE_DEMANDVIEWOPTIONS_SHOWTRIPS
show all trips
@ MID_GNE_NETWORKVIEWOPTIONS_TOGGLEGRID
show grid
@ MID_GNE_TOOLBARFILE_SAVEJUPEDSIMELEMENTS_AS
save JuPedSim as
@ MID_HOTKEY_P_MODE_POLYGON_PERSON
hotkey for mode creating polygons
@ MID_HOTKEY_CTRL_L_SAVEASPLAINXML
save network as plain XML
@ MID_HOTKEY_CTRL_SHIFT_A_SAVEADDITIONALELEMENTS
Save Additional Elements.
#define GUIDesignToolbarMenuBarNetedit
design for top toolbar (file, edit, processing...) used only in netedit (due supermodes buttons)
#define GUIDesignToolBarGrip
design for toolbar grip (used to change the position of toolbar with mouse)
#define GUIDesignToolBar
design for default toolbar
#define GUIDesignToolBarRaisedNext
design for first toolbar shell positioned in the next position of dock
#define GUIDesignToolBarRaisedSupermodes
design for toolbar supermodes (grip + buttons)
#define GUIDesignToolBarRaisedSame
design for toolbar
@ DATAMODE_CHECKBOX_SHOWADDITIONALS
@ NETWORKMODE_CHECKBOX_BUBBLES
@ DATAMODE_CHECKBOX_TAZRELONLYFROM
@ NETWORKMODE_CHECKBOX_SHOWPOLYGONSYMBOLS
@ SAVE_ADDITIONALELEMENTS
@ DEMANDMODE_CHECKBOX_HIDENONINSPECTEDDEMANDELEMENTS
@ NETWORKMODE_CHECKBOX_HIDECONNECTIONS
@ DEMANDMODE_CHECKBOX_SHOWTRIPS
@ COMMONMODE_CHECKBOX_TOGGLEDRAWJUNCTIONSHAPE
@ DATAMODE_CHECKBOX_SHOWSHAPES
@ NETWORKMODE_CHECKBOX_SELECTEDGES
@ COMMONMODE_CHECKBOX_SHOWDEMANDELEMENTS
@ DEMANDMODE_CHECKBOX_LOCKPERSON
@ NETWORKMODE_CHECKBOX_MERGEAUTOMATICALLY
@ NETWORKMODE_CHECKBOX_APPLYTOALLPHASES
@ DATAMODE_CHECKBOX_TAZRELONLYTO
@ NETWORKMODE_CHECKBOX_AUTOSELECTJUNCTIONS
@ DATAMODE_CHECKBOX_TAZRELDRAWING
@ NETWORKMODE_CHECKBOX_SHOWCONNECTIONS
@ DEMANDMODE_CHECKBOX_SHOWPERSONPLANS
@ DEMANDMODE_CHECKBOX_HIDESHAPES
@ DATAMODE_CHECKBOX_TAZDRAWFILL
@ NETWORKMODE_CHECKBOX_ELEVATION
@ COMMONMODE_CHECKBOX_SPREADVEHICLE
@ DEMANDMODE_CHECKBOX_LOCKCONTAINER
@ NETWORKMODE_CHECKBOX_SHOWSUBADDITIONALS
@ NETWORKMODE_CHECKBOX_SHOWTAZELEMENTS
@ NETWORKMODE_CHECKBOX_CHAIN
@ DEMANDMODE_CHECKBOX_SHOWOVERLAPPEDROUTES
@ COMMONMODE_CHECKBOX_TOGGLEGRID
@ DEMANDMODE_CHECKBOX_SHOWCONTAINERPLANS
@ NETWORKMODE_CHECKBOX_TWOWAY
#define WRITE_WARNING(msg)
@ SUMO_TAG_EDGEREL
a relation between two edges
@ SUMO_TAG_POI
begin/end of the description of a Point of interest
@ GNE_TAG_POIGEO
Point of interest over view with GEO attributes.
@ SUMO_TAG_CONNECTION
connectioon between two lanes
@ SUMO_TAG_WALKINGAREA
walking area for pedestrians
@ SUMO_TAG_JUNCTION
begin/end of the description of a junction
@ SUMO_TAG_CROSSING
crossing between edges for pedestrians
@ SUMO_TAG_POLY
begin/end of the description of a polygon
@ SUMO_TAG_LANE
begin/end of the description of a single lane
@ GNE_TAG_POILANE
Point of interest over Lane.
@ GNE_TAG_JPS_OBSTACLE
polygon used for draw juPedSim obstacles
@ SUMO_TAG_TAZREL
a relation between two TAZs
@ GNE_TAG_JPS_WALKABLEAREA
polygon used for draw juPedSim walkable areas
@ SUMO_TAG_EDGE
begin/end of the description of an edge
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
void removeElement(const bool isTemplate)
remove element
void addElement(const bool isTemplate)
function related with Elements
Type
Files that this bucket can save.
static const std::vector< FileBucket::Type > types
vector with all types managed in this get bucket handler
static const std::vector< FileBucket::Type > prefixes
vector with all types and prefixes managed in this get bucket handler
std::string parseFilenames(const std::vector< FileBucket::Type > types) const
parse filenames
std::string getConfigDirectory() const
get current config directory (if we defined a netedit, sumo or netconvert config)
~FileBucketHandler()
destructor
void resetDefaultFilenames()
brief set default files for all buckets
std::string getDefaultFilename(const FileBucket::Type type) const
functions related with filenames
const std::vector< FileBucket * > & getFileBuckets(const FileBucket::Type type) const
get vector with all fileBuckets related with the given file type
std::map< FileBucket::Type, std::vector< FileBucket * > > myBuckets
map with the buckets
bool isFilenameDefined(const FileBucket::Type type) const
check if at least we have an additional file defined
void unregisterAC(const GNEAttributeCarrier *AC)
delete AC
void updateOptions()
update options
std::string getConfigFilePrefix(const std::string &sufix) const
get current config patter (if we defined a netedit, sumo or netconvert config)
std::string getDefaultFolder(const FileBucket::Type type) const
get default folder associated with the given tipe
FileBucket * getDefaultBucket(const FileBucket::Type type) const
functions related with buckets
std::string getPrefix(FileBucket::Type type, const std::vector< std::string > invalidExtensions) const
get prefix of the given filename
void registerAC(const GNEAttributeCarrier *AC)
register AC
FileBucket * updateAC(const GNEAttributeCarrier *AC, const std::string &filename)
update filename vinculated with this AC
bool checkFilename(const GNEAttributeCarrier *AC, const std::string &filename) const
check if the given filename can be assigned to the given AC
FileBucketHandler(GNEApplicationWindow *applicationWindow, OptionsCont &neteditOptions, OptionsCont &sumoOptions)
constructor
void removeEmptyBuckets()
removed empty buckets
FileBucket * getBucket(const FileBucket::Type type, const std::string &filename, const bool create)
get bucket
void setDefaultFilenameFile(const FileBucket::Type type, const std::string &filename)
brief set default additional file
bool loadNetconvertConfig()
load netconvert config
GNENetconvertConfigHandler(const std::string &file)
Constructor.
GNENeteditConfigHandler(GNEApplicationWindow *applicationWindow, const std::string &neteditConfigFile)
Constructor.
bool loadNeteditConfig()
load netedit config
GNESumoConfigHandler(GNEApplicationWindow *applicationWindow, const std::string &sumoConfigFile)
Constructor.
bool loadSumoConfig()
load SUMO config
virtual FileBucket * getFileBucket() const =0
get reference to fileBucket in which save this AC
const std::string getID() const override
get ID (all Attribute Carriers have one)
bool isTemplate() const
check if this AC is template
const GNETagProperties * getTagProperty() const
get tagProperty associated with this Attribute Carrier
bool isPlanTransport() const
return true if tag correspond to a transport
bool isContainer() const
return true if tag correspond to a container element
bool isTAZElement() const
return true if tag correspond to a TAZ element
bool isNetworkElement() const
network elements
bool isRoute() const
return true if tag correspond to a route element
bool isVehicle() const
return true if tag correspond to a vehicle element
bool isPlanStopContainer() const
return true if tag correspond to a container stop plan
SumoXMLTag getTag() const
get Tag vinculated with this attribute Property
bool isPlanPersonTrip() const
return true if tag correspond to a person trip plan
bool isFileCompatible(FileBucket::Type file) const
file
bool isWireElement() const
return true if tag correspond to a Wire element
bool saveInParentFile() const
element is saved in the parent file
bool isPlanRide() const
return true if tag correspond to a ride plan
bool isAdditionalElement() const
return true if tag correspond to an additional element (note: this include TAZ, shapes and wires)
bool isPlanStopPerson() const
return true if tag correspond to a person stop plan
bool isVehicleStop() const
return true if tag correspond to a vehicle stop element
bool isPerson() const
return true if tag correspond to a person element
bool isPlanWalk() const
return true if tag correspond to a walk plan
bool isPlanTranship() const
return true if tag correspond to a tranship
long onCmdToggleShowDemandElementsNetwork(FXObject *, FXSelector, void *)
toggle show demand elements (network)
const GNEViewNetHelper::DataViewOptions & getDataViewOptions() const
get data view options
long onCmdToggleShowDemandElementsData(FXObject *, FXSelector, void *)
toggle show demand elements (data)
long onCmdToggleTAZDrawFill(FXObject *, FXSelector, void *)
toggle TAZdrawFill
long onCmdToggleDrawSpreadVehicles(FXObject *, FXSelector, void *)
toggle draw vehicles in begin position or spread in lane
long onCmdToggleShowConnections(FXObject *, FXSelector, void *)
toggle show connections
long onCmdToggleShowTAZElements(FXObject *, FXSelector, void *)
toggle show TAZ elements
long onCmdToggleMoveElevation(FXObject *, FXSelector, void *)
toggle move elevation
long onCmdToggleShowAllPersonPlans(FXObject *, FXSelector, void *)
toggle show all person plans in super mode demand
long onCmdToggleTAZRelOnlyTo(FXObject *, FXSelector, void *)
toggle TAZRez only to
const GNEViewNetHelper::NetworkViewOptions & getNetworkViewOptions() const
get network view options
long onCmdToggleChainEdges(FXObject *, FXSelector, void *)
toggle chain edges
long onCmdToggleLockContainer(FXObject *, FXSelector, void *)
toggle lock container in super mode demand
long onCmdToggleShowGrid(FXObject *, FXSelector, void *)
toggle show grid
long onCmdToggleHideNonInspecteDemandElements(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
long onCmdToggleDrawJunctionShape(FXObject *, FXSelector, void *)
toggle draw junction shape
long onCmdToggleShowShapes(FXObject *, FXSelector, void *)
toggle show shapes in super mode data
long onCmdToggleMergeAutomatically(FXObject *, FXSelector, void *)
toggle warn for merge
long onCmdToggleExtendSelection(FXObject *, FXSelector, void *)
toggle extend selection
long onCmdToggleShowOverlappedRoutes(FXObject *, FXSelector, void *)
toggle hide non inspected demand elements
long onCmdToggleAutoOppositeEdge(FXObject *, FXSelector, void *)
toggle autoOpposite edge
long onCmdToggleChangeAllPhases(FXObject *, FXSelector, void *)
toggle change all phases
long onCmdToggleTAZRelDrawing(FXObject *, FXSelector, void *)
toggle TAZRel drawing
long onCmdToggleShowJunctionBubbles(FXObject *, FXSelector, void *)
toggle show junction bubbles
long onCmdToggleShowAdditionalSubElements(FXObject *, FXSelector, void *)
toggle show additional sub-elements
long onCmdToggleShowAllContainerPlans(FXObject *, FXSelector, void *)
toggle show all container plans in super mode demand
long onCmdToggleTAZRelOnlyFrom(FXObject *, FXSelector, void *)
toggle TAZRez only from
long onCmdToggleShowAdditionals(FXObject *, FXSelector, void *)
toggle show additionals in super mode data
long onCmdToggleLockPerson(FXObject *, FXSelector, void *)
toggle lock person in super mode demand
long onCmdToggleSelectEdges(FXObject *, FXSelector, void *)
toggle select edges
long onCmdToggleShowTrips(FXObject *, FXSelector, void *)
toggle show all trips in super mode demand
long onCmdToggleHideShapes(FXObject *, FXSelector, void *)
toggle hide shapes in super mode demand
const GNEViewNetHelper::DemandViewOptions & getDemandViewOptions() const
get demand view options
long onCmdToggleHideConnections(FXObject *, FXSelector, void *)
toggle hide connections
long onCmdToggleShowPolygonSymbols(FXObject *, FXSelector, void *)
toggle show polygon symbols
static MFXMenuCheckIcon * buildFXMenuCheckboxIcon(FXComposite *p, const std::string &text, const std::string &shortcut, const std::string &info, FXIcon *icon, FXObject *tgt, FXSelector sel)
build menu checkbox with icon
static FXMenuCommand * buildFXMenuCommandRecentFile(FXComposite *p, const std::string &text, FXObject *tgt, FXSelector sel)
build menu command (for recent files)
static FXMenuCheck * buildFXMenuCheckbox(FXComposite *p, const std::string &text, const std::string &info, FXObject *tgt, FXSelector sel)
build menu checkbox
static FXMenuCommand * buildFXMenuCommand(FXComposite *p, const std::string &text, FXIcon *icon, FXObject *tgt, FXSelector sel, const bool disable=false)
build menu command
static FXMenuCommand * buildFXMenuCommandShortcut(FXComposite *p, const std::string &text, const std::string &shortcut, const std::string &info, FXIcon *icon, FXObject *tgt, FXSelector sel)
build menu command
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
A logging window for the gui.
A storage for options typed value containers)
static OptionsCont & getOptions()
Retrieves the options.
A SAX-Handler for loading options.
bool errorOccurred() const
Returns the information whether an error occurred.
static std::string replace(std::string str, const std::string &what, const std::string &by)
Replaces all occurrences of the second string by the third string within the first string.
static std::string transcode(const XMLCh *const data, int length=-1)
converts a 0-terminated XMLCh* array (usually UTF-16, stemming from Xerces) into std::string in UTF-8
static std::string transcodeToLocal(const std::string &utf8String)
convert a string from UTF-8 to the local codepage
void hideDataViewOptionsMenuChecks()
hide all options menu checks
void buildDataViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
DataViewOptions(GNEApplicationWindow *applicationWindow)
default constructor
void updateShortcuts()
update shortcuts (alt+X)
DemandViewOptions(GNEApplicationWindow *applicationWindow)
default constructor
void hideDemandViewOptionsMenuChecks()
hide all options menu checks
void buildDemandViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
void updateShortcuts()
update shortcuts (alt+X)
void hideNetworkViewOptionsMenuChecks()
hide all options menu checks
NetworkViewOptions(GNEApplicationWindow *applicationWindow)
default constructor
void updateShortcuts()
update shortcuts (alt+X)
void buildNetworkViewOptionsMenuChecks(FXMenuPane *editMenu)
build menu checks
EditMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
DemandViewOptions demandViewOptions
demand view options
NetworkViewOptions networkViewOptions
network view options
void buildUndoRedoMenuCommands(FXMenuPane *editMenu)
build undo-redo menu commands
DataViewOptions dataViewOptions
data view options
void buildViewMenuCommands(FXMenuPane *editMenu)
build view menu commands
void buildOpenSUMOMenuCommands(FXMenuPane *editMenu)
build open sumo menu commands
void buildFrontElementMenuCommand(FXMenuPane *editMenu)
build front element commands
GNEApplicationWindow * myApplicationWindow
pointer to current GNEApplicationWindow
void setJuPedSimView()
set JuPedSim view
void setDefaultView()
set default view
void buildEdgeTypeSection(FXMenuPane *menuPane)
build edge type section
void buildDemandSection(FXMenuPane *menuPane)
build demand section
void buildFileMenuCommands(FXMenuPane *fileMenu, FXMenuPane *fileMenuNEEDITConfig, FXMenuPane *fileMenuSumoConfig, FXMenuPane *fileMenuTLS, FXMenuPane *fileMenuEdgeTypes, FXMenuPane *fileMenuAdditionals, FXMenuPane *fileMenuDemandElements, FXMenuPane *fileMenuDataElements, FXMenuPane *fileMenuMeanDataElements)
build menu commands
FileMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void buildDataSection(FXMenuPane *menuPane)
build data section
void buildTrafficLightSection(FXMenuPane *menuPane)
build traffic light section
void enableMenuCascades()
enable menu cascades
void buildAdditionalSection(FXMenuPane *menuPane)
build additional section
void buildMeanDataSection(FXMenuPane *menuPane)
build meanData section
void disableMenuCascades()
disable menu cascades
void buildNeteditConfigSection(FXMenuPane *menuPane)
build netedit config section
void buildSumoConfigSection(FXMenuPane *menuPane)
build SUMO Config section
void buildHelpMenuCommands(FXMenuPane *helpMenu)
build menu commands
HelpMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void buildLocateMenuCommands(FXMenuPane *locateMenu)
build menu commands
LocateMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void buildLockMenuCommands(FXMenuPane *editMenu)
build menu commands
void hideNetworkLockMenuCommands()
show network processing menu commands
void removeHotkeys()
remove hotkeys
void hideDemandLockMenuCommands()
show demand processing menu commands
void hideDataLockMenuCommands()
show data processing menu commands
void showDataLockMenuCommands()
show data processing menu commands
void showNetworkLockMenuCommands()
show network processing menu commands
FXHotKey parseHotKey(const FXwchar character)
Parse hot key from string.
void showDemandLockMenuCommands()
show demand processing menu commands
void unlockAll()
unlock all
LockMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void editLocking(const GNEAttributeCarrier *AC, const FXbool value)
lock or unlock object based in a tag property
void buildCommonMenuCommands(FXMenuPane *modesMenu)
build menu commands
CommonMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
void buildDataMenuCommands(FXMenuPane *modesMenu)
build menu commands
void hideDataMenuCommands()
hide all menu commands
DataMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
void showDataMenuCommands()
show all menu commands
void buildDemandMenuCommands(FXMenuPane *modesMenu)
build menu commands
void showDemandMenuCommands()
show all menu commands
DemandMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
void hideDemandMenuCommands()
hide all menu commands
void buildNetworkMenuCommands(FXMenuPane *modesMenu)
build menu commands
void hideNetworkMenuCommands()
hide all menu commands
NetworkMenuCommands(const ModesMenuCommands *modesMenuCommandsParent)
constructor
void showNetworkMenuCommands()
show all menu commands
struct for modes menu commands
CommonMenuCommands commonMenuCommands
Common Menu Commands.
ModesMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void buildModesMenuCommands(FXMenuPane *modesMenu)
build modes menu commands
DemandMenuCommands demandMenuCommands
Demand Menu Commands.
void setDefaultView(Supermode supermode)
set default view
GNEApplicationWindow * myApplicationWindow
pointer to current GNEApplicationWindow
void setJuPedSimView(Supermode supermode)
set JuPedSim view
DataMenuCommands dataMenuCommands
Data Menu Commands.
NetworkMenuCommands networkMenuCommands
Network Menu Commands.
void showDataProcessingMenuCommands()
show data processing menu commands
void showDemandProcessingMenuCommands()
show demand processing menu commands
void showSeparator()
show separator
void hideSeparator()
hide separator
void hideDemandProcessingMenuCommands()
show demand processing menu commands
void hideDataProcessingMenuCommands()
show data processing menu commands
void buildProcessingMenuCommands(FXMenuPane *processingMenu)
build menu commands
ProcessingMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void showNetworkProcessingMenuCommands()
show network processing menu commands
void hideNetworkProcessingMenuCommands()
show network processing menu commands
SupermodeCommands(GNEApplicationWindow *applicationWindow)
constructor
void buildSupermodeCommands(FXMenuPane *editMenu)
build menu commands
void showSupermodeCommands()
show all menu commands
void setJuPedSimView()
set JuPedSim view
void setDefaultView()
set default view
WindowsMenuCommands(GNEApplicationWindow *applicationWindow)
constructor
void buildWindowsMenuCommands(FXMenuPane *windowsMenu, FXStatusBar *statusbar, GUIMessageWindow *messageWindow)
build menu commands
static bool toggleEditOptionsDemand(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, FXObject *obj, FXSelector sel)
toggle edit options Demand menu commands (called in GNEApplicationWindow::onCmdToggleEditOptions)
static bool toggleEditOptionsData(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, FXObject *obj, FXSelector sel)
toggle edit options Data menu commands (called in GNEApplicationWindow::onCmdToggleEditOptions)
static bool stringEndsWith(const std::string &str, const std::string &suffix)
check if a string ends with another string
static bool toggleEditOptionsNetwork(GNEViewNet *viewNet, const MFXCheckableButton *menuCheck, FXObject *obj, FXSelector sel)
toggle edit options Network menu commands (called in GNEApplicationWindow::onCmdToggleEditOptions)
MFXCheckableButton * menuCheckToggleTAZDrawFill
menu check to toggle TAZ draw fill
MFXCheckableButton * menuCheckShowAdditionals
menu check to show Additionals
MFXCheckableButton * menuCheckShowShapes
menu check to show Shapes
MFXCheckableButton * menuCheckToggleTAZRelOnlyFrom
menu check to toggle TAZRel only from
MFXCheckableButton * menuCheckToggleDrawJunctionShape
checkable button to show junction shapes
MFXCheckableButton * menuCheckToggleTAZRelDrawing
menu check to toggle TAZ Rel drawing
MFXCheckableButton * menuCheckShowDemandElements
menu check to show Demand Elements
MFXCheckableButton * menuCheckToggleTAZRelOnlyTo
menu check to toggle TAZRel only to
MFXCheckableButton * menuCheckShowAllTrips
show all trips
MFXCheckableButton * menuCheckToggleGrid
menu check to show grid button
MFXCheckableButton * menuCheckToggleDrawJunctionShape
checkable button to show junction shapes
MFXCheckableButton * menuCheckDrawSpreadVehicles
menu check to draw vehicles in begin position or spread in lane
MFXCheckableButton * menuCheckShowOverlappedRoutes
show overlapped routes
MFXCheckableButton * menuCheckShowAllPersonPlans
show all person plans
MFXCheckableButton * menuCheckShowAllContainerPlans
show all container plans
MFXCheckableButton * menuCheckHideNonInspectedDemandElements
Hide non inspected demand elements.
MFXCheckableButton * menuCheckHideShapes
Hide shapes (Polygons and POIs)
MFXCheckableButton * menuCheckLockPerson
Lock Person.
MFXCheckableButton * menuCheckLockContainer
Lock Container.
MFXCheckableButton * menuCheckSelectEdges
checkable button to select only edges
MFXCheckableButton * menuCheckChainEdges
checkable button to the endpoint for a created edge should be set as the new source
MFXCheckableButton * menuCheckShowDemandElements
checkable button to show Demand Elements
MFXCheckableButton * menuCheckMoveElevation
checkable button to apply movement to elevation
MFXCheckableButton * menuCheckShowTAZElements
checkable button to show TAZ elements
MFXCheckableButton * menuCheckAutoOppositeEdge
check checkable to create auto create opposite edge
MFXCheckableButton * menuCheckDrawSpreadVehicles
checkable button to draw vehicles in begin position or spread in lane
MFXCheckableButton * menuCheckShowConnections
checkable button to show connections
MFXCheckableButton * menuCheckHideConnections
checkable button to hide connections in connect mode
MFXCheckableButton * menuCheckToggleDrawJunctionShape
checkable button to show junction shapes
MFXCheckableButton * menuCheckToggleGrid
checkable button to show grid button
MFXCheckableButton * menuCheckMergeAutomatically
checkable button to we should't warn about merging junctions
MFXCheckableButton * menuCheckShowJunctionBubble
checkable button to show connection as bubble in "Move" mode.
MFXCheckableButton * menuCheckShowAdditionalSubElements
checkable button to show additional sub-elements
MFXCheckableButton * menuCheckChangeAllPhases
checkable button to set change all phases
MFXCheckableButton * menuCheckShowPolygonSymbols
check checkable to show polygon symbols
MFXCheckableButton * menuCheckExtendSelection
checkable button to extend to edge nodes