54 TL(
"Select a solution for StoppingPlaces and E2 detectors")) {
57 TL(
"Activate friendlyPos and save"),
"",
58 TL(
"Friendly pos parameter will be activated in all stopping places and E2 detectors"),
62 TL(
"Save invalid positions"),
"",
63 TL(
"Save stopping places and E2 detectors with invalid positions"),
67 TL(
"Fix positions and save"),
"",
68 TL(
"Position of stopping places and E2 detectors will be fixed"),
72 TL(
"Select invalid additionals"),
"",
73 TL(
"Cancel saving of additionals and select invalid stopping places and E2 detectors"),
88 if (solution ==
"savePositionInvalids") {
90 }
else if (solution ==
"fixPositions") {
92 }
else if (solution ==
"selectPositionInvalids") {
94 }
else if (solution ==
"activatePositionFriendlyPos") {
115 TL(
"fix positions of invalid additionals"));
118 conflictedElement.getElement()->fixAdditionalProblem();
123 TL(
"select invalid additionals"));
126 conflictedElement.getElement()->setAttribute(
GNE_ATTR_SELECTED,
"true", undoList);
169 TL(
"Select a solution for Multilane E2 detectors")) {
172 TL(
"Build connections between lanes"),
"",
173 TL(
"New connections will be created between non-connected lanes"),
177 TL(
"Remove invalid E2 detectors"),
"",
178 TL(
"Remove Multilane E2 Detectors with non-connected lanes"),
182 TL(
"Activate friendlyPos and save"),
"",
183 TL(
"Friendly pos parameter will be activated in all stopping places and E2 detectors"),
187 TL(
"Fix positions and save"),
"",
188 TL(
"Position of stopping places and E2 detectors will be fixed"),
213 TL(
"fix multilane additionals problems"));
218 conflictedElement.getElement()->fixAdditionalProblem();
223 for (
const auto& conflictedElement : copyOfConflictedElements) {
224 if (!conflictedElement.getElement()->isAdditionalValid()) {
231 net->deleteAdditional(conflictedElement.getElement(), undoList);
245 conflictedElement.getElement()->fixAdditionalProblem();
281 const std::vector<GNEAdditional*>& elements) :
289 std::vector<ConflictElement> invalidSingleLanes, invalidMultiLanes;
291 for (
const auto& invalidAdditionalElement : elements) {
293 auto fixElement = ConflictElement(invalidAdditionalElement,
294 invalidAdditionalElement->getID(),
295 invalidAdditionalElement->getACIcon(),
296 invalidAdditionalElement->getAdditionalProblem());
298 if (invalidAdditionalElement->getTagProperty()->hasAttribute(
SUMO_ATTR_LANE)) {
299 invalidSingleLanes.push_back(fixElement);
300 }
else if (invalidAdditionalElement->getTagProperty()->hasAttribute(
SUMO_ATTR_LANES)) {
301 invalidMultiLanes.push_back(fixElement);
FXDEFMAP(GNEFixAdditionalElementsDialog::PositionOptions) PositionOptionsMap[]
@ MID_CHOOSEN_OPERATION
set type of selection
#define GUIDesignRadioButtonFix
design for radio button with fixed height (used in fix elements dialogs)
GUIIcon
An enumeration of icons used by the gui applications.
@ GNE_ATTR_SELECTED
element is selected
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
The main window of Netedit.
void openDialog(FXWindow *focusableElement=nullptr)
fix consecutive lane options
long onCmdSelectOption(FXObject *obj, FXSelector, void *)
called when user select a option
FXRadioButton * myFixPositions
Option "Fix Positions and save".
FXRadioButton * myRemoveInvalidElements
Option "remove invalid elements".
bool applyFixOption()
apply selected fix option
FXRadioButton * myBuildConnectionBetweenLanes
FOX needs this.
void selectInternalTestSolution(const std::string &solution)
select internal test solution
FXRadioButton * myActivateFriendlyPosition
Option "Activate friendlyPos and save".
ConsecutiveLaneOptions(GNEFixAdditionalElementsDialog *fixAdditionalPositions)
FOX-declaration.
long onCmdSelectOption(FXObject *obj, FXSelector, void *)
called when user select a option
PositionOptions(GNEFixAdditionalElementsDialog *fixAdditionalPositions)
FOX-declaration.
FXRadioButton * mySelectInvalids
Option "Select invalid stops and cancel".
FXRadioButton * myFixPositions
Option "Fix Positions and save".
bool applyFixOption()
apply selected fix option
FXRadioButton * mySaveInvalids
Option "Save invalid".
FXRadioButton * myActivateFriendlyPosition
FOX needs this.
void selectInternalTestSolution(const std::string &solution)
select internal test solution
GNEFixAdditionalElementsDialog(GNEApplicationWindow *mainWindow, const std::vector< GNEAdditional * > &elements)
Constructor.
ConsecutiveLaneOptions * myConsecutiveLaneOptions
consecutive lane options
~GNEFixAdditionalElementsDialog()
destructor
PositionOptions * myPositionOptions
position options
void registerOption(FXWindow *option)
add option to options container (used for adjust width and enable/disable)
std::vector< ConflictElement > myConflictedElements
list of elements to fix
FXVerticalFrame * myRightFrameOptions
vertical right frame for options
GNEFixElementsDialog * myFixElementDialogParent
pointer to the parent dialog
FixOptions(GNEFixElementsDialog< T > *fixElementDialog, FXVerticalFrame *frameParent, const std::string &title)
constructor
FXVerticalFrame * myLeftFrameOptions
vertical left frame for options
GNEFixElementsDialog(GNEApplicationWindow *mainWindow, const std::string title, GUIIcon icon, DialogType type)
FXVerticalFrame * myLeftFrame
static FXRadioButton * buildFXRadioButton(FXComposite *p, const std::string &text, const std::string &tip, const std::string &help, FXObject *tgt, FXSelector sel, FXuint opts=RADIOBUTTON_NORMAL, FXint x=0, FXint y=0, FXint w=0, FXint h=0, FXint pl=DEFAULT_PAD, FXint pr=DEFAULT_PAD, FXint pt=DEFAULT_PAD, FXint pb=DEFAULT_PAD)
build radio button
MFXGroupBoxModule (based on FXGroupBox).