Eclipse SUMO - Simulation of Urban MObility
GNEDialog_FixDemandElements.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
15 // Dialog used to fix demand elements during saving
16 /****************************************************************************/
17 
18 // ===========================================================================
19 // included modules
20 // ===========================================================================
21 #include <config.h>
22 
26 #include <netedit/GNENet.h>
27 #include <netedit/GNEViewNet.h>
28 #include <netedit/GNEUndoList.h>
29 
31 
32 
33 // ===========================================================================
34 // FOX callback mapping
35 // ===========================================================================
36 
37 FXDEFMAP(GNEDialog_FixDemandElements) GNEDialog_FixDemandElementsMap[] = {
41 };
42 
43 // Object implementation
44 FXIMPLEMENT(GNEDialog_FixDemandElements, FXDialogBox, GNEDialog_FixDemandElementsMap, ARRAYNUMBER(GNEDialog_FixDemandElementsMap))
45 
46 // ===========================================================================
47 // member method definitions
48 // ===========================================================================
49 
50 GNEDialog_FixDemandElements::GNEDialog_FixDemandElements(GNEViewNet* viewNet, const std::vector<GNEDemandElement*>& invalidDemandElements) :
51  FXDialogBox(viewNet->getApp(), "Fix demand elements problems", GUIDesignDialogBoxExplicit(500, 420)),
52  myViewNet(viewNet) {
53  // set busStop icon for this dialog
55  // create main frame
56  myMainFrame = new FXVerticalFrame(this, GUIDesignAuxiliarFrame);
57  // create demand list
58  myDemandList = new DemandList(this, invalidDemandElements);
59  // create fix route options
60  myFixRouteOptions = new FixRouteOptions(this);
61  // create fix vehicle options
62  myFixVehicleOptions = new FixVehicleOptions(this);
63  // create fix stops options
64  myFixStopOptions = new FixStopOptions(this);
65  // check if fix route options has to be disabled
66  if (myDemandList->myInvalidRoutes.empty()) {
67  myFixRouteOptions->disableFixRouteOptions();
68  }
69  // check if fix vehicle options has to be disabled
70  if (myDemandList->myInvalidVehicles.empty()) {
71  myFixVehicleOptions->disableFixVehicleOptions();
72  }
73  // check if fix vehicle options has to be disabled
74  if (myDemandList->myInvalidVehicles.empty()) {
75  myFixStopOptions->disableFixStopOptions();
76  }
77  // create dialog buttons bot centered
78  FXHorizontalFrame* buttonsFrame = new FXHorizontalFrame(myMainFrame, GUIDesignHorizontalFrame);
79  new FXHorizontalFrame(buttonsFrame, GUIDesignAuxiliarHorizontalFrame);
80  myAcceptButton = new FXButton(buttonsFrame, FXWindow::tr("&Accept"), GUIIconSubSys::getIcon(ICON_ACCEPT), this, MID_GNE_ADDITIONALDIALOG_BUTTONACCEPT, GUIDesignButtonAccept);
81  myCancelButton = new FXButton(buttonsFrame, FXWindow::tr("&Cancel"), GUIIconSubSys::getIcon(ICON_CANCEL), this, MID_GNE_ADDITIONALDIALOG_BUTTONCANCEL, GUIDesignButtonCancel);
82  new FXHorizontalFrame(buttonsFrame, GUIDesignAuxiliarHorizontalFrame);
83  // set focus in accept button
84  myAcceptButton->setFocus();
85 }
86 
87 
89 }
90 
91 
92 long
93 GNEDialog_FixDemandElements::onCmdSelectOption(FXObject* obj, FXSelector, void*) {
97  return 1;
98 }
99 
100 
101 long
102 GNEDialog_FixDemandElements::onCmdAccept(FXObject*, FXSelector, void*) {
103  bool continueSaving = true;
104  // first check options for invalid routes
105  if (myDemandList->myInvalidRoutes.size() > 0) {
106  if (myFixRouteOptions->removeInvalidRoutes->getCheck() == TRUE) {
107  // begin undo list
108  myViewNet->getUndoList()->p_begin("delete invalid routes");
109  // iterate over invalid routes to delete it
110  for (auto i : myDemandList->myInvalidRoutes) {
112  }
113  // end undo list
115  } else if (myFixRouteOptions->selectInvalidRoutesAndCancel->getCheck() == TRUE) {
116  // begin undo list
117  myViewNet->getUndoList()->p_begin("select invalid routes");
118  // iterate over invalid single lane elements to select all elements
119  for (auto i : myDemandList->myInvalidRoutes) {
120  i->setAttribute(GNE_ATTR_SELECTED, "true", myViewNet->getUndoList());
121  }
122  // end undo list
124  // abort saving
125  continueSaving = false;
126  }
127  }
128  // first check options for invalid vehicles
129  if (myDemandList->myInvalidVehicles.size() > 0) {
130  if (myFixVehicleOptions->removeInvalidVehicles->getCheck() == TRUE) {
131  // begin undo list
132  myViewNet->getUndoList()->p_begin("delete invalid vehicles");
133  // iterate over invalid stops to delete it
134  for (auto i : myDemandList->myInvalidVehicles) {
136  }
137  // end undo list
139  } else if (myFixVehicleOptions->selectInvalidVehiclesAndCancel->getCheck() == TRUE) {
140  // begin undo list
141  myViewNet->getUndoList()->p_begin("select invalid vehicles");
142  // iterate over invalid single lane elements to select all elements
143  for (auto i : myDemandList->myInvalidVehicles) {
144  i->setAttribute(GNE_ATTR_SELECTED, "true", myViewNet->getUndoList());
145  }
146  // end undo list
148  // abort saving
149  continueSaving = false;
150  }
151  }
152  // first check options for stops
153  if (myDemandList->myInvalidStops.size() > 0) {
154  if (myFixStopOptions->activateFriendlyPositionAndSave->getCheck() == TRUE) {
155  // begin undo list
156  myViewNet->getUndoList()->p_begin("change " + toString(SUMO_ATTR_FRIENDLY_POS) + " of invalid stops");
157  // iterate over invalid stops to enable friendly position
158  for (auto i : myDemandList->myInvalidStops) {
159  i->setAttribute(SUMO_ATTR_FRIENDLY_POS, "true", myViewNet->getUndoList());
160  }
162  } else if (myFixStopOptions->fixPositionsAndSave->getCheck() == TRUE) {
163  myViewNet->getUndoList()->p_begin("fix positions of invalid stops");
164  // iterate over invalid stops to fix positions
165  for (auto i : myDemandList->myInvalidStops) {
166  i->fixDemandElementProblem();
167  }
169  } else if (myFixStopOptions->selectInvalidStopsAndCancel->getCheck() == TRUE) {
170  myViewNet->getUndoList()->p_begin("select invalid stops");
171  // iterate over invalid stops to select all elements
172  for (auto i : myDemandList->myInvalidStops) {
173  i->setAttribute(GNE_ATTR_SELECTED, "true", myViewNet->getUndoList());
174  }
175  // end undo list
177  // abort saving
178  continueSaving = false;
179  }
180  }
181  if (continueSaving) {
182  // stop modal with TRUE (continue saving)
183  getApp()->stopModal(this, TRUE);
184  } else {
185  // stop modal with TRUE (abort saving)
186  getApp()->stopModal(this, FALSE);
187  }
188  return 1;
189 }
190 
191 
192 long
193 GNEDialog_FixDemandElements::onCmdCancel(FXObject*, FXSelector, void*) {
194  // Stop Modal (abort saving)
195  getApp()->stopModal(this, FALSE);
196  return 1;
197 }
198 
199 // ---------------------------------------------------------------------------
200 // GNEDialog_FixDemandElements::DemandList - methods
201 // ---------------------------------------------------------------------------
202 
203 GNEDialog_FixDemandElements::DemandList::DemandList(GNEDialog_FixDemandElements* fixDemandElementsDialogParents, const std::vector<GNEDemandElement*>& invalidDemandElements) :
204  FXGroupBox(fixDemandElementsDialogParents->myMainFrame, "Routes and Vehicles with conflicts", GUIDesignGroupBoxFrameFill) {
205  // Create table, copy intervals and update table
207  myTable->setSelBackColor(FXRGBA(255, 255, 255, 255));
208  myTable->setSelTextColor(FXRGBA(0, 0, 0, 255));
209  myTable->setEditable(false);
210  // separate demand elements in three groups
211  for (const auto& i : invalidDemandElements) {
212  if (i->getTagProperty().isVehicle()) {
213  myInvalidVehicles.push_back(i);
214  } else if (i->getTagProperty().isStop()) {
215  myInvalidStops.push_back(i);
216  } else {
217  myInvalidRoutes.push_back(i);
218  }
219  }
220  // clear table
221  myTable->clearItems();
222  // set number of rows
223  myTable->setTableSize((int)(myInvalidRoutes.size() + myInvalidVehicles.size()), 3);
224  // Configure list
225  myTable->setVisibleColumns(4);
226  myTable->setColumnWidth(0, GUIDesignTableIconCellWidth);
227  myTable->setColumnWidth(1, 160);
228  myTable->setColumnWidth(2, 280);
229  myTable->setColumnText(0, "");
230  myTable->setColumnText(1, toString(SUMO_ATTR_ID).c_str());
231  myTable->setColumnText(2, "Conflict");
232  myTable->getRowHeader()->setWidth(0);
233  // Declare index for rows and pointer to FXTableItem
234  int indexRow = 0;
235  FXTableItem* item = nullptr;
236  // iterate over invalid routes
237  for (auto i : myInvalidRoutes) {
238  // Set icon
239  item = new FXTableItem("", i->getIcon());
240  item->setIconPosition(FXTableItem::CENTER_X);
241  myTable->setItem(indexRow, 0, item);
242  // Set ID
243  item = new FXTableItem(i->getID().c_str());
244  item->setJustify(FXTableItem::LEFT | FXTableItem::CENTER_Y);
245  myTable->setItem(indexRow, 1, item);
246  // Set conflict
247  item = new FXTableItem(i->getDemandElementProblem().c_str());
248  item->setJustify(FXTableItem::LEFT | FXTableItem::CENTER_Y);
249  myTable->setItem(indexRow, 2, item);
250  // Update index
251  indexRow++;
252  }
253  // iterate over invalid vehicles
254  for (auto i : myInvalidVehicles) {
255  // Set icon
256  item = new FXTableItem("", i->getIcon());
257  item->setIconPosition(FXTableItem::CENTER_X);
258  myTable->setItem(indexRow, 0, item);
259  // Set ID
260  item = new FXTableItem(i->getID().c_str());
261  item->setJustify(FXTableItem::LEFT | FXTableItem::CENTER_Y);
262  myTable->setItem(indexRow, 1, item);
263  // Set conflict
264  item = new FXTableItem(i->getDemandElementProblem().c_str());
265  item->setJustify(FXTableItem::LEFT | FXTableItem::CENTER_Y);
266  myTable->setItem(indexRow, 2, item);
267  // Update index
268  indexRow++;
269  }
270  // iterate over invalid stops
271  for (auto i : myInvalidStops) {
272  // Set icon
273  item = new FXTableItem("", i->getIcon());
274  item->setIconPosition(FXTableItem::CENTER_X);
275  myTable->setItem(indexRow, 0, item);
276  // Set ID
277  item = new FXTableItem(i->getID().c_str());
278  item->setJustify(FXTableItem::LEFT | FXTableItem::CENTER_Y);
279  myTable->setItem(indexRow, 1, item);
280  // Set conflict
281  item = new FXTableItem(i->getDemandElementProblem().c_str());
282  item->setJustify(FXTableItem::LEFT | FXTableItem::CENTER_Y);
283  myTable->setItem(indexRow, 2, item);
284  // Update index
285  indexRow++;
286  }
287 }
288 
289 
290 // ---------------------------------------------------------------------------
291 // GNEDialog_FixDemandElements::FixRouteOptions - methods
292 // ---------------------------------------------------------------------------
293 
295  FXGroupBox(fixDemandElementsDialogParents->myMainFrame, "Solution for routes", GUIDesignGroupBoxFrame) {
296  // create horizontal frames for radio buttons
297  FXHorizontalFrame* radioButtonsFrame = new FXHorizontalFrame(this, GUIDesignHorizontalFrame);
298  // create radio button for remove invalid routes
299  removeInvalidRoutes = new FXRadioButton(radioButtonsFrame, "Remove invalid routes",
300  fixDemandElementsDialogParents, MID_CHOOSEN_OPERATION, GUIDesignRadioButton);
301  // create radio button for save invalid routes
302  saveInvalidRoutes = new FXRadioButton(radioButtonsFrame, "Save invalid routes",
303  fixDemandElementsDialogParents, MID_CHOOSEN_OPERATION, GUIDesignRadioButton);
304  // create radio button for select invalid routes
305  selectInvalidRoutesAndCancel = new FXRadioButton(radioButtonsFrame, "Select invalid routes",
306  fixDemandElementsDialogParents, MID_CHOOSEN_OPERATION, GUIDesignRadioButton);
307  // leave option "removeInvalidRoutes" as default
308  removeInvalidRoutes->setCheck(true);
309 }
310 
311 
312 void
314  if (option == removeInvalidRoutes) {
315  removeInvalidRoutes->setCheck(true);
316  saveInvalidRoutes->setCheck(false);
317  selectInvalidRoutesAndCancel->setCheck(false);
318  } else if (option == saveInvalidRoutes) {
319  removeInvalidRoutes->setCheck(false);
320  saveInvalidRoutes->setCheck(true);
321  selectInvalidRoutesAndCancel->setCheck(false);
322  } else if (option == selectInvalidRoutesAndCancel) {
323  removeInvalidRoutes->setCheck(false);
324  saveInvalidRoutes->setCheck(false);
325  selectInvalidRoutesAndCancel->setCheck(true);
326  }
327 }
328 
329 
330 void
332  removeInvalidRoutes->enable();
333  saveInvalidRoutes->enable();
334  selectInvalidRoutesAndCancel->enable();
335 }
336 
337 
338 void
340  removeInvalidRoutes->disable();
341  saveInvalidRoutes->disable();
342  selectInvalidRoutesAndCancel->disable();
343 }
344 
345 // ---------------------------------------------------------------------------
346 // GNEDialog_FixDemandElements::FixVehicleOptions - methods
347 // ---------------------------------------------------------------------------
348 
350  FXGroupBox(fixDemandElementsDialogParents->myMainFrame, "Solution for vehicles", GUIDesignGroupBoxFrame) {
351  // create horizontal frames for radio buttons
352  FXHorizontalFrame* radioButtonsFrame = new FXHorizontalFrame(this, GUIDesignHorizontalFrame);
353  // create radio button for remove invalid vehicles
354  removeInvalidVehicles = new FXRadioButton(radioButtonsFrame, "Remove invalid vehicles",
355  fixDemandElementsDialogParents, MID_CHOOSEN_OPERATION, GUIDesignRadioButton);
356  // create radio button for save invalid vehicles
357  saveInvalidVehicles = new FXRadioButton(radioButtonsFrame, "Save invalid vehicles",
358  fixDemandElementsDialogParents, MID_CHOOSEN_OPERATION, GUIDesignRadioButton);
359  // create radio button for select invalid vehicles
360  selectInvalidVehiclesAndCancel = new FXRadioButton(radioButtonsFrame, "Select invalid vehicle",
361  fixDemandElementsDialogParents, MID_CHOOSEN_OPERATION, GUIDesignRadioButton);
362  // leave option "buildConnectionBetweenLanes" and "removeInvalidRoutes" as default
363  removeInvalidVehicles->setCheck(true);
364 }
365 
366 
367 void
369  if (option == removeInvalidVehicles) {
370  removeInvalidVehicles->setCheck(true);
371  saveInvalidVehicles->setCheck(false);
372  selectInvalidVehiclesAndCancel->setCheck(false);
373  } else if (option == saveInvalidVehicles) {
374  removeInvalidVehicles->setCheck(false);
375  saveInvalidVehicles->setCheck(true);
376  selectInvalidVehiclesAndCancel->setCheck(false);
377  } else if (option == selectInvalidVehiclesAndCancel) {
378  removeInvalidVehicles->setCheck(false);
379  saveInvalidVehicles->setCheck(false);
380  selectInvalidVehiclesAndCancel->setCheck(true);
381  }
382 }
383 
384 
385 void
387  removeInvalidVehicles->enable();
388  saveInvalidVehicles->enable();
389  selectInvalidVehiclesAndCancel->enable();
390 }
391 
392 
393 void
395  removeInvalidVehicles->disable();
396  saveInvalidVehicles->disable();
397  selectInvalidVehiclesAndCancel->disable();
398 }
399 
400 // ---------------------------------------------------------------------------
401 // GNEDialog_FixDemandElements::FixStopOptions - methods
402 // ---------------------------------------------------------------------------
403 
405  FXGroupBox(fixDemandElementsDialogParents->myMainFrame, "Select a solution for stops", GUIDesignGroupBoxFrame) {
406  // create horizontal frames for radio buttons
407  FXHorizontalFrame* RadioButtons = new FXHorizontalFrame(this, GUIDesignHorizontalFrame);
408  // create Vertical Frame for left options
409  FXVerticalFrame* RadioButtonsLeft = new FXVerticalFrame(RadioButtons, GUIDesignAuxiliarVerticalFrame);
410  activateFriendlyPositionAndSave = new FXRadioButton(RadioButtonsLeft, "Activate friendlyPos and save",
411  fixDemandElementsDialogParents, MID_CHOOSEN_OPERATION, GUIDesignRadioButton);
412  saveInvalid = new FXRadioButton(RadioButtonsLeft, "Save invalid positions",
413  fixDemandElementsDialogParents, MID_CHOOSEN_OPERATION, GUIDesignRadioButton);
414  // create Vertical Frame for right options
415  FXVerticalFrame* RadioButtonsRight = new FXVerticalFrame(RadioButtons, GUIDesignAuxiliarVerticalFrame);
416  selectInvalidStopsAndCancel = new FXRadioButton(RadioButtonsRight, "Select invalid Stops",
417  fixDemandElementsDialogParents, MID_CHOOSEN_OPERATION, GUIDesignRadioButton);
418  fixPositionsAndSave = new FXRadioButton(RadioButtonsRight, "Fix positions and save",
419  fixDemandElementsDialogParents, MID_CHOOSEN_OPERATION, GUIDesignRadioButton);
420  // leave option "activateFriendlyPositionAndSave" as default
421  activateFriendlyPositionAndSave->setCheck(true);
422 }
423 
424 
425 void
427  if (option == activateFriendlyPositionAndSave) {
428  activateFriendlyPositionAndSave->setCheck(true);
429  fixPositionsAndSave->setCheck(false);
430  saveInvalid->setCheck(false);
431  selectInvalidStopsAndCancel->setCheck(false);
432  } else if (option == fixPositionsAndSave) {
433  activateFriendlyPositionAndSave->setCheck(false);
434  fixPositionsAndSave->setCheck(true);
435  saveInvalid->setCheck(false);
436  selectInvalidStopsAndCancel->setCheck(false);
437  } else if (option == saveInvalid) {
438  activateFriendlyPositionAndSave->setCheck(false);
439  fixPositionsAndSave->setCheck(false);
440  saveInvalid->setCheck(true);
441  selectInvalidStopsAndCancel->setCheck(false);
442  } else if (option == selectInvalidStopsAndCancel) {
443  activateFriendlyPositionAndSave->setCheck(false);
444  fixPositionsAndSave->setCheck(false);
445  saveInvalid->setCheck(false);
446  selectInvalidStopsAndCancel->setCheck(true);
447  }
448 }
449 
450 
451 void
453  activateFriendlyPositionAndSave->enable();
454  fixPositionsAndSave->enable();
455  saveInvalid->enable();
456  selectInvalidStopsAndCancel->enable();
457 }
458 
459 
460 void
462  activateFriendlyPositionAndSave->disable();
463  fixPositionsAndSave->disable();
464  saveInvalid->disable();
465  selectInvalidStopsAndCancel->disable();
466 }
467 
468 /****************************************************************************/
GNEDialog_FixDemandElements::FixStopOptions::saveInvalid
FXRadioButton * saveInvalid
Option "Save invalid".
Definition: GNEDialog_FixDemandElements.h:161
GUIDesignAuxiliarHorizontalFrame
#define GUIDesignAuxiliarHorizontalFrame
design for auxiliar (Without borders) horizontal frame used to pack another frames
Definition: GUIDesigns.h:289
ICON_ACCEPT
Definition: GUIIcons.h:380
GNEDemandElement
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEDemandElement.h:54
GNEDialog_FixDemandElements::FixVehicleOptions::disableFixVehicleOptions
void disableFixVehicleOptions()
disable consecutive lane options
Definition: GNEDialog_FixDemandElements.cpp:394
GNEDialog_FixDemandElements::FixVehicleOptions::selectInvalidVehiclesAndCancel
FXRadioButton * selectInvalidVehiclesAndCancel
Option "Select invalid vehicles and cancel".
Definition: GNEDialog_FixDemandElements.h:135
GNEDialog_FixDemandElements::FixVehicleOptions
groupbox for all radio buttons related with fix vehicle options
Definition: GNEDialog_FixDemandElements.h:113
GNEDialog_FixDemandElements::FixRouteOptions::disableFixRouteOptions
void disableFixRouteOptions()
disable position options
Definition: GNEDialog_FixDemandElements.cpp:339
GNEDialog_FixDemandElements::onCmdSelectOption
long onCmdSelectOption(FXObject *obj, FXSelector, void *)
Definition: GNEDialog_FixDemandElements.cpp:93
GNEDialog_FixDemandElements.h
GNEUndoList::p_end
void p_end()
End undo command sub-group. If the sub-group is still empty, it will be deleted; otherwise,...
Definition: GNEUndoList.cpp:80
GNEDialog_FixDemandElements::FixVehicleOptions::removeInvalidVehicles
FXRadioButton * removeInvalidVehicles
Option "remove invalid elements".
Definition: GNEDialog_FixDemandElements.h:129
GNEDialog_FixDemandElements::FixRouteOptions::removeInvalidRoutes
FXRadioButton * removeInvalidRoutes
Option "Remove invalid routes".
Definition: GNEDialog_FixDemandElements.h:103
GNEViewNet
Definition: GNEViewNet.h:43
SUMO_ATTR_ID
Definition: SUMOXMLDefinitions.h:379
GUIDesigns.h
GUIIconSubSys::getIcon
static FXIcon * getIcon(GUIIcon which)
returns a icon previously defined in the enum GUIIcon
Definition: GUIIconSubSys.cpp:602
GNEDialog_FixDemandElements::FixRouteOptions::FixRouteOptions
FixRouteOptions(GNEDialog_FixDemandElements *fixDemandElementsDialogParents)
constructor
Definition: GNEDialog_FixDemandElements.cpp:294
GUIDesignDialogBoxExplicit
#define GUIDesignDialogBoxExplicit(width, height)
design for dialog box with specift width and height (for example, additional dialogs)
Definition: GUIDesigns.h:461
GNEDialog_FixDemandElements::FixStopOptions
groupbox for all radio buttons related with fix stop options
Definition: GNEDialog_FixDemandElements.h:139
GUIAppEnum.h
GNEDialog_FixDemandElements::FixStopOptions::activateFriendlyPositionAndSave
FXRadioButton * activateFriendlyPositionAndSave
Option "Activate friendlyPos and save".
Definition: GNEDialog_FixDemandElements.h:155
GNEViewNet::getNet
GNENet * getNet() const
get the net object
Definition: GNEViewNet.cpp:927
GNEDialog_FixDemandElements::FixStopOptions::fixPositionsAndSave
FXRadioButton * fixPositionsAndSave
Option "Fix Positions and save".
Definition: GNEDialog_FixDemandElements.h:158
GNEDialog_FixDemandElements::myFixStopOptions
FixStopOptions * myFixStopOptions
fix stop options
Definition: GNEDialog_FixDemandElements.h:186
GUIDesignTableIconCellWidth
#define GUIDesignTableIconCellWidth
width of cells that only contains an Icon
Definition: GUIDesigns.h:483
GNEDialog_FixDemandElements::onCmdAccept
long onCmdAccept(FXObject *, FXSelector, void *)
event after press accept button
Definition: GNEDialog_FixDemandElements.cpp:102
GNEDialog_FixDemandElements::myFixRouteOptions
FixRouteOptions * myFixRouteOptions
fix route options
Definition: GNEDialog_FixDemandElements.h:180
GNEDialog_FixDemandElements::DemandList::myInvalidVehicles
std::vector< GNEDemandElement * > myInvalidVehicles
vector with the invalid vehicles
Definition: GNEDialog_FixDemandElements.h:77
GNEDialog_FixDemandElements::onCmdCancel
long onCmdCancel(FXObject *, FXSelector, void *)
event after press cancel button
Definition: GNEDialog_FixDemandElements.cpp:193
GUIDesignAuxiliarVerticalFrame
#define GUIDesignAuxiliarVerticalFrame
design for auxiliar (Without borders) horizontal frame used to pack another frames
Definition: GUIDesigns.h:292
GNEDemandElement.h
GUIDesignHorizontalFrame
#define GUIDesignHorizontalFrame
Definition: GUIDesigns.h:240
GNEViewNet.h
MID_GNE_ADDITIONALDIALOG_BUTTONACCEPT
accept button
Definition: GUIAppEnum.h:944
GNEDialog_FixDemandElements::DemandList
groupbox for list
Definition: GNEDialog_FixDemandElements.h:67
MID_GNE_FIXSTOPPINGPLACES_CHANGE
FixStoppingPlaces dialog.
Definition: GUIAppEnum.h:1035
GNEDialog_FixDemandElements::FixStopOptions::selectInvalidStopsAndCancel
FXRadioButton * selectInvalidStopsAndCancel
Option "Select invalid stops and cancel".
Definition: GNEDialog_FixDemandElements.h:164
GNEDialog_FixDemandElements
Dialog for edit rerouters.
Definition: GNEDialog_FixDemandElements.h:42
GNEDialog_FixDemandElements::myMainFrame
FXVerticalFrame * myMainFrame
main frame
Definition: GNEDialog_FixDemandElements.h:174
GNEViewNet::getUndoList
GNEUndoList * getUndoList() const
get the undoList object
Definition: GNEViewNet.cpp:933
GNEDialog_FixDemandElements::FixVehicleOptions::selectOption
void selectOption(FXObject *option)
select option
Definition: GNEDialog_FixDemandElements.cpp:368
GUIDesignGroupBoxFrame
#define GUIDesignGroupBoxFrame
Group box design extended over frame.
Definition: GUIDesigns.h:255
GNEDialog_FixDemandElements::DemandList::myInvalidRoutes
std::vector< GNEDemandElement * > myInvalidRoutes
vector with the invalid routes
Definition: GNEDialog_FixDemandElements.h:74
GUIDesignGroupBoxFrameFill
#define GUIDesignGroupBoxFrameFill
Group box design extended over frame (X and Y)
Definition: GUIDesigns.h:258
SUMO_ATTR_FRIENDLY_POS
Definition: SUMOXMLDefinitions.h:762
GNEDialog_FixDemandElements::DemandList::myTable
FXTable * myTable
list with the demand elements
Definition: GNEDialog_FixDemandElements.h:83
GNEDialog_FixDemandElements::myDemandList
DemandList * myDemandList
list with the demand elements
Definition: GNEDialog_FixDemandElements.h:177
GUIDesignButtonAccept
#define GUIDesignButtonAccept
Accept Button.
Definition: GUIDesigns.h:117
toString
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
Definition: ToString.h:48
MID_GNE_ADDITIONALDIALOG_BUTTONCANCEL
cancel button
Definition: GUIAppEnum.h:946
GNEDialog_FixDemandElements::FixRouteOptions::saveInvalidRoutes
FXRadioButton * saveInvalidRoutes
Option "Save invalid routes".
Definition: GNEDialog_FixDemandElements.h:106
GUIDesignRadioButton
#define GUIDesignRadioButton
Definition: GUIDesigns.h:155
ICON_CANCEL
Definition: GUIIcons.h:381
GNEDialog_FixDemandElements::FixStopOptions::selectOption
void selectOption(FXObject *option)
select option
Definition: GNEDialog_FixDemandElements.cpp:426
GNEDialog_FixDemandElements::FixRouteOptions
groupbox for all radio buttons related with fix route options
Definition: GNEDialog_FixDemandElements.h:87
GNEDialog_FixDemandElements::FixRouteOptions::selectInvalidRoutesAndCancel
FXRadioButton * selectInvalidRoutesAndCancel
Option "Select invalid routes and cancel".
Definition: GNEDialog_FixDemandElements.h:109
GNEDialog_FixDemandElements::FixRouteOptions::selectOption
void selectOption(FXObject *option)
select option
Definition: GNEDialog_FixDemandElements.cpp:313
ICON_ROUTE
Definition: GUIIcons.h:292
GNEDialog_FixDemandElements::FixRouteOptions::enableFixRouteOptions
void enableFixRouteOptions()
enable position options
Definition: GNEDialog_FixDemandElements.cpp:331
GNEDialog_FixDemandElements::myViewNet
GNEViewNet * myViewNet
view net
Definition: GNEDialog_FixDemandElements.h:171
GNEDialog_FixDemandElements::FixVehicleOptions::enableFixVehicleOptions
void enableFixVehicleOptions()
enable consecutive lane options
Definition: GNEDialog_FixDemandElements.cpp:386
GUIDesignAuxiliarFrame
#define GUIDesignAuxiliarFrame
design for auxiliar (Without borders) frames used to pack another frames extended in all directions
Definition: GUIDesigns.h:286
GUIDesignButtonCancel
#define GUIDesignButtonCancel
Cancel Button.
Definition: GUIDesigns.h:120
config.h
GNEDialog_FixDemandElements::FixVehicleOptions::FixVehicleOptions
FixVehicleOptions(GNEDialog_FixDemandElements *fixDemandElementsDialogParents)
constructor
Definition: GNEDialog_FixDemandElements.cpp:349
GNE_ATTR_SELECTED
element is selected
Definition: SUMOXMLDefinitions.h:968
GUIDesignTableAdditionals
#define GUIDesignTableAdditionals
design for tables used in additional dialogs
Definition: GUIDesigns.h:480
GNENet::deleteDemandElement
void deleteDemandElement(GNEDemandElement *demandElement, GNEUndoList *undoList)
remove demand element
Definition: GNENet.cpp:638
GNEUndoList::p_begin
void p_begin(const std::string &description)
Begin undo command sub-group. This begins a new group of commands that are treated as a single comman...
Definition: GNEUndoList.cpp:73
GNEDialog_FixDemandElements::~GNEDialog_FixDemandElements
~GNEDialog_FixDemandElements()
destructor
Definition: GNEDialog_FixDemandElements.cpp:88
GNEDialog_FixDemandElements::FixStopOptions::FixStopOptions
FixStopOptions(GNEDialog_FixDemandElements *fixDemandElementsDialogParents)
build Position Options
Definition: GNEDialog_FixDemandElements.cpp:404
GNEDialog_FixDemandElements::FixStopOptions::enableFixStopOptions
void enableFixStopOptions()
enable position options
Definition: GNEDialog_FixDemandElements.cpp:452
FXDEFMAP
FXDEFMAP(GNEDialog_FixDemandElements) GNEDialog_FixDemandElementsMap[]
GNEDialog_FixDemandElements::FixVehicleOptions::saveInvalidVehicles
FXRadioButton * saveInvalidVehicles
Option "save invalid vehicles".
Definition: GNEDialog_FixDemandElements.h:132
GNEDialog_FixDemandElements::DemandList::myInvalidStops
std::vector< GNEDemandElement * > myInvalidStops
vector with the invalid stops
Definition: GNEDialog_FixDemandElements.h:80
GNENet.h
GNEDialog_FixDemandElements::myFixVehicleOptions
FixVehicleOptions * myFixVehicleOptions
fix vehicle options
Definition: GNEDialog_FixDemandElements.h:183
GNEUndoList.h
MID_CHOOSEN_OPERATION
set type of selection
Definition: GUIAppEnum.h:493
GNEDialog_FixDemandElements::DemandList::DemandList
DemandList(GNEDialog_FixDemandElements *fixDemandElementsDialogParents, const std::vector< GNEDemandElement * > &invalidDemandElements)
constructor
Definition: GNEDialog_FixDemandElements.cpp:203
GNEDialog_FixDemandElements::FixStopOptions::disableFixStopOptions
void disableFixStopOptions()
disable position options
Definition: GNEDialog_FixDemandElements.cpp:461