63 myTypeFrameParent(typeFrameParent),
69 for (
const auto& vType : myTypeFrameParent->getViewNet()->getNet()->getAttributeCarriers()->getDemandElements().at(
SUMO_TAG_VTYPE)) {
71 myTypeComboBox->appendIconItem(vType.second->getID().c_str(), vType.second->getACIcon(), FXRGB(255, 255, 200));
75 for (
const auto& vType : myTypeFrameParent->getViewNet()->getNet()->getAttributeCarriers()->getDemandElements().at(
SUMO_TAG_VTYPE)) {
77 myTypeComboBox->appendIconItem(vType.second->getID().c_str(), vType.second->getACIcon());
82 myTypeComboBox->setCurrentItem(myTypeComboBox->findItem(
DEFAULT_VTYPE_ID.c_str()));
100 refreshTypeSelector(
true);
108 myTypeComboBox->clearItems();
110 for (
const auto& vType : myTypeFrameParent->getViewNet()->getNet()->getAttributeCarriers()->getDemandElements().at(
SUMO_TAG_VTYPE)) {
112 myTypeComboBox->appendIconItem(vType.second->getID().c_str(), vType.second->getACIcon(), FXRGB(255, 255, 200));
116 std::map<std::string, GNEDemandElement*> types;
117 for (
const auto& vType : myTypeFrameParent->getViewNet()->getNet()->getAttributeCarriers()->getDemandElements().at(
SUMO_TAG_VTYPE)) {
119 types[vType.second->getID()] = vType.second;
122 for (
const auto& vType : types) {
123 myTypeComboBox->appendIconItem(vType.first.c_str(), vType.second->getACIcon());
127 for (
int i = 0; i < (int)myTypeComboBox->getNumItems(); i++) {
128 if (myTypeComboBox->getItemText(i) ==
myCurrentType->getID()) {
129 myTypeComboBox->setCurrentItem(i);
139 for (
int i = 0; i < (int)myTypeComboBox->getNumItems(); i++) {
140 if (myTypeComboBox->getItemText(i) ==
myCurrentType->getID()) {
141 myTypeComboBox->setCurrentItem(i);
148 myTypeFrameParent->myTypeEditor->refreshTypeEditorModule();
150 myTypeFrameParent->getViewNet()->setInspectedAttributeCarriers({
myCurrentType});
152 myTypeFrameParent->myTypeAttributesEditor->showAttributeEditorModule(
false);
153 myTypeFrameParent->myAttributesEditorExtended->showAttributesEditorExtendedModule();
154 myTypeFrameParent->myParametersEditor->refreshParametersEditor();
162 for (
const auto& vType : myTypeFrameParent->getViewNet()->getNet()->getAttributeCarriers()->getDemandElements().at(
SUMO_TAG_VTYPE)) {
163 if (vType.second->getID() == myTypeComboBox->getText().text()) {
167 myTypeComboBox->setTextColor(FXRGB(0, 0, 0));
169 myTypeFrameParent->myTypeEditor->refreshTypeEditorModule();
171 myTypeFrameParent->getViewNet()->setInspectedAttributeCarriers({
myCurrentType});
173 myTypeFrameParent->myTypeAttributesEditor->showAttributeEditorModule(
false);
174 myTypeFrameParent->myAttributesEditorExtended->showAttributesEditorExtendedModule();
175 myTypeFrameParent->myParametersEditor->refreshParametersEditor();
177 WRITE_DEBUG((
"Selected item '" + myTypeComboBox->getText() +
"' in TypeSelector").text());
179 myTypeFrameParent->getViewNet()->updateViewNet();
185 myTypeFrameParent->myTypeEditor->refreshTypeEditorModule();
187 myTypeFrameParent->myTypeAttributesEditor->hideAttributesEditorModule();
188 myTypeFrameParent->myAttributesEditorExtended->hideAttributesEditorExtendedModule();
190 myTypeComboBox->setTextColor(FXRGB(255, 0, 0));
192 WRITE_DEBUG(
"Selected invalid item in TypeSelector");
194 myTypeFrameParent->getViewNet()->updateViewNet();
204 myTypeFrameParent(typeFrameParent) {
219 refreshTypeEditorModule();
233 if (myTypeFrameParent->myTypeSelector->getCurrentType() ==
nullptr) {
235 myDeleteResetTypeButton->disable();
236 myCopyTypeButton->disable();
237 }
else if (GNEAttributeCarrier::parse<bool>(myTypeFrameParent->myTypeSelector->getCurrentType()->getAttribute(
GNE_ATTR_DEFAULT_VTYPE))) {
239 myCopyTypeButton->enable();
241 myDeleteResetTypeButton->setText(
TL(
"Reset Type"));
245 myDeleteResetTypeButton->enable();
247 myDeleteResetTypeButton->disable();
251 myCopyTypeButton->enable();
253 myDeleteResetTypeButton->setText(
TL(
"Delete Type"));
255 myDeleteResetTypeButton->enable();
265 const std::string typeID = myTypeFrameParent->myViewNet->getNet()->getAttributeCarriers()->generateDemandElementID(
SUMO_TAG_VTYPE);
269 myTypeFrameParent->myViewNet->getUndoList()->begin(type,
TL(
"create vehicle type"));
271 myTypeFrameParent->myViewNet->getUndoList()->end();
273 myTypeFrameParent->myTypeSelector->setCurrentType(type);
293 const std::string typeID = myTypeFrameParent->myViewNet->getNet()->getAttributeCarriers()->generateDemandElementID(
SUMO_TAG_VTYPE);
295 GNEVType* vType =
dynamic_cast<GNEVType*
>(myTypeFrameParent->myTypeSelector->getCurrentType());
301 myTypeFrameParent->myViewNet->getUndoList()->begin(typeCopy,
TL(
"copy vehicle type"));
305 myTypeFrameParent->myViewNet->getUndoList()->end();
307 myTypeFrameParent->myTypeSelector->setCurrentType(typeCopy);
316 myTypeFrameParent->getViewNet()->getUndoList()->begin(
GUIIcon::VTYPE,
TL(
"reset default vehicle type values"));
321 myTypeFrameParent->myTypeSelector->getCurrentType()->setAttribute(attrProperty.getAttr(),
"", myTypeFrameParent->myViewNet->getUndoList());
339 myTypeFrameParent->myTypeSelector->getCurrentType()->setAttribute(
GNE_ATTR_DEFAULT_VTYPE_MODIFIED,
"false", myTypeFrameParent->myViewNet->getUndoList());
341 myTypeFrameParent->getViewNet()->getUndoList()->end();
343 myTypeFrameParent->myTypeSelector->refreshTypeSelector(
true);
350 if (myTypeFrameParent->myTypeSelector->getCurrentType()->getChildDemandElements().size() > 0) {
351 std::string plural = myTypeFrameParent->myTypeSelector->getCurrentType()->getChildDemandElements().size() == 1 ? (
"") : (
"s");
353 WRITE_DEBUG(
"Opening FXMessageBox 'remove vType'");
355 FXuint answer = FXMessageBox::question(getApp(), MBOX_YES_NO,
357 (
"Delete " +
toString(
SUMO_TAG_VTYPE) +
" '" + myTypeFrameParent->myTypeSelector->getCurrentType()->getID() +
358 "' will remove " +
toString(myTypeFrameParent->myTypeSelector->getCurrentType()->getChildDemandElements().size()) +
359 " vehicle" + plural +
". Continue?").c_str());
363 WRITE_DEBUG(
"Closed FXMessageBox 'remove vType' with 'No'");
364 }
else if (answer == 4) {
365 WRITE_DEBUG(
"Closed FXMessageBox 'remove vType' with 'ESC'");
369 myTypeFrameParent->myViewNet->getUndoList()->begin(myTypeFrameParent->myTypeSelector->getCurrentType(), (
"delete vehicle type"));
371 myTypeFrameParent->myViewNet->getNet()->deleteDemandElement(myTypeFrameParent->myTypeSelector->getCurrentType(),
372 myTypeFrameParent->myViewNet->getUndoList());
374 myTypeFrameParent->myViewNet->getUndoList()->end();
378 myTypeFrameParent->myViewNet->getUndoList()->begin(myTypeFrameParent->myTypeSelector->getCurrentType(), (
"delete vehicle type"));
380 myTypeFrameParent->myViewNet->getNet()->deleteDemandElement(myTypeFrameParent->myTypeSelector->getCurrentType(),
381 myTypeFrameParent->myViewNet->getUndoList());
383 myTypeFrameParent->myViewNet->getUndoList()->end();
FXDEFMAP(GNETypeFrame::TypeSelector) typeSelectorMap[]
@ MID_GNE_DELETE
delete element
@ MID_GNE_COPY
copy element
@ MID_GNE_CREATE
create element
@ MID_GNE_SET_TYPE
used to select a type of element in a combo box
#define GUIDesignComboBox
#define GUIDesignComboBoxNCol
number of column of every combo box
#define GUIDesignComboBoxVisibleItemsLarge
combo box large small
const std::string DEFAULT_TAXITYPE_ID
const std::string DEFAULT_RAILTYPE_ID
const std::string DEFAULT_PEDTYPE_ID
const std::set< std::string > DEFAULT_VTYPES
const std::string DEFAULT_VTYPE_ID
const std::string DEFAULT_CONTAINERTYPE_ID
@ SVC_RAIL
vehicle is a not electrified rail
@ SVC_PASSENGER
vehicle is a passenger car (a "normal" car)
@ SVC_BICYCLE
vehicle is a bicycle
@ SVC_TAXI
vehicle is a taxi
@ SVC_PEDESTRIAN
pedestrian
const std::string DEFAULT_BIKETYPE_ID
@ SUMO_TAG_VTYPE
description of a vehicle/person/container type
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
@ GNE_ATTR_DEFAULT_VTYPE
Flag to check if VType is a default VType.
@ GNE_ATTR_DEFAULT_VTYPE_MODIFIED
Flag to check if a default VType was modified.
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
const GNETagProperties & getTagProperty() const
get tagProperty associated with this Attribute Carrier
void showAttributesEditorExtendedModule()
show AttributesEditorExtended modul
GNEFrame * getFrameParent() const
pointer to GNEFrame parent
void showAttributeEditorModule(bool includeExtended)
show attributes of multiple ACs
void refreshParametersEditor()
refresh netedit attributes
GNEViewNet * getViewNet() const
get view net
GNEViewNet * myViewNet
FOX need this.
virtual void show()
show Frame
virtual void hide()
hide Frame
GNEDemandElement * retrieveDemandElement(SumoXMLTag type, const std::string &id, bool hardFail=true) const
Returns the named demand element.
GNENetHelper::AttributeCarriers * getAttributeCarriers() const
get all attribute carriers used in this net
void resetType()
reset type
long onCmdDeleteResetType(FXObject *, FXSelector, void *)
Called when "Delete/Reset Vehicle Type" button is clicked.
void deleteType()
delete type
void showTypeEditorModule()
show TypeEditor modul
FXButton * myCreateTypeButton
"create vehicle type" button
long onCmdCreateType(FXObject *, FXSelector, void *)
FXButton * myDeleteResetTypeButton
"delete/reset vehicle type" button
FXButton * myCopyTypeButton
"copy vehicle type"
TypeEditor(GNETypeFrame *typeFrameParent)
FOX-declaration.
void hideTypeEditorModule()
hide TypeEditor box
void refreshTypeEditorModule()
update TypeEditor modul
long onCmdCopyType(FXObject *, FXSelector, void *)
Called when "Copy Vehicle Type" button is clicked.
void setCurrentType(GNEDemandElement *vType)
set current Vehicle Type
long onCmdSelectItem(FXObject *, FXSelector, void *)
Called when the user select another element in ComboBox.
void refreshTypeSelector(const bool updateModuls)
refresh vehicle type selector
GNEDemandElement * getCurrentType() const
get current Vehicle Type
~TypeSelector()
destructor
GNEFrameAttributeModules::AttributesEditorExtended * myAttributesEditorExtended
modul for open extended attributes dialog
void attributesEditorExtendedDialogOpened()
open GNEAttributesCreator extended dialog (used for editing advance attributes of Vehicle Types)
GNEFrameAttributeModules::ParametersEditor * myParametersEditor
Parameters editor inspector.
GNETypeFrame(GNEViewParent *viewParent, GNEViewNet *viewNet)
Constructor.
TypeSelector * getTypeSelector() const
get vehicle type selector
GNEFrameAttributeModules::AttributesEditor * myTypeAttributesEditor
editorinternal vehicle type attributes
TypeEditor * myTypeEditor
Vehicle Type editor (Create, copy, etc.)
~GNETypeFrame()
Destructor.
TypeSelector * myTypeSelector
vehicle type selector
void attributeUpdated(SumoXMLAttr attribute)
function called after set a valid attribute in AttributeCreator/AttributeEditor/ParametersEditor/....
Dialog for editing calibrator vehicle types.
GNENet * getNet() const
get the net object
void setInspectedAttributeCarriers(const std::vector< GNEAttributeCarrier * > ACs)
set inspected attributeCarrier
A single child window which contains a view of the simulation area.
static FXButton * buildFXButton(FXComposite *p, const std::string &text, const std::string &tip, const std::string &help, FXIcon *ic, FXObject *tgt, FXSelector sel, FXuint opts=BUTTON_NORMAL, FXint x=0, FXint y=0, FXint w=0, FXint h=0, FXint pl=DEFAULT_PAD, FXint pr=DEFAULT_PAD, FXint pt=DEFAULT_PAD, FXint pb=DEFAULT_PAD)
build button
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
MFXGroupBoxModule (based on FXGroupBox)
FXVerticalFrame * getCollapsableFrame()
get collapsable frame (used by all elements that will be collapsed if button is toggled)