Eclipse SUMO - Simulation of Urban MObility
GNEVehicleTypeFrame.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 // The Widget for edit Vehicle Type elements
15 /****************************************************************************/
16 
17 // ===========================================================================
18 // included modules
19 // ===========================================================================
20 #include <config.h>
21 
22 #include <netedit/GNENet.h>
23 #include <netedit/GNEUndoList.h>
24 #include <netedit/GNEViewNet.h>
30 
31 #include "GNEVehicleTypeFrame.h"
32 
33 
34 // ===========================================================================
35 // FOX callback mapping
36 // ===========================================================================
37 
38 FXDEFMAP(GNEVehicleTypeFrame::VehicleTypeSelector) vehicleTypeSelectorMap[] = {
40 };
41 
42 FXDEFMAP(GNEVehicleTypeFrame::VehicleTypeEditor) vehicleTypeEditorMap[] = {
47 };
48 
49 // Object implementation
50 FXIMPLEMENT(GNEVehicleTypeFrame::VehicleTypeSelector, FXGroupBox, vehicleTypeSelectorMap, ARRAYNUMBER(vehicleTypeSelectorMap))
51 FXIMPLEMENT(GNEVehicleTypeFrame::VehicleTypeEditor, FXGroupBox, vehicleTypeEditorMap, ARRAYNUMBER(vehicleTypeEditorMap))
52 
53 // ===========================================================================
54 // method definitions
55 // ===========================================================================
56 
57 // ---------------------------------------------------------------------------
58 // GNEVehicleTypeFrame::VehicleTypeSelector - methods
59 // ---------------------------------------------------------------------------
60 
62  FXGroupBox(vehicleTypeFrameParent->myContentFrame, "Current Vehicle Type", GUIDesignGroupBoxFrame),
63  myVehicleTypeFrameParent(vehicleTypeFrameParent),
64  myCurrentVehicleType(nullptr) {
65  // Create FXComboBox
66  myTypeMatchBox = new FXComboBox(this, GUIDesignComboBoxNCol, this, MID_GNE_SET_TYPE, GUIDesignComboBox);
67  // add default Vehicle an Bike types in the first and second positions
68  myTypeMatchBox->appendItem(DEFAULT_VTYPE_ID.c_str());
69  myTypeMatchBox->appendItem(DEFAULT_BIKETYPE_ID.c_str());
70  // fill myTypeMatchBox with list of VTypes IDs
71  for (const auto& i : myVehicleTypeFrameParent->getViewNet()->getNet()->getAttributeCarriers().demandElements.at(SUMO_TAG_VTYPE)) {
72  if ((i.first != DEFAULT_VTYPE_ID) && (i.first != DEFAULT_BIKETYPE_ID)) {
73  myTypeMatchBox->appendItem(i.first.c_str());
74  }
75  }
76  // set DEFAULT_VEHTYPE as default VType
77  myCurrentVehicleType = myVehicleTypeFrameParent->getViewNet()->getNet()->retrieveDemandElement(SUMO_TAG_VTYPE, DEFAULT_VTYPE_ID);
78  // Set visible items
79  if (myTypeMatchBox->getNumItems() <= 20) {
80  myTypeMatchBox->setNumVisible((int)myTypeMatchBox->getNumItems());
81  } else {
82  myTypeMatchBox->setNumVisible(20);
83  }
84  // VehicleTypeSelector is always shown
85  show();
86 }
87 
88 
90 
91 
94  return myCurrentVehicleType;
95 }
96 
97 
98 void
100  myCurrentVehicleType = vType;
101  refreshVehicleTypeSelector();
102 }
103 
104 
105 void
107  bool valid = false;
108  // clear items
109  myTypeMatchBox->clearItems();
110  // add default Vehicle an Bike types in the first and second positions
111  myTypeMatchBox->appendItem(DEFAULT_VTYPE_ID.c_str());
112  myTypeMatchBox->appendItem(DEFAULT_BIKETYPE_ID.c_str());
113  // fill myTypeMatchBox with list of VTypes IDs
114  for (const auto& i : myVehicleTypeFrameParent->getViewNet()->getNet()->getAttributeCarriers().demandElements.at(SUMO_TAG_VTYPE)) {
115  if ((i.first != DEFAULT_VTYPE_ID) && (i.first != DEFAULT_BIKETYPE_ID)) {
116  myTypeMatchBox->appendItem(i.first.c_str());
117  }
118  }
119  // Set visible items
120  if (myTypeMatchBox->getNumItems() <= 20) {
121  myTypeMatchBox->setNumVisible((int)myTypeMatchBox->getNumItems());
122  } else {
123  myTypeMatchBox->setNumVisible(20);
124  }
125  // make sure that tag is in myTypeMatchBox
126  for (int i = 0; i < (int)myTypeMatchBox->getNumItems(); i++) {
127  if (myTypeMatchBox->getItem(i).text() == myCurrentVehicleType->getID()) {
128  myTypeMatchBox->setCurrentItem(i);
129  valid = true;
130  }
131  }
132  // Check that give vType type is valid
133  if (!valid) {
134  // set DEFAULT_VEHTYPE as default VType
135  myCurrentVehicleType = myVehicleTypeFrameParent->getViewNet()->getNet()->retrieveDemandElement(SUMO_TAG_VTYPE, DEFAULT_VTYPE_ID);
136  // refresh myTypeMatchBox again
137  for (int i = 0; i < (int)myTypeMatchBox->getNumItems(); i++) {
138  if (myTypeMatchBox->getItem(i).text() == myCurrentVehicleType->getID()) {
139  myTypeMatchBox->setCurrentItem(i);
140  }
141  }
142  }
143  // refresh vehicle type editor modul
144  myVehicleTypeFrameParent->myVehicleTypeEditor->refreshVehicleTypeEditorModul();
145  // show Attribute Editor modul if selected item is valid
146  myVehicleTypeFrameParent->myVehicleTypeAttributesEditor->showAttributeEditorModul({myCurrentVehicleType}, false, true);
147 }
148 
149 
150 void
152  if (myCurrentVehicleType) {
153  myTypeMatchBox->setItem(myTypeMatchBox->getCurrentItem(), myCurrentVehicleType->getID().c_str());
154  }
155 }
156 
157 
158 long
160  // Check if value of myTypeMatchBox correspond of an allowed additional tags
161  for (const auto& i : myVehicleTypeFrameParent->getViewNet()->getNet()->getAttributeCarriers().demandElements.at(SUMO_TAG_VTYPE)) {
162  if (i.first == myTypeMatchBox->getText().text()) {
163  // set pointer
164  myCurrentVehicleType = i.second;
165  // set color of myTypeMatchBox to black (valid)
166  myTypeMatchBox->setTextColor(FXRGB(0, 0, 0));
167  // refresh vehicle type editor modul
168  myVehicleTypeFrameParent->myVehicleTypeEditor->refreshVehicleTypeEditorModul();
169  // show moduls if selected item is valid
170  myVehicleTypeFrameParent->myVehicleTypeAttributesEditor->showAttributeEditorModul({myCurrentVehicleType}, false, true);
171  // Write Warning in console if we're in testing mode
172  WRITE_DEBUG(("Selected item '" + myTypeMatchBox->getText() + "' in VehicleTypeSelector").text());
173  return 1;
174  }
175  }
176  myCurrentVehicleType = nullptr;
177  // refresh vehicle type editor modul
178  myVehicleTypeFrameParent->myVehicleTypeEditor->refreshVehicleTypeEditorModul();
179  // hide all moduls if selected item isn't valid
180  myVehicleTypeFrameParent->myVehicleTypeAttributesEditor->hideAttributesEditorModul();
181  // set color of myTypeMatchBox to red (invalid)
182  myTypeMatchBox->setTextColor(FXRGB(255, 0, 0));
183  // Write Warning in console if we're in testing mode
184  WRITE_DEBUG("Selected invalid item in VehicleTypeSelector");
185  return 1;
186 }
187 
188 // ---------------------------------------------------------------------------
189 // GNEVehicleTypeFrame::VehicleTypeEditor - methods
190 // ---------------------------------------------------------------------------
191 
193  FXGroupBox(vehicleTypeFrameParent->myContentFrame, "Vehicle Type Editor", GUIDesignGroupBoxFrame),
194  myVehicleTypeFrameParent(vehicleTypeFrameParent) {
195  // Create new vehicle type
196  myCreateVehicleTypeButton = new FXButton(this, "Create Vehicle Type", nullptr, this, MID_GNE_CREATE, GUIDesignButton);
197  // Create delete vehicle type
198  myDeleteVehicleTypeButton = new FXButton(this, "Delete Vehicle Type", nullptr, this, MID_GNE_DELETE, GUIDesignButton);
199  // Create reset vehicle type
200  myResetDefaultVehicleTypeButton = new FXButton(this, "Reset default Vehicle Type", nullptr, this, MID_GNE_RESET, GUIDesignButton);
201  // Create copy vehicle type
202  myCopyVehicleTypeButton = new FXButton(this, "Copy Vehicle Type", nullptr, this, MID_GNE_COPY, GUIDesignButton);
203 }
204 
205 
207 
208 
209 void
211  refreshVehicleTypeEditorModul();
212  show();
213 }
214 
215 
216 void
218  hide();
219 }
220 
221 
222 void
224  // first check if selected VType is valid
225  if (myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType() == nullptr) {
226  // disable all buttons except create button
227  myDeleteVehicleTypeButton->disable();
228  myResetDefaultVehicleTypeButton->disable();
229  myCopyVehicleTypeButton->disable();
230  } else if (GNEAttributeCarrier::parse<bool>(myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType()->getAttribute(GNE_ATTR_DEFAULT_VTYPE))) {
231  // enable copy button
232  myCopyVehicleTypeButton->enable();
233  // hide delete vehicle type buttond and show reset default vehicle type button
234  myDeleteVehicleTypeButton->hide();
235  myResetDefaultVehicleTypeButton->show();
236  // check if reset default vehicle type button has to be enabled or disabled
237  if (GNEAttributeCarrier::parse<bool>(myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType()->getAttribute(GNE_ATTR_DEFAULT_VTYPE_MODIFIED))) {
238  myResetDefaultVehicleTypeButton->enable();
239  } else {
240  myResetDefaultVehicleTypeButton->disable();
241  }
242  } else {
243  // enable copy button
244  myCopyVehicleTypeButton->enable();
245  // show delete vehicle type button and hide reset default vehicle type button
246  myDeleteVehicleTypeButton->show();
247  myDeleteVehicleTypeButton->enable();
248  myResetDefaultVehicleTypeButton->hide();
249  }
250  // update modul
251  recalc();
252 }
253 
254 
255 long
257  // obtain a new valid Vehicle Type ID
258  std::string vehicleTypeID = myVehicleTypeFrameParent->myViewNet->getNet()->generateDemandElementID("", SUMO_TAG_VTYPE);
259  // create new vehicle type
260  GNEDemandElement* vehicleType = new GNEVehicleType(myVehicleTypeFrameParent->myViewNet, vehicleTypeID, SUMO_TAG_VTYPE);
261  // add it using undoList (to allow undo-redo)
262  myVehicleTypeFrameParent->myViewNet->getUndoList()->p_begin("create vehicle type");
263  myVehicleTypeFrameParent->myViewNet->getUndoList()->add(new GNEChange_DemandElement(vehicleType, true), true);
264  myVehicleTypeFrameParent->myViewNet->getUndoList()->p_end();
265  // set created vehicle type in selector
266  myVehicleTypeFrameParent->myVehicleTypeSelector->setCurrentVehicleType(vehicleType);
267  // refresh VehicleType Editor Modul
268  myVehicleTypeFrameParent->myVehicleTypeEditor->refreshVehicleTypeEditorModul();
269  return 1;
270 }
271 
272 
273 long
275  // show question dialog if vtype has already assigned vehicles
276  if (myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType()->getChildDemandElements().size() > 0) {
277  std::string plural = myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType()->getChildDemandElements().size() == 1 ? ("") : ("s");
278  // show warning in gui testing debug mode
279  WRITE_DEBUG("Opening FXMessageBox 'remove vType'");
280  // Ask confirmation to user
281  FXuint answer = FXMessageBox::question(getApp(), MBOX_YES_NO,
282  ("Remove " + toString(SUMO_TAG_VTYPE) + "s").c_str(), "%s",
283  ("Delete " + toString(SUMO_TAG_VTYPE) + " '" + myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType()->getID() +
284  "' will remove " + toString(myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType()->getChildDemandElements().size()) +
285  " vehicle" + plural + ". Continue?").c_str());
286  if (answer != 1) { // 1:yes, 2:no, 4:esc
287  // write warning if netedit is running in testing mode
288  if (answer == 2) {
289  WRITE_DEBUG("Closed FXMessageBox 'remove vType' with 'No'");
290  } else if (answer == 4) {
291  WRITE_DEBUG("Closed FXMessageBox 'remove vType' with 'ESC'");
292  }
293  } else {
294  // begin undo list operation
295  myVehicleTypeFrameParent->myViewNet->getUndoList()->p_begin("delete vehicle type");
296  // remove vehicle type (and all of their children)
297  myVehicleTypeFrameParent->myViewNet->getNet()->deleteDemandElement(myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType(),
298  myVehicleTypeFrameParent->myViewNet->getUndoList());
299  // end undo list operation
300  myVehicleTypeFrameParent->myViewNet->getUndoList()->p_end();
301  }
302  } else {
303  // begin undo list operation
304  myVehicleTypeFrameParent->myViewNet->getUndoList()->p_begin("delete vehicle type");
305  // remove vehicle type (and all of their children)
306  myVehicleTypeFrameParent->myViewNet->getNet()->deleteDemandElement(myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType(),
307  myVehicleTypeFrameParent->myViewNet->getUndoList());
308  // end undo list operation
309  myVehicleTypeFrameParent->myViewNet->getUndoList()->p_end();
310  }
311  return 1;
312 }
313 
314 
315 long
317  // begin reset default vehicle type values
318  myVehicleTypeFrameParent->getViewNet()->getUndoList()->p_begin("reset default vehicle type values");
319  // reset all values of default vehicle type
321  // change all attributes with "" to reset it (except ID and vClass)
322  if ((i.getAttr() != SUMO_ATTR_ID) && (i.getAttr() != SUMO_ATTR_VCLASS)) {
323  myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType()->setAttribute(i.getAttr(), "", myVehicleTypeFrameParent->myViewNet->getUndoList());
324  }
325  }
326  // change manually VClass (because it depends of Default VType)
327  if (myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType()->getAttribute(SUMO_ATTR_ID) == DEFAULT_VTYPE_ID) {
328  myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType()->setAttribute(SUMO_ATTR_VCLASS, toString(SVC_PASSENGER), myVehicleTypeFrameParent->myViewNet->getUndoList());
329  } else if (myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType()->getAttribute(SUMO_ATTR_ID) == DEFAULT_BIKETYPE_ID) {
330  myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType()->setAttribute(SUMO_ATTR_VCLASS, toString(SVC_BICYCLE), myVehicleTypeFrameParent->myViewNet->getUndoList());
331  }
332  // change special attribute GNE_ATTR_DEFAULT_VTYPE_MODIFIED
333  myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType()->setAttribute(GNE_ATTR_DEFAULT_VTYPE_MODIFIED, "false", myVehicleTypeFrameParent->myViewNet->getUndoList());
334  // finish reset default vehicle type values
335  myVehicleTypeFrameParent->getViewNet()->getUndoList()->p_end();
336  // refresh VehicleTypeSelector
337  myVehicleTypeFrameParent->myVehicleTypeSelector->refreshVehicleTypeSelector();
338  return 1;
339 }
340 
341 
342 long
344  // obtain a new valid Vehicle Type ID
345  std::string vehicleTypeID = myVehicleTypeFrameParent->myViewNet->getNet()->generateDemandElementID("", SUMO_TAG_VTYPE);
346  // obtain vehicle type in which new Vehicle Type will be based
347  GNEVehicleType* vType = dynamic_cast<GNEVehicleType*>(myVehicleTypeFrameParent->myVehicleTypeSelector->getCurrentVehicleType());
348  // check that vType exist
349  if (vType) {
350  // create a new Vehicle Type based on the current selected vehicle type
351  GNEDemandElement* vehicleTypeCopy = new GNEVehicleType(myVehicleTypeFrameParent->myViewNet, vehicleTypeID, vType);
352  // begin undo list operation
353  myVehicleTypeFrameParent->myViewNet->getUndoList()->p_begin("copy vehicle type");
354  // add it using undoList (to allow undo-redo)
355  myVehicleTypeFrameParent->myViewNet->getUndoList()->add(new GNEChange_DemandElement(vehicleTypeCopy, true), true);
356  // end undo list operation
357  myVehicleTypeFrameParent->myViewNet->getUndoList()->p_end();
358  // refresh Vehicle Type Selector (to show the new VType)
359  myVehicleTypeFrameParent->myVehicleTypeSelector->refreshVehicleTypeSelector();
360  // set created vehicle type in selector
361  myVehicleTypeFrameParent->myVehicleTypeSelector->setCurrentVehicleType(vehicleTypeCopy);
362  // refresh VehicleType Editor Modul
363  myVehicleTypeFrameParent->myVehicleTypeEditor->refreshVehicleTypeEditorModul();
364  }
365  return 1;
366 }
367 
368 // ---------------------------------------------------------------------------
369 // GNEVehicleTypeFrame - methods
370 // ---------------------------------------------------------------------------
371 
372 GNEVehicleTypeFrame::GNEVehicleTypeFrame(FXHorizontalFrame* horizontalFrameParent, GNEViewNet* viewNet) :
373  GNEFrame(horizontalFrameParent, viewNet, "Vehicle Types") {
374 
375  // create modul for edit vehicle types (Create, copy, etc.)
377 
378  // create vehicle type selector
380 
381  // Create vehicle type attributes editor
383 
384  // create modul for open extended attributes dialog
386 
387  // set "VTYPE_DEFAULT" as default vehicle Type
389 }
390 
391 
393 
394 
395 void
397  // refresh vehicle type and Attribute Editor
399  // show vehicle type attributes editor (except extended attributes)
401  // show frame
402  GNEFrame::show();
403 }
404 
405 
408  return myVehicleTypeSelector;
409 }
410 
411 
412 void
414  // after changing an attribute myVehicleTypeSelector, we need to update the list of vehicleTypeSelector, because ID could be changed
416 }
417 
418 
419 void
421  // open vehicle type dialog
424  // call "showAttributeEditorModul" to refresh attribute list
426  }
427 }
428 
429 /****************************************************************************/
GNEVehicleTypeFrame::VehicleTypeEditor::myCreateVehicleTypeButton
FXButton * myCreateVehicleTypeButton
"create vehicle type" button
Definition: GNEVehicleTypeFrame.h:135
MID_GNE_CREATE
create element
Definition: GUIAppEnum.h:648
GNEVehicleTypeFrame::VehicleTypeEditor::hideVehicleTypeEditorModul
void hideVehicleTypeEditorModul()
hide VehicleTypeEditor box
Definition: GNEVehicleTypeFrame.cpp:217
GNEVehicleTypeFrame::VehicleTypeSelector::~VehicleTypeSelector
~VehicleTypeSelector()
destructor
Definition: GNEVehicleTypeFrame.cpp:89
GNEVehicleTypeFrame::VehicleTypeEditor::showVehicleTypeEditorModul
void showVehicleTypeEditorModul()
show VehicleTypeEditor modul
Definition: GNEVehicleTypeFrame.cpp:210
GNEDemandElement
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEDemandElement.h:55
GNEVehicleTypeFrame::VehicleTypeSelector::refreshVehicleTypeSelectorIDs
void refreshVehicleTypeSelectorIDs()
refresh vehicle type selector (only IDs, without refreshing attributes)
Definition: GNEVehicleTypeFrame.cpp:151
GNEChange_DemandElement
Definition: GNEChange_DemandElement.h:45
GNEVehicleTypeFrame::VehicleTypeEditor::refreshVehicleTypeEditorModul
void refreshVehicleTypeEditorModul()
update VehicleTypeEditor modul
Definition: GNEVehicleTypeFrame.cpp:223
GNEChange_DemandElement.h
MID_GNE_SET_TYPE
used to select a type of element in a combo box
Definition: GUIAppEnum.h:662
GNEVehicleTypeFrame::VehicleTypeSelector::onCmdSelectItem
long onCmdSelectItem(FXObject *, FXSelector, void *)
Definition: GNEVehicleTypeFrame.cpp:159
GNEVehicleTypeFrame::myVehicleTypeAttributesEditor
GNEFrameAttributesModuls::AttributesEditor * myVehicleTypeAttributesEditor
editorinternal vehicle type attributes
Definition: GNEVehicleTypeFrame.h:174
GUIDesignComboBoxNCol
#define GUIDesignComboBoxNCol
number of column of every combo box
Definition: GUIDesigns.h:217
GNEVehicleTypeFrame
Definition: GNEVehicleTypeFrame.h:37
GNENet::retrieveDemandElement
GNEDemandElement * retrieveDemandElement(SumoXMLTag type, const std::string &id, bool hardFail=true) const
Returns the named demand element.
Definition: GNENet.cpp:2316
GNEFrame
Definition: GNEFrame.h:34
SVC_BICYCLE
vehicle is a bicycle
Definition: SUMOVehicleClass.h:179
GNEVehicleTypeFrame::VehicleTypeSelector::getCurrentVehicleType
GNEDemandElement * getCurrentVehicleType() const
get current Vehicle Type
Definition: GNEVehicleTypeFrame.cpp:93
GNEVehicleTypeFrame::VehicleTypeEditor
Definition: GNEVehicleTypeFrame.h:92
GNEViewNet
Definition: GNEViewNet.h:42
MID_GNE_COPY
copy element
Definition: GUIAppEnum.h:658
SUMO_ATTR_ID
Definition: SUMOXMLDefinitions.h:378
GNEVehicleTypeFrame::attributeUpdated
void attributeUpdated()
function called after set a valid attribute in AttributeCreator/AttributeEditor/ParametersEditor/....
Definition: GNEVehicleTypeFrame.cpp:413
GUIDesigns.h
SUMO_TAG_VTYPE
description of a vehicle type
Definition: SUMOXMLDefinitions.h:121
GNEFrame::myContentFrame
FXVerticalFrame * myContentFrame
Vertical frame that holds all widgets of frame.
Definition: GNEFrame.h:124
GNEVehicleTypeFrame::VehicleTypeEditor::myResetDefaultVehicleTypeButton
FXButton * myResetDefaultVehicleTypeButton
"delete default vehicle type" button
Definition: GNEVehicleTypeFrame.h:141
GUIDesignButton
#define GUIDesignButton
Definition: GUIDesigns.h:50
GNEFrameAttributesModuls::AttributesEditor
Definition: GNEFrameAttributesModuls.h:374
GUIAppEnum.h
GNEViewNet::getNet
GNENet * getNet() const
get the net object
Definition: GNEViewNet.cpp:1014
GNEVehicleTypeFrame::VehicleTypeEditor::onCmdCreateVehicleType
long onCmdCreateVehicleType(FXObject *, FXSelector, void *)
Definition: GNEVehicleTypeFrame.cpp:256
GNEVehicleTypeDialog.h
GNEFrameAttributesModuls::AttributesEditorExtended
Definition: GNEFrameAttributesModuls.h:519
GNEVehicleType
Definition: GNEVehicleType.h:36
GNE_ATTR_DEFAULT_VTYPE_MODIFIED
Flag to check if a default VType was modified.
Definition: SUMOXMLDefinitions.h:1007
DEFAULT_VTYPE_ID
const std::string DEFAULT_VTYPE_ID
GNEVehicleTypeFrame::VehicleTypeEditor::onCmdCopyVehicleType
long onCmdCopyVehicleType(FXObject *, FXSelector, void *)
Called when "Copy Vehicle Type" button is clicked.
Definition: GNEVehicleTypeFrame.cpp:343
GNEViewNet.h
SVC_PASSENGER
vehicle is a passenger car (a "normal" car)
Definition: SUMOVehicleClass.h:159
GNEVehicleTypeFrame::GNEVehicleTypeFrame
GNEVehicleTypeFrame(FXHorizontalFrame *horizontalFrameParent, GNEViewNet *viewNet)
Constructor.
Definition: GNEVehicleTypeFrame.cpp:372
Vehicle
C++ TraCI client API implementation.
Definition: Vehicle.h:39
GNEFrameAttributesModuls::AttributesEditor::showAttributeEditorModul
void showAttributeEditorModul(const std::vector< GNEAttributeCarrier * > &ACs, bool includeExtended, bool forceAttributeEnabled)
show attributes of multiple ACs
Definition: GNEFrameAttributesModuls.cpp:1461
GNEFrame::myViewNet
GNEViewNet * myViewNet
View Net.
Definition: GNEFrame.h:121
GNEVehicleTypeFrame::myVehicleTypeSelector
VehicleTypeSelector * myVehicleTypeSelector
vehicle type selector
Definition: GNEVehicleTypeFrame.h:171
GUIDesignGroupBoxFrame
#define GUIDesignGroupBoxFrame
Group box design extended over frame.
Definition: GUIDesigns.h:239
GNE_ATTR_DEFAULT_VTYPE
Flag to check if VType is a default VType.
Definition: SUMOXMLDefinitions.h:1005
GNEVehicleTypeFrame::myVehicleTypeEditor
VehicleTypeEditor * myVehicleTypeEditor
Vehicle Type editor (Create, copy, etc.)
Definition: GNEVehicleTypeFrame.h:180
FXDEFMAP
FXDEFMAP(GNEVehicleTypeFrame::VehicleTypeSelector) vehicleTypeSelectorMap[]
GNEVehicleTypeFrame::VehicleTypeEditor::myCopyVehicleTypeButton
FXButton * myCopyVehicleTypeButton
"copy vehicle type"
Definition: GNEVehicleTypeFrame.h:144
GNEVehicleTypeFrame::VehicleTypeEditor::VehicleTypeEditor
VehicleTypeEditor(GNEVehicleTypeFrame *vehicleTypeFrameParent)
FOX-declaration.
Definition: GNEVehicleTypeFrame.cpp:192
toString
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
Definition: ToString.h:47
GNEVehicleTypeFrame::show
void show()
show Frame
Definition: GNEVehicleTypeFrame.cpp:396
GNEVehicleTypeFrame::getVehicleTypeSelector
VehicleTypeSelector * getVehicleTypeSelector() const
get vehicle type selector
Definition: GNEVehicleTypeFrame.cpp:407
GNEVehicleTypeFrame::attributesEditorExtendedDialogOpened
void attributesEditorExtendedDialogOpened()
open AttributesCreator extended dialog (used for editing advance attributes of Vehicle Types)
Definition: GNEVehicleTypeFrame.cpp:420
GNEVehicleTypeFrame::VehicleTypeSelector::setCurrentVehicleType
void setCurrentVehicleType(GNEDemandElement *vType)
set current Vehicle Type
Definition: GNEVehicleTypeFrame.cpp:99
GNEVehicleTypeDialog
Dialog for edit rerouter intervals.
Definition: GNEVehicleTypeDialog.h:44
GNEVehicleTypeFrame::VehicleTypeEditor::onCmdDeleteVehicleType
long onCmdDeleteVehicleType(FXObject *, FXSelector, void *)
Called when "Delete Vehicle Type" button is clicked.
Definition: GNEVehicleTypeFrame.cpp:274
GUIDesignComboBox
#define GUIDesignComboBox
Definition: GUIDesigns.h:205
MID_GNE_RESET
reset element
Definition: GUIAppEnum.h:654
GNEVehicleTypeFrame::myAttributesEditorExtended
GNEFrameAttributesModuls::AttributesEditorExtended * myAttributesEditorExtended
modul for open extended attributes dialog
Definition: GNEVehicleTypeFrame.h:177
SUMO_ATTR_VCLASS
Definition: SUMOXMLDefinitions.h:450
GNEVehicleTypeFrame.h
GNEVehicleTypeFrame::VehicleTypeSelector
Definition: GNEVehicleTypeFrame.h:45
config.h
GNEAttributeCarrier::getTagProperties
static const TagProperties & getTagProperties(SumoXMLTag tag)
get Tag Properties
Definition: GNEAttributeCarrier.cpp:1298
GNEVehicleTypeFrame::VehicleTypeEditor::myDeleteVehicleTypeButton
FXButton * myDeleteVehicleTypeButton
"delete vehicle type" button
Definition: GNEVehicleTypeFrame.h:138
GNEVehicleType.h
MID_GNE_DELETE
delete element
Definition: GUIAppEnum.h:650
GNEVehicleTypeFrame::VehicleTypeEditor::~VehicleTypeEditor
~VehicleTypeEditor()
destructor
Definition: GNEVehicleTypeFrame.cpp:206
DEFAULT_BIKETYPE_ID
const std::string DEFAULT_BIKETYPE_ID
GNEFrame::show
virtual void show()
show Frame
Definition: GNEFrame.cpp:107
GNEVehicleTypeFrame::VehicleTypeSelector::refreshVehicleTypeSelector
void refreshVehicleTypeSelector()
refresh vehicle type selector
Definition: GNEVehicleTypeFrame.cpp:106
WRITE_DEBUG
#define WRITE_DEBUG(msg)
Definition: MsgHandler.h:284
GNEFrame::hide
virtual void hide()
hide Frame
Definition: GNEFrame.cpp:116
GNENet.h
GNEVehicleTypeFrame::VehicleTypeEditor::onCmdResetVehicleType
long onCmdResetVehicleType(FXObject *, FXSelector, void *)
Called when "Delete Vehicle Type" button is clicked.
Definition: GNEVehicleTypeFrame.cpp:316
GNEUndoList.h
GNEVehicleTypeFrame::~GNEVehicleTypeFrame
~GNEVehicleTypeFrame()
Destructor.
Definition: GNEVehicleTypeFrame.cpp:392