Eclipse SUMO - Simulation of Urban MObility
GNECalibratorFlowDialog.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 for edit calibrator flows
15 /****************************************************************************/
16 
17 // ===========================================================================
18 // included modules
19 // ===========================================================================
20 #include <config.h>
21 
26 #include <netedit/GNEViewNet.h>
27 #include <netedit/GNENet.h>
28 
29 #include <netedit/GNEUndoList.h>
30 
32 
33 
34 // ===========================================================================
35 // FOX callback mapping
36 // ===========================================================================
37 
38 FXDEFMAP(GNECalibratorFlowDialog) GNECalibratorFlowDialogMap[] = {
43 };
44 
45 // Object implementation
46 FXIMPLEMENT(GNECalibratorFlowDialog, GNEAdditionalDialog, GNECalibratorFlowDialogMap, ARRAYNUMBER(GNECalibratorFlowDialogMap))
47 
48 // ===========================================================================
49 // member method definitions
50 // ===========================================================================
51 
52 GNECalibratorFlowDialog::GNECalibratorFlowDialog(GNEAdditional* editedCalibratorFlow, bool updatingElement) :
53  GNEAdditionalDialog(editedCalibratorFlow, updatingElement, 600, 280),
54  myCalibratorFlowValid(false),
55  myInvalidAttr(SUMO_ATTR_VEHSPERHOUR) {
56  // change default header
57  std::string typeOfOperation = updatingElement ? "Edit " + myEditedAdditional->getTagStr() + " of " : "Create " + myEditedAdditional->getTagStr() + " for ";
58  changeAdditionalDialogHeader(typeOfOperation + myEditedAdditional->getParentAdditionals().at(0)->getTagStr() + " '" + myEditedAdditional->getParentAdditionals().at(0)->getID() + "'");
59 
60  // Create auxiliar frames for tables
61  FXHorizontalFrame* columns = new FXHorizontalFrame(myContentFrame, GUIDesignUniformHorizontalFrame);
62  FXVerticalFrame* columnLeftLabel = new FXVerticalFrame(columns, GUIDesignAuxiliarFrame);
63  FXVerticalFrame* columnLeftValue = new FXVerticalFrame(columns, GUIDesignAuxiliarFrame);
64  FXVerticalFrame* columnRightLabel = new FXVerticalFrame(columns, GUIDesignAuxiliarFrame);
65  FXVerticalFrame* columnRightValue = new FXVerticalFrame(columns, GUIDesignAuxiliarFrame);
66 
67  // 1 create combobox for type
68  new FXLabel(columnLeftLabel, toString(SUMO_TAG_VTYPE).c_str(), nullptr, GUIDesignLabelThick);
69  myComboBoxVehicleType = new FXComboBox(columnLeftValue, GUIDesignComboBoxNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignComboBox);
70  // 2 create combobox for route
71  new FXLabel(columnLeftLabel, toString(SUMO_ATTR_ROUTE).c_str(), nullptr, GUIDesignLabelThick);
72  myComboBoxRoute = new FXComboBox(columnLeftValue, GUIDesignComboBoxNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignComboBox);
73  // 3 create textfield for vehs per hour
74  new FXLabel(columnLeftLabel, toString(SUMO_ATTR_VEHSPERHOUR).c_str(), nullptr, GUIDesignLabelThick);
75  myTextFieldVehsPerHour = new FXTextField(columnLeftValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
76  myTextFieldVehsPerHour->setTextColor(FXRGB(255, 0, 0));
77  // 4 create textfield for vehs per hour
78  new FXLabel(columnLeftLabel, toString(SUMO_ATTR_SPEED).c_str(), nullptr, GUIDesignLabelThick);
79  myTextFieldSpeed = new FXTextField(columnLeftValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
80  myTextFieldSpeed->setTextColor(FXRGB(255, 0, 0));
81  // 5 create textfield for color
82  new FXLabel(columnLeftLabel, toString(SUMO_ATTR_COLOR).c_str(), nullptr, GUIDesignLabelThick);
83  myTextFieldColor = new FXTextField(columnLeftValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
84  // 6 create textfield for lane
85  new FXLabel(columnLeftLabel, toString(SUMO_ATTR_DEPARTLANE).c_str(), nullptr, GUIDesignLabelThick);
86  myTextFieldDepartLane = new FXTextField(columnLeftValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
87  // 7 create textfield for pos
88  new FXLabel(columnLeftLabel, toString(SUMO_ATTR_DEPARTPOS).c_str(), nullptr, GUIDesignLabelThick);
89  myTextFieldDepartPos = new FXTextField(columnLeftValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
90  // 8 create textfield for speed
91  new FXLabel(columnLeftLabel, toString(SUMO_ATTR_DEPARTSPEED).c_str(), nullptr, GUIDesignLabelThick);
92  myTextFieldDepartSpeed = new FXTextField(columnLeftValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
93  // 9 create textfield for lane
94  new FXLabel(columnLeftLabel, toString(SUMO_ATTR_ARRIVALLANE).c_str(), nullptr, GUIDesignLabelThick);
95  myTextFieldArrivalLane = new FXTextField(columnLeftValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
96  // 10 create textfield for arrival pos
97  new FXLabel(columnLeftLabel, toString(SUMO_ATTR_ARRIVALPOS).c_str(), nullptr, GUIDesignLabelThick);
98  myTextFieldArrivalPos = new FXTextField(columnLeftValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
99  // 11 create textfield for arrival speed
100  new FXLabel(columnRightLabel, toString(SUMO_ATTR_ARRIVALSPEED).c_str(), nullptr, GUIDesignLabelThick);
101  myTextFieldArrivalSpeed = new FXTextField(columnRightValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
102  // 12 create textfield for arrival line
103  new FXLabel(columnRightLabel, toString(SUMO_ATTR_LINE).c_str(), nullptr, GUIDesignLabelThick);
104  myTextFieldLine = new FXTextField(columnRightValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
105  // 13 create textfield for person number
106  new FXLabel(columnRightLabel, toString(SUMO_ATTR_PERSON_NUMBER).c_str(), nullptr, GUIDesignLabelThick);
107  myTextFieldPersonNumber = new FXTextField(columnRightValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
108  // 14 create textfield for container number
109  new FXLabel(columnRightLabel, toString(SUMO_ATTR_CONTAINER_NUMBER).c_str(), nullptr, GUIDesignLabelThick);
110  myTextFieldContainerNumber = new FXTextField(columnRightValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
111  // 15 create textfield for reroute
112  new FXLabel(columnRightLabel, toString(SUMO_ATTR_REROUTE).c_str(), nullptr, GUIDesignLabelThick);
113  myRerouteCheckButton = new FXCheckButton(columnRightValue, "false", this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignCheckButton);
114  // 16 create textfield for depart pos lat
115  new FXLabel(columnRightLabel, toString(SUMO_ATTR_DEPARTPOS_LAT).c_str(), nullptr, GUIDesignLabelThick);
116  myTextFieldDepartPosLat = new FXTextField(columnRightValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
117  // 17 create textfield for arrival pos lat
118  new FXLabel(columnRightLabel, toString(SUMO_ATTR_ARRIVALPOS_LAT).c_str(), nullptr, GUIDesignLabelThick);
119  myTextFieldArrivalPosLat = new FXTextField(columnRightValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
120  // 18 create textfield for begin
121  new FXLabel(columnRightLabel, toString(SUMO_ATTR_BEGIN).c_str(), nullptr, GUIDesignLabelThick);
122  myTextFieldBegin = new FXTextField(columnRightValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
123  // 19 create textfield for end
124  new FXLabel(columnRightLabel, toString(SUMO_ATTR_END).c_str(), nullptr, GUIDesignLabelThick);
125  myTextFieldEnd = new FXTextField(columnRightValue, GUIDesignTextFieldNCol, this, MID_GNE_CALIBRATORDIALOG_SET_VARIABLE, GUIDesignTextField);
126 
127  // fill comboBox of VTypes
128  for (auto i : myEditedAdditional->getViewNet()->getNet()->getAttributeCarriers().demandElements.at(SUMO_TAG_VTYPE)) {
129  myComboBoxVehicleType->appendItem(i.first.c_str());
130  }
131  myComboBoxVehicleType->setNumVisible((int)myComboBoxVehicleType->getNumItems());
132 
133  // fill comboBox of Routes
134  for (auto i : myEditedAdditional->getViewNet()->getNet()->getAttributeCarriers().demandElements.at(SUMO_TAG_ROUTE)) {
135  myComboBoxRoute->appendItem(i.first.c_str());
136  }
137  myComboBoxRoute->setNumVisible((int)myComboBoxRoute->getNumItems());
138 
139  // update tables
140  updateCalibratorFlowValues();
141 
142  // start a undo list for editing local to this additional
143  initChanges();
144 
145  // add element if we aren't updating an existent element
146  if (myUpdatingElement == false) {
147  myEditedAdditional->getViewNet()->getUndoList()->add(new GNEChange_Additional(myEditedAdditional, true), true);
148  }
149 
150  // open as modal dialog
151  openAsModalDialog();
152 }
153 
154 
156 
157 
158 long
159 GNECalibratorFlowDialog::onCmdAccept(FXObject*, FXSelector, void*) {
160  std::string operation1 = myUpdatingElement ? ("updating") : ("creating");
161  std::string operation2 = myUpdatingElement ? ("updated") : ("created");
162  std::string parentTagString = myEditedAdditional->getParentAdditionals().at(0)->getTagStr();
163  std::string tagString = myEditedAdditional->getTagStr();
164  if (myCalibratorFlowValid == false) {
165  // write warning if netedit is running in testing mode
166  WRITE_DEBUG("Opening FXMessageBox of type 'warning'");
167  // open warning dialog box
168  FXMessageBox::warning(getApp(), MBOX_OK,
169  ("Error " + operation1 + " " + parentTagString + "'s " + tagString).c_str(), "%s",
170  (parentTagString + "'s " + tagString + " cannot be " + operation2 +
171  " because parameter " + toString(myInvalidAttr) +
172  " is invalid.").c_str());
173  // write warning if netedit is running in testing mode
174  WRITE_DEBUG("Closed FXMessageBox of type 'warning' with 'OK'");
175  return 0;
176  } else if (!myEditedAdditional->getParentAdditionals().at(0)->checkChildAdditionalsOverlapping()) {
177  // write warning if netedit is running in testing mode
178  WRITE_DEBUG("Opening FXMessageBox of type 'warning'");
179  // open warning dialog box
180  FXMessageBox::warning(getApp(), MBOX_OK,
181  ("Error " + operation1 + " " + parentTagString + "'s " + tagString).c_str(), "%s",
182  (parentTagString + "'s " + tagString + " cannot be " + operation2 +
183  " because there is overlapping with another " + tagString + ".").c_str());
184  // write warning if netedit is running in testing mode
185  WRITE_DEBUG("Closed FXMessageBox of type 'warning' with 'OK'");
186  return 0;
187  } else {
188  // accept changes before closing dialog
189  acceptChanges();
190  // stop dialgo sucesfully
191  getApp()->stopModal(this, TRUE);
192  return 1;
193  }
194 }
195 
196 
197 long
198 GNECalibratorFlowDialog::onCmdCancel(FXObject*, FXSelector, void*) {
199  // cancel changes
200  cancelChanges();
201  // Stop Modal
202  getApp()->stopModal(this, FALSE);
203  return 1;
204 }
205 
206 
207 long
208 GNECalibratorFlowDialog::onCmdReset(FXObject*, FXSelector, void*) {
209  // reset changes
210  resetChanges();
211  // update tables
213  return 1;
214 }
215 
216 
217 long
218 GNECalibratorFlowDialog::onCmdSetVariable(FXObject*, FXSelector, void*) {
219  // At start we assumed, that all values are valid
220  myCalibratorFlowValid = true;
222  // get pointer to undo list (Only for code legilibity)
224  // set color of myComboBoxVehicleType, depending if current value is valid or not
226  myComboBoxVehicleType->setTextColor(FXRGB(0, 0, 0));
228  } else {
229  myComboBoxVehicleType->setTextColor(FXRGB(255, 0, 0));
230  myCalibratorFlowValid = false;
232  }
233  // set color of myComboBoxRoute, depending if current value is valid or not
234  if (myEditedAdditional->isValid(SUMO_ATTR_ROUTE, myComboBoxRoute->getText().text())) {
235  myComboBoxRoute->setTextColor(FXRGB(0, 0, 0));
236  myEditedAdditional->setAttribute(SUMO_ATTR_ROUTE, myComboBoxRoute->getText().text(), undoList);
237  } else {
238  myComboBoxRoute->setTextColor(FXRGB(255, 0, 0));
239  myCalibratorFlowValid = false;
241  }
242  // set color of myTextFieldVehsPerHour, depending if current value is valid or not
244  myTextFieldVehsPerHour->setTextColor(FXRGB(0, 0, 0));
246  } else {
247  myTextFieldVehsPerHour->setTextColor(FXRGB(255, 0, 0));
248  myCalibratorFlowValid = false;
250  }
251  // set color of myTextFieldSpeed, depending if current value is valid or not
252  if (myEditedAdditional->isValid(SUMO_ATTR_SPEED, myTextFieldSpeed->getText().text())) {
253  myTextFieldSpeed->setTextColor(FXRGB(0, 0, 0));
254  myEditedAdditional->setAttribute(SUMO_ATTR_SPEED, myTextFieldSpeed->getText().text(), undoList);
255  // Check VehsPerHour again
257  myTextFieldVehsPerHour->setTextColor(FXRGB(0, 0, 0));
260  myCalibratorFlowValid = true;
262  }
263  }
264  } else {
265  myTextFieldSpeed->setTextColor(FXRGB(255, 0, 0));
266  myCalibratorFlowValid = false;
268  }
269  // set color of myTextFieldColor, depending if current value is valid or not
270  if (myEditedAdditional->isValid(SUMO_ATTR_COLOR, myTextFieldColor->getText().text())) {
271  myTextFieldColor->setTextColor(FXRGB(0, 0, 0));
272  myEditedAdditional->setAttribute(SUMO_ATTR_COLOR, myTextFieldColor->getText().text(), undoList);
273  } else {
274  myTextFieldColor->setTextColor(FXRGB(255, 0, 0));
275  myCalibratorFlowValid = false;
277  }
278  // set color of myTextFieldDepartLane, depending if current value is valid or not
280  myTextFieldDepartLane->setTextColor(FXRGB(0, 0, 0));
282  } else {
283  myTextFieldDepartLane->setTextColor(FXRGB(255, 0, 0));
284  myCalibratorFlowValid = false;
286  }
287  // set color of myTextFieldDepartPos, depending if current value is valid or not
289  myTextFieldDepartPos->setTextColor(FXRGB(0, 0, 0));
291  } else {
292  myTextFieldDepartPos->setTextColor(FXRGB(255, 0, 0));
293  myCalibratorFlowValid = false;
295  }
296  // set color of setDepartSpeed, depending if current value is valid or not
298  myTextFieldDepartSpeed->setTextColor(FXRGB(0, 0, 0));
300  } else {
301  myTextFieldDepartSpeed->setTextColor(FXRGB(255, 0, 0));
302  myCalibratorFlowValid = false;
304  }
305  // set color of myTextFieldArrivalLane, depending if current value is valid or not
307  myTextFieldArrivalLane->setTextColor(FXRGB(0, 0, 0));
309  } else {
310  myTextFieldArrivalLane->setTextColor(FXRGB(255, 0, 0));
311  myCalibratorFlowValid = false;
313  }
314  // set color of myTextFieldArrivalPos, depending if current value is valid or not
316  myTextFieldArrivalPos->setTextColor(FXRGB(0, 0, 0));
318  } else {
319  myTextFieldArrivalPos->setTextColor(FXRGB(255, 0, 0));
320  myCalibratorFlowValid = false;
322  }
323  // set color of setArrivalSpeed, depending if current value is valid or not
325  myTextFieldArrivalSpeed->setTextColor(FXRGB(0, 0, 0));
327  } else {
328  myTextFieldArrivalSpeed->setTextColor(FXRGB(255, 0, 0));
329  myCalibratorFlowValid = false;
331  }
332  // set color of myTextFieldLine, depending if current value is valid or not
333  if (myEditedAdditional->isValid(SUMO_ATTR_LINE, myTextFieldLine->getText().text())) {
334  myTextFieldLine->setTextColor(FXRGB(0, 0, 0));
335  myEditedAdditional->setAttribute(SUMO_ATTR_LINE, myTextFieldLine->getText().text(), undoList);
336  } else {
337  myTextFieldLine->setTextColor(FXRGB(255, 0, 0));
338  myCalibratorFlowValid = false;
340  }
341  // set color of myTextFieldPersonNumber, depending if current value is valid or not
343  myTextFieldPersonNumber->setTextColor(FXRGB(0, 0, 0));
345  } else {
346  myTextFieldPersonNumber->setTextColor(FXRGB(255, 0, 0));
347  myCalibratorFlowValid = false;
349  }
350  // set color of myTextFieldContainerNumber, depending if current value is valid or not
352  myTextFieldContainerNumber->setTextColor(FXRGB(0, 0, 0));
354  } else {
355  myTextFieldContainerNumber->setTextColor(FXRGB(255, 0, 0));
356  myCalibratorFlowValid = false;
358  }
359  // set reroute
360  if (myRerouteCheckButton->getCheck()) {
362  myRerouteCheckButton->setText("true");
363  } else {
365  myRerouteCheckButton->setText("false");
366  }
367  // set color of myTextFieldDepartPosLat, depending if current value is valid or not
369  myTextFieldDepartPosLat->setTextColor(FXRGB(0, 0, 0));
371  } else {
372  myTextFieldDepartPosLat->setTextColor(FXRGB(255, 0, 0));
373  myCalibratorFlowValid = false;
375  }
376  // set color of myTextFieldArrivalPosLat, depending if current value is valid or not
378  myTextFieldArrivalPosLat->setTextColor(FXRGB(0, 0, 0));
380  } else {
381  myTextFieldArrivalPosLat->setTextColor(FXRGB(255, 0, 0));
382  myCalibratorFlowValid = false;
384  }
385  // set color of myTextFieldBegin, depending if current value is valid or not
386  if (myEditedAdditional->isValid(SUMO_ATTR_BEGIN, myTextFieldBegin->getText().text())) {
387  myTextFieldBegin->setTextColor(FXRGB(0, 0, 0));
388  myEditedAdditional->setAttribute(SUMO_ATTR_BEGIN, myTextFieldBegin->getText().text(), undoList);
389  } else {
390  myTextFieldBegin->setTextColor(FXRGB(255, 0, 0));
391  myCalibratorFlowValid = false;
393  }
394  // set color of myTextFieldEnd, depending if current value is valid or not
395  if (myEditedAdditional->isValid(SUMO_ATTR_END, myTextFieldEnd->getText().text())) {
396  myTextFieldEnd->setTextColor(FXRGB(0, 0, 0));
397  myEditedAdditional->setAttribute(SUMO_ATTR_END, myTextFieldEnd->getText().text(), undoList);
398  } else {
399  myTextFieldEnd->setTextColor(FXRGB(255, 0, 0));
400  myCalibratorFlowValid = false;
402  }
403  return 1;
404 }
405 
406 
407 void
409  // update fields
424  myRerouteCheckButton->setCheck(GNEAttributeCarrier::parse<bool>(myEditedAdditional->getAttribute(SUMO_ATTR_REROUTE).c_str()));
429 }
430 
431 
432 /****************************************************************************/
SUMO_ATTR_TYPE
@ SUMO_ATTR_TYPE
Definition: SUMOXMLDefinitions.h:381
FXDEFMAP
FXDEFMAP(GNECalibratorFlowDialog) GNECalibratorFlowDialogMap[]
GNEAdditional
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEAdditional.h:48
GUIDesignTextFieldNCol
#define GUIDesignTextFieldNCol
Num of column of text field.
Definition: GUIDesigns.h:42
GUIDesignLabelThick
#define GUIDesignLabelThick
label extended over frame with thick and with text justify to left and height of 23
Definition: GUIDesigns.h:158
GNECalibratorFlowDialog::myRerouteCheckButton
FXCheckButton * myRerouteCheckButton
checkButton for Reroute
Definition: GNECalibratorFlowDialog.h:120
GNECalibratorFlowDialog::myTextFieldDepartLane
FXTextField * myTextFieldDepartLane
TextField for Depart Lane.
Definition: GNECalibratorFlowDialog.h:93
GNECalibratorFlowDialog::~GNECalibratorFlowDialog
~GNECalibratorFlowDialog()
destructor
Definition: GNECalibratorFlowDialog.cpp:155
GNECalibratorFlowDialog::onCmdCancel
long onCmdCancel(FXObject *, FXSelector, void *)
event after press cancel button
Definition: GNECalibratorFlowDialog.cpp:198
GUIDesignUniformHorizontalFrame
#define GUIDesignUniformHorizontalFrame
design for horizontal frame used to pack another frames with a uniform width
Definition: GUIDesigns.h:279
SUMO_ATTR_LINE
@ SUMO_ATTR_LINE
Definition: SUMOXMLDefinitions.h:775
GNEChange_Additional
Definition: GNEChange_Additional.h:44
GNEAdditionalDialog
Dialog to edit sequences, parameters, etc.. of Additionals.
Definition: GNEAdditionalDialog.h:44
SUMO_ATTR_ARRIVALPOS_LAT
@ SUMO_ATTR_ARRIVALPOS_LAT
Definition: SUMOXMLDefinitions.h:438
GNECalibratorFlowDialog
Dialog for edit rerouter intervals.
Definition: GNECalibratorFlowDialog.h:42
GUIDesignComboBoxNCol
#define GUIDesignComboBoxNCol
number of column of every combo box
Definition: GUIDesigns.h:217
GNECalibratorFlowDialog::myTextFieldBegin
FXTextField * myTextFieldBegin
TextField for Begin.
Definition: GNECalibratorFlowDialog.h:129
SUMO_ATTR_COLOR
@ SUMO_ATTR_COLOR
A color information.
Definition: SUMOXMLDefinitions.h:704
GNECalibratorFlowDialog::myTextFieldArrivalPos
FXTextField * myTextFieldArrivalPos
TextField for Arrival Pos.
Definition: GNECalibratorFlowDialog.h:105
SUMO_ATTR_SPEED
@ SUMO_ATTR_SPEED
Definition: SUMOXMLDefinitions.h:384
SUMO_ATTR_ARRIVALPOS
@ SUMO_ATTR_ARRIVALPOS
Definition: SUMOXMLDefinitions.h:437
GUIDesigns.h
GNEAdditional::setAttribute
virtual void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)=0
method for setting the attribute and letting the object perform additional changes
SUMO_TAG_VTYPE
@ SUMO_TAG_VTYPE
description of a vehicle type
Definition: SUMOXMLDefinitions.h:121
GNECalibratorFlowDialog::myTextFieldArrivalPosLat
FXTextField * myTextFieldArrivalPosLat
TextField for ArrivalPosLat.
Definition: GNECalibratorFlowDialog.h:126
GUIDesignTextField
#define GUIDesignTextField
Definition: GUIDesigns.h:33
GUIAppEnum.h
SUMO_ATTR_BEGIN
@ SUMO_ATTR_BEGIN
weights: time range begin
Definition: SUMOXMLDefinitions.h:678
GNEAdditionalDialog::cancelChanges
void cancelChanges()
Cancel changes did in this dialog.
Definition: GNEAdditionalDialog.cpp:135
GNEChange_Additional.h
SUMO_ATTR_PERSON_NUMBER
@ SUMO_ATTR_PERSON_NUMBER
Definition: SUMOXMLDefinitions.h:651
GNECalibratorFlowDialog.h
GNEHierarchicalParentElements::getParentAdditionals
const std::vector< GNEAdditional * > & getParentAdditionals() const
get parent additionals
Definition: GNEHierarchicalParentElements.cpp:85
GNEAdditional::getAttribute
virtual std::string getAttribute(SumoXMLAttr key) const =0
SUMO_ATTR_ARRIVALSPEED
@ SUMO_ATTR_ARRIVALSPEED
Definition: SUMOXMLDefinitions.h:439
MID_GNE_ADDITIONALDIALOG_BUTTONRESET
@ MID_GNE_ADDITIONALDIALOG_BUTTONRESET
reset button
Definition: GUIAppEnum.h:973
GNECalibratorFlowDialog::myTextFieldColor
FXTextField * myTextFieldColor
TextField for Color.
Definition: GNECalibratorFlowDialog.h:90
GNECalibratorFlowDialog::myTextFieldDepartPosLat
FXTextField * myTextFieldDepartPosLat
TextField for DepartPosLat.
Definition: GNECalibratorFlowDialog.h:123
SUMO_ATTR_NOTHING
@ SUMO_ATTR_NOTHING
invalid attribute
Definition: SUMOXMLDefinitions.h:374
SUMO_ATTR_DEPARTPOS_LAT
@ SUMO_ATTR_DEPARTPOS_LAT
Definition: SUMOXMLDefinitions.h:434
GNEViewNet.h
MID_GNE_ADDITIONALDIALOG_BUTTONACCEPT
@ MID_GNE_ADDITIONALDIALOG_BUTTONACCEPT
accept button
Definition: GUIAppEnum.h:969
SUMO_ATTR_DEPARTSPEED
@ SUMO_ATTR_DEPARTSPEED
Definition: SUMOXMLDefinitions.h:435
SUMO_ATTR_ROUTE
@ SUMO_ATTR_ROUTE
Definition: SUMOXMLDefinitions.h:440
GNECalibratorFlowDialog::myComboBoxRoute
FXComboBox * myComboBoxRoute
TextField for Route.
Definition: GNECalibratorFlowDialog.h:81
SUMO_ATTR_DEPARTLANE
@ SUMO_ATTR_DEPARTLANE
Definition: SUMOXMLDefinitions.h:432
GNECalibratorFlowDialog::myTextFieldArrivalLane
FXTextField * myTextFieldArrivalLane
TextField for Arrival Lane.
Definition: GNECalibratorFlowDialog.h:102
GNECalibratorFlowDialog::myTextFieldEnd
FXTextField * myTextFieldEnd
TextField for End.
Definition: GNECalibratorFlowDialog.h:132
GUIDesignCheckButton
#define GUIDesignCheckButton
checkButton placed in left position
Definition: GUIDesigns.h:115
SUMO_ATTR_CONTAINER_NUMBER
@ SUMO_ATTR_CONTAINER_NUMBER
Definition: SUMOXMLDefinitions.h:652
GNEAdditionalDialog::myUpdatingElement
bool myUpdatingElement
flag to indicate if additional are being created or modified (cannot be changed after open dialog)
Definition: GNEAdditionalDialog.h:84
GNEViewNet::getUndoList
GNEUndoList * getUndoList() const
get the undoList object
Definition: GNEViewNet.cpp:1020
GNECalibratorFlowDialog::myTextFieldSpeed
FXTextField * myTextFieldSpeed
TextField for Speed.
Definition: GNECalibratorFlowDialog.h:87
GNECalibratorFlowDialog::myCalibratorFlowValid
bool myCalibratorFlowValid
flag to check if current calibrator flow is valid
Definition: GNECalibratorFlowDialog.h:72
GNECalibratorFlowDialog::myTextFieldArrivalSpeed
FXTextField * myTextFieldArrivalSpeed
TextField for Arrival Speed.
Definition: GNECalibratorFlowDialog.h:108
GNEAdditionalDialog::myEditedAdditional
GNEAdditional * myEditedAdditional
pointer to edited aditional
Definition: GNEAdditionalDialog.h:81
GNECalibratorFlowDialog::myTextFieldLine
FXTextField * myTextFieldLine
TextField for Line.
Definition: GNECalibratorFlowDialog.h:111
GNECalibratorFlowDialog::myComboBoxVehicleType
FXComboBox * myComboBoxVehicleType
ComboBox for Type.
Definition: GNECalibratorFlowDialog.h:78
toString
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
Definition: ToString.h:47
MID_GNE_ADDITIONALDIALOG_BUTTONCANCEL
@ MID_GNE_ADDITIONALDIALOG_BUTTONCANCEL
cancel button
Definition: GUIAppEnum.h:971
GNECalibratorFlowDialog::myTextFieldDepartSpeed
FXTextField * myTextFieldDepartSpeed
TextField for Depart Speed.
Definition: GNECalibratorFlowDialog.h:99
GNECalibratorFlowDialog::onCmdAccept
long onCmdAccept(FXObject *, FXSelector, void *)
Definition: GNECalibratorFlowDialog.cpp:159
MID_GNE_CALIBRATORDIALOG_SET_VARIABLE
@ MID_GNE_CALIBRATORDIALOG_SET_VARIABLE
set new variable
Definition: GUIAppEnum.h:1038
SUMO_ATTR_REROUTE
@ SUMO_ATTR_REROUTE
Definition: SUMOXMLDefinitions.h:648
GNEAdditionalDialog::acceptChanges
void acceptChanges()
Accept changes did in this dialog.
Definition: GNEAdditionalDialog.cpp:124
GUIDesignComboBox
#define GUIDesignComboBox
Definition: GUIDesigns.h:205
GNEAdditional::getViewNet
GNEViewNet * getViewNet() const
Returns a pointer to GNEViewNet in which additional element is located.
Definition: GNEAdditional.cpp:307
GNECalibrator.h
GUIDesignAuxiliarFrame
#define GUIDesignAuxiliarFrame
design for auxiliar (Without borders) frames used to pack another frames extended in all directions
Definition: GUIDesigns.h:270
SUMO_TAG_ROUTE
@ SUMO_TAG_ROUTE
begin/end of the description of a route
Definition: SUMOXMLDefinitions.h:125
config.h
GNECalibratorFlowDialog::myTextFieldVehsPerHour
FXTextField * myTextFieldVehsPerHour
TextField for VehsPerHour.
Definition: GNECalibratorFlowDialog.h:84
GNECalibratorFlowDialog::myTextFieldContainerNumber
FXTextField * myTextFieldContainerNumber
TextField for Container Number.
Definition: GNECalibratorFlowDialog.h:117
SUMO_ATTR_END
@ SUMO_ATTR_END
weights: time range end
Definition: SUMOXMLDefinitions.h:680
SUMO_ATTR_DEPARTPOS
@ SUMO_ATTR_DEPARTPOS
Definition: SUMOXMLDefinitions.h:433
GNEAttributeCarrier::getTagStr
const std::string & getTagStr() const
get tag assigned to this object in string format
Definition: GNEAttributeCarrier.cpp:1267
GNEUndoList
Definition: GNEUndoList.h:48
SUMO_ATTR_VEHSPERHOUR
@ SUMO_ATTR_VEHSPERHOUR
Definition: SUMOXMLDefinitions.h:786
GNECalibratorFlowDialog::myInvalidAttr
SumoXMLAttr myInvalidAttr
current sumo attribute invalid
Definition: GNECalibratorFlowDialog.h:75
GNECalibratorFlowDialog::onCmdSetVariable
long onCmdSetVariable(FXObject *, FXSelector, void *)
event after change value
Definition: GNECalibratorFlowDialog.cpp:218
GNECalibratorFlowDialog::updateCalibratorFlowValues
void updateCalibratorFlowValues()
update data fields
Definition: GNECalibratorFlowDialog.cpp:408
GNECalibratorFlowDialog::onCmdReset
long onCmdReset(FXObject *, FXSelector, void *)
event after press reset button
Definition: GNECalibratorFlowDialog.cpp:208
GNECalibratorFlowDialog::myTextFieldPersonNumber
FXTextField * myTextFieldPersonNumber
TextField for PersonNumber.
Definition: GNECalibratorFlowDialog.h:114
SUMO_ATTR_ARRIVALLANE
@ SUMO_ATTR_ARRIVALLANE
Definition: SUMOXMLDefinitions.h:436
WRITE_DEBUG
#define WRITE_DEBUG(msg)
Definition: MsgHandler.h:284
GNEAdditional::isValid
virtual bool isValid(SumoXMLAttr key, const std::string &value)=0
method for checking if the key and their conrrespond attribute are valids
GNEAdditionalDialog::resetChanges
void resetChanges()
reset changes did in this dialog.
Definition: GNEAdditionalDialog.cpp:141
GNECalibratorFlowDialog::myTextFieldDepartPos
FXTextField * myTextFieldDepartPos
TextField for Depart Pos.
Definition: GNECalibratorFlowDialog.h:96
GNENet.h
GNEUndoList.h