Skip to content

Commit

Permalink
Updated GNEApplicationWindow. Refs #13667
Browse files Browse the repository at this point in the history
  • Loading branch information
palvarezlopez committed Jul 27, 2023
1 parent 5f1b4ae commit 0160231
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 8 deletions.
114 changes: 106 additions & 8 deletions src/netedit/GNEApplicationWindow.cpp
Expand Up @@ -152,6 +152,8 @@ FXDEFMAP(GNEApplicationWindow) GNEApplicationWindowMap[] = {
FXMAPFUNC(SEL_UPDATE, MID_HOTKEY_CTRL_SHIFT_A_SAVEADDITIONALS, GNEApplicationWindow::onUpdSaveAdditionals),
FXMAPFUNC(SEL_COMMAND, MID_GNE_TOOLBARFILE_SAVEADDITIONALS_AS, GNEApplicationWindow::onCmdSaveAdditionalsAs),
FXMAPFUNC(SEL_UPDATE, MID_GNE_TOOLBARFILE_SAVEADDITIONALS_AS, GNEApplicationWindow::onUpdSaveAdditionalsAs),
FXMAPFUNC(SEL_COMMAND, MID_GNE_TOOLBARFILE_SAVEJUPEDSIMELEMENTS_AS, GNEApplicationWindow::onCmdSaveJuPedSimElementsAs),
FXMAPFUNC(SEL_UPDATE, MID_GNE_TOOLBARFILE_SAVEJUPEDSIMELEMENTS_AS, GNEApplicationWindow::onUpdSaveJuPedSimElementsAs),
// demand elements
FXMAPFUNC(SEL_COMMAND, MID_HOTKEY_CTRL_D_SINGLESIMULATIONSTEP_OPENDEMANDELEMENTS, GNEApplicationWindow::onCmdOpenDemandElements),
FXMAPFUNC(SEL_UPDATE, MID_HOTKEY_CTRL_D_SINGLESIMULATIONSTEP_OPENDEMANDELEMENTS, GNEApplicationWindow::onUpdNeedsNetwork),
Expand Down Expand Up @@ -2591,7 +2593,13 @@ GNEApplicationWindow::onUpdNeedsFrontElement(FXObject* sender, FXSelector, void*

long
GNEApplicationWindow::onUpdSaveNetwork(FXObject* sender, FXSelector, void*) {
return sender->handle(this, ((myNet == nullptr) || myNet->getSavingStatus()->isNetworkSaved()) ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
if (myNet == nullptr) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else if (myNet->getSavingStatus()->isNetworkSaved()) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
}
}


Expand All @@ -2609,47 +2617,105 @@ GNEApplicationWindow::onUpdSaveAdditionals(FXObject* sender, FXSelector, void*)

long
GNEApplicationWindow::onUpdSaveAdditionalsAs(FXObject* sender, FXSelector, void*) {
return sender->handle(this, ((myNet == nullptr) || (myNet->getAttributeCarriers()->getNumberOfAdditionals() == 0)) ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
if (myNet == nullptr) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else if (myNet->getAttributeCarriers()->getNumberOfAdditionals() == 0) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
}
}


long
GNEApplicationWindow::onUpdSaveJuPedSimElementsAs(FXObject* sender, FXSelector, void*) {
if (myNet == nullptr) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else if (myNet->getAttributeCarriers()->getAdditionals().at(GNE_TAG_WALKABLEAREA).size() > 0) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
} else if (myNet->getAttributeCarriers()->getAdditionals().at(GNE_TAG_OBSTACLE).size() > 0) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
} else if (myNet->getAttributeCarriers()->getAdditionals().at(GNE_TAG_POIWAYPOINT).size() > 0) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
} else {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
}
}


long
GNEApplicationWindow::onUpdSaveDemandElements(FXObject* sender, FXSelector, void*) {
return sender->handle(this, ((myNet == nullptr) || myNet->getSavingStatus()->isDemandElementsSaved()) ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
if (myNet == nullptr) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else if (myNet->getSavingStatus()->isDemandElementsSaved()) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
}

}


long
GNEApplicationWindow::onUpdSaveDemandElementsAs(FXObject* sender, FXSelector, void*) {
return sender->handle(this, ((myNet == nullptr) || (myNet->getAttributeCarriers()->getNumberOfDemandElements() == 0)) ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
if (myNet == nullptr) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else if (myNet->getAttributeCarriers()->getNumberOfDemandElements() == 0) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
}
}


long
GNEApplicationWindow::onUpdSaveDataElements(FXObject* sender, FXSelector, void*) {
return sender->handle(this, ((myNet == nullptr) || myNet->getSavingStatus()->isDataElementsSaved()) ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
if (myNet == nullptr) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else if (myNet->getSavingStatus()->isDataElementsSaved()) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
}

}


long
GNEApplicationWindow::onUpdSaveDataElementsAs(FXObject* sender, FXSelector, void*) {
return sender->handle(this, ((myNet == nullptr) || (myNet->getAttributeCarriers()->getDataSets().size() == 0)) ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
if (myNet == nullptr) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else if (myNet->getAttributeCarriers()->getDataSets().size() == 0) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
}

}


long
GNEApplicationWindow::onUpdSaveMeanDatas(FXObject* sender, FXSelector, void*) {
if (myNet == nullptr) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else if (myNet->getSavingStatus()->isMeanDatasSaved()) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else {
return sender->handle(this, myNet->getSavingStatus()->isMeanDatasSaved() ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
return sender->handle(this, FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
}
}


long
GNEApplicationWindow::onUpdSaveMeanDatasAs(FXObject* sender, FXSelector, void*) {
return sender->handle(this, ((myNet == nullptr) || (myNet->getAttributeCarriers()->getNumberOfMeanDatas() == 0)) ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
if (myNet == nullptr) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else if (myNet->getAttributeCarriers()->getNumberOfMeanDatas() == 0) {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), nullptr);
} else {
return sender->handle(this, FXSEL(SEL_COMMAND, ID_ENABLE), nullptr);
}

}


Expand Down Expand Up @@ -3736,6 +3802,38 @@ GNEApplicationWindow::onCmdSaveAdditionalsAs(FXObject*, FXSelector, void*) {
}


long
GNEApplicationWindow::onCmdSaveJuPedSimElementsAs(FXObject*, FXSelector, void*) {
// declare current folder
FXString currentFolder = gCurrentFolder;
// get juPedSim file
const auto juPedSimFile = GNEApplicationWindowHelper::openAdditionalFileDialog(this, true);
// check that file is valid
if (!juPedSimFile.empty()) {
try {
// Start saving additionals
getApp()->beginWaitCursor();
// save additionals
myNet->saveJuPedSimElements(juPedSimFile);
// show info
WRITE_MESSAGE(TL("JuPedSim elements saved in '") + juPedSimFile + "'");
// end saving additionals
getApp()->endWaitCursor();
// restore focus
setFocus();
} catch (IOError& e) {
// write warning if netedit is running in testing mode
WRITE_DEBUG("Opening FXMessageBox 'error saving JuPedSim elements'");
// open error message box
FXMessageBox::error(this, MBOX_OK, TL("Saving JuPedSim elements failed!"), "%s", e.what());
// write warning if netedit is running in testing mode
WRITE_DEBUG("Closed FXMessageBox 'error saving JuPedSim elements' with 'OK'");
}
}
return 1;
}


long
GNEApplicationWindow::onCmdOpenDemandElements(FXObject*, FXSelector, void*) {
// get option container
Expand Down
6 changes: 6 additions & 0 deletions src/netedit/GNEApplicationWindow.h
Expand Up @@ -251,6 +251,9 @@ class GNEApplicationWindow : public GUIMainWindow, public MFXInterThreadEventCli
/// @brief called when the command/FXCall save additionals as is executed
long onCmdSaveAdditionalsAs(FXObject*, FXSelector, void*);

/// @brief called when the command/FXCall save JuPedSim elements as is executed
long onCmdSaveJuPedSimElementsAs(FXObject*, FXSelector, void*);

/// @brief called when the command/FXCall open demand is executed
long onCmdOpenDemandElements(FXObject*, FXSelector, void*);

Expand Down Expand Up @@ -314,6 +317,9 @@ class GNEApplicationWindow : public GUIMainWindow, public MFXInterThreadEventCli
/// @brief called when the update/FXCall save additionals as is executed
long onUpdSaveAdditionalsAs(FXObject*, FXSelector, void*);

/// @brief called when the update/FXCall save juPedSim as is executed
long onUpdSaveJuPedSimElementsAs(FXObject*, FXSelector, void*);

/// @brief called when the update/FXCall save demand elements is executed
long onUpdSaveDemandElements(FXObject*, FXSelector, void*);

Expand Down
2 changes: 2 additions & 0 deletions src/utils/gui/windows/GUIAppEnum.h
Expand Up @@ -701,6 +701,8 @@ enum {
MID_GNE_TOOLBARFILE_SAVENETWORK_AS,
/// @brief save additionals as
MID_GNE_TOOLBARFILE_SAVEADDITIONALS_AS,
/// @brief save JuPedSim as
MID_GNE_TOOLBARFILE_SAVEJUPEDSIMELEMENTS_AS,
/// @brief reload additionals
MID_GNE_TOOLBARFILE_RELOAD_ADDITIONALS,
/// @brief save TLS Programs as
Expand Down

0 comments on commit 0160231

Please sign in to comment.