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