58 myAdditionalList =
new AdditionalList(
this, invalidSingleLaneAdditionals, invalidMultiLaneAdditionals);
64 if (myAdditionalList->myInvalidSingleLaneAdditionals.empty()) {
65 myPositionOptions->disablePositionOptions();
68 if (myAdditionalList->myInvalidMultiLaneAdditionals.empty()) {
69 myConsecutiveLaneOptions->disableConsecutiveLaneOptions();
78 myAcceptButton->setFocus();
96 bool continueSaving =
true;
110 i->fixAdditionalProblem();
121 continueSaving =
false;
131 i->fixAdditionalProblem();
136 for (
auto i : copyOfInvalidMultiLaneAdditionals) {
137 if (!i->isAdditionalValid()) {
158 i->fixAdditionalProblem();
163 if (continueSaving) {
165 getApp()->stopModal(
this, TRUE);
168 getApp()->stopModal(
this, FALSE);
177 getApp()->stopModal(
this, FALSE);
186 FXGroupBox(fixAdditionalPositions->myMainFrame,
"Stopping places and E2 detectors with conflicts",
GUIDesignGroupBoxFrameFill),
187 myInvalidSingleLaneAdditionals(invalidSingleLaneAdditionals),
188 myInvalidMultiLaneAdditionals(invalidMultiLaneAdditionals) {
191 myTable->setSelBackColor(FXRGBA(255, 255, 255, 255));
192 myTable->setSelTextColor(FXRGBA(0, 0, 0, 255));
201 myTable->setColumnWidth(1, 160);
202 myTable->setColumnWidth(2, 280);
205 myTable->setColumnText(2,
"Conflict");
206 myTable->getRowHeader()->setWidth(0);
209 FXTableItem* item =
nullptr;
213 item =
new FXTableItem(
"", i->getIcon());
214 item->setIconPosition(FXTableItem::CENTER_X);
215 myTable->setItem(indexRow, 0, item);
217 item =
new FXTableItem(i->getID().c_str());
218 item->setJustify(FXTableItem::LEFT | FXTableItem::CENTER_Y);
219 myTable->setItem(indexRow, 1, item);
221 item =
new FXTableItem(i->getAdditionalProblem().c_str());
222 item->setJustify(FXTableItem::LEFT | FXTableItem::CENTER_Y);
223 myTable->setItem(indexRow, 2, item);
230 item =
new FXTableItem(
"", i->getIcon());
231 item->setIconPosition(FXTableItem::CENTER_X);
232 myTable->setItem(indexRow, 0, item);
234 item =
new FXTableItem(i->getID().c_str());
235 item->setJustify(FXTableItem::LEFT | FXTableItem::CENTER_Y);
236 myTable->setItem(indexRow, 1, item);
238 item =
new FXTableItem((i->getAdditionalProblem()).c_str());
239 item->setJustify(FXTableItem::LEFT | FXTableItem::CENTER_Y);
240 myTable->setItem(indexRow, 2, item);
256 activateFriendlyPositionAndSave =
new FXRadioButton(RadioButtonsLeft,
"Activate friendlyPos and save\t\tFriendly pos parameter will be activated in all stopping places and E2 detectors",
258 saveInvalid =
new FXRadioButton(RadioButtonsLeft,
"Save invalid positions\t\tSave stopping places and E2 detectors with invalid positions",
262 fixPositionsAndSave =
new FXRadioButton(RadioButtonsRight,
"Fix positions and save\t\tPosition of stopping places and E2 detectors will be fixed",
264 selectInvalidStopsAndCancel =
new FXRadioButton(RadioButtonsRight,
"Select invalid additionals\t\tCancel saving of additionals and select invalid stopping places and E2 detectors",
273 if (option == activateFriendlyPositionAndSave) {
274 activateFriendlyPositionAndSave->setCheck(
true);
275 fixPositionsAndSave->setCheck(
false);
276 saveInvalid->setCheck(
false);
277 selectInvalidStopsAndCancel->setCheck(
false);
278 }
else if (option == fixPositionsAndSave) {
279 activateFriendlyPositionAndSave->setCheck(
false);
280 fixPositionsAndSave->setCheck(
true);
281 saveInvalid->setCheck(
false);
282 selectInvalidStopsAndCancel->setCheck(
false);
283 }
else if (option == saveInvalid) {
284 activateFriendlyPositionAndSave->setCheck(
false);
285 fixPositionsAndSave->setCheck(
false);
286 saveInvalid->setCheck(
true);
287 selectInvalidStopsAndCancel->setCheck(
false);
288 }
else if (option == selectInvalidStopsAndCancel) {
289 activateFriendlyPositionAndSave->setCheck(
false);
290 fixPositionsAndSave->setCheck(
false);
291 saveInvalid->setCheck(
false);
292 selectInvalidStopsAndCancel->setCheck(
true);
299 activateFriendlyPositionAndSave->enable();
300 fixPositionsAndSave->enable();
301 saveInvalid->enable();
302 selectInvalidStopsAndCancel->enable();
308 activateFriendlyPositionAndSave->disable();
309 fixPositionsAndSave->disable();
310 saveInvalid->disable();
311 selectInvalidStopsAndCancel->disable();
324 buildConnectionBetweenLanes =
new FXRadioButton(RadioButtonsLeft,
"Build connections between lanes\t\tNew connections will be created between non-connected lanes",
326 removeInvalidElements =
new FXRadioButton(RadioButtonsLeft,
"Remove invalid E2 detectors\t\tRemove Multilane E2 Detectors with non-connected lanes",
332 activateFriendlyPositionAndSave =
new FXRadioButton(RadioButtonsRight,
"Activate friendlyPos and save\t\tFriendly pos parameter will be activated in all stopping places and E2 detectors",
334 fixPositionsAndSave =
new FXRadioButton(RadioButtonsRight,
"Fix positions and save\t\tPosition of stopping places and E2 detectors will be fixed",
345 if (option == buildConnectionBetweenLanes) {
346 buildConnectionBetweenLanes->setCheck(
true);
347 removeInvalidElements->setCheck(
false);
348 }
else if (option == removeInvalidElements) {
349 buildConnectionBetweenLanes->setCheck(
false);
350 removeInvalidElements->setCheck(
true);
353 if (option == activateFriendlyPositionAndSave) {
354 activateFriendlyPositionAndSave->setCheck(
true);
355 fixPositionsAndSave->setCheck(
false);
356 }
else if (option == fixPositionsAndSave) {
357 activateFriendlyPositionAndSave->setCheck(
false);
358 fixPositionsAndSave->setCheck(
true);
365 buildConnectionBetweenLanes->enable();
366 removeInvalidElements->enable();
367 activateFriendlyPositionAndSave->enable();
368 fixPositionsAndSave->enable();
374 buildConnectionBetweenLanes->disable();
375 removeInvalidElements->disable();
376 activateFriendlyPositionAndSave->disable();
377 fixPositionsAndSave->disable();