Eclipse SUMO - Simulation of Urban MObility
GNESingleParametersDialog.h
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3// Copyright (C) 2001-2022 German Aerospace Center (DLR) and others.
4// This program and the accompanying materials are made available under the
5// terms of the Eclipse Public License 2.0 which is available at
6// https://www.eclipse.org/legal/epl-2.0/
7// This Source Code may also be made available under the following Secondary
8// Licenses when the conditions for such availability set forth in the Eclipse
9// Public License 2.0 are satisfied: GNU General Public License, version 2
10// or later which is available at
11// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13/****************************************************************************/
18// Dialog for edit parameters
19/****************************************************************************/
20#pragma once
21#include <config.h>
22
28
29// ===========================================================================
30// class definitions
31// ===========================================================================
32
35class GNEViewNet;
36
37// ===========================================================================
38// class definitions
39// ===========================================================================
40
45class GNESingleParametersDialog : public FXDialogBox {
48
49public:
50
51 // ===========================================================================
52 // class ParametersValues
53 // ===========================================================================
54
55 class ParametersValues : protected FXGroupBox {
58
59
60 class ParameterRow;
61
62 public:
64 ParametersValues(FXHorizontalFrame* frame, const std::string& name);
65
68
70 void setParameters(const std::vector<std::pair<std::string, std::string> >& newParameters);
71
73 void addParameter(std::pair<std::string, std::string> newParameter);
74
76 void clearParameters();
77
79 const std::vector<ParameterRow*> getParameterRows() const;
80
82 bool keyExist(const std::string& key) const;
83
87 long onPaint(FXObject* o, FXSelector f, void* p);
88
90 long onCmdSetAttribute(FXObject*, FXSelector, void*);
91
93 long onCmdButtonPress(FXObject*, FXSelector, void*);
94
96
97 protected:
99 FOX_CONSTRUCTOR(ParametersValues)
100
101 private:
104
105 public:
107 ParameterRow(ParametersValues* ParametersValues, FXVerticalFrame* verticalFrameParent);
108
111
113 void disableRow();
114
116 void enableRow(const std::string& parameter, const std::string& value) const;
117
119 void toggleAddButton();
120
122 bool isButtonInAddMode() const;
123
125 void copyValues(const ParameterRow& other);
126
128 FXTextField* keyField;
129
131 FXTextField* valueField;
132
134 FXButton* button;
135 private:
137 FXHorizontalFrame* horizontalFrame;
138 };
139
141 FXLabel* myKeyLabel;
142
144 FXVerticalFrame* myVerticalFrameRow;
145
147 std::vector<ParameterRow*> myParameterRows;
148 };
149
150 // ===========================================================================
151 // class ParametersOperations
152 // ===========================================================================
153
154 class ParametersOperations : protected FXGroupBox {
157
158 public:
160 ParametersOperations(FXHorizontalFrame* frame, GNESingleParametersDialog* ParameterDialogParent);
161
164
168 long onCmdLoadParameters(FXObject*, FXSelector, void*);
169
171 long onCmdSaveParameters(FXObject*, FXSelector, void*);
172
174 long onCmdClearParameters(FXObject*, FXSelector, void*);
175
177 long onCmdSortParameters(FXObject*, FXSelector, void*);
178
180 long onCmdHelpParameter(FXObject*, FXSelector, void*);
181
183
184 protected:
186 FOX_CONSTRUCTOR(ParametersOperations)
187
188 private:
192 public:
194 GNEParameterHandler(ParametersOperations* ParametersOperationsParent, const std::string& file);
195
198
201
207 void myStartElement(int element, const SUMOSAXAttributes& attrs);
208
209 private:
212 };
213
216
218 FXButton* mySortButton;
219
221 FXButton* myClearButton;
222
224 FXButton* myLoadButton;
225
227 FXButton* mySaveButton;
228
230 FXButton* myHelpButton;
231 };
232
235
238
241
244
247
250
254 long onCmdAccept(FXObject*, FXSelector, void*);
255
257 long onCmdCancel(FXObject*, FXSelector, void*);
258
260 long onCmdReset(FXObject*, FXSelector, void*);
262
263protected:
265 FOX_CONSTRUCTOR(GNESingleParametersDialog)
266
267
269
272
275
278
281
284
287
289 FXButton* myAcceptButton;
290
292 FXButton* myCancelButton;
293
295 FXButton* myResetButton;
296
297private:
299 void constructor(const std::string& name);
300
303
306};
307
void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called on the opening of a tag;.
ParametersOperations * myParametersOperationsParent
pointer to ParametersOperations parent
GNEParameterHandler(ParametersOperations *ParametersOperationsParent, const std::string &file)
Constructor.
ParametersOperations(FXHorizontalFrame *frame, GNESingleParametersDialog *ParameterDialogParent)
FOX-declaration.
long onCmdSaveParameters(FXObject *, FXSelector, void *)
event when user press save parameters button
long onCmdClearParameters(FXObject *, FXSelector, void *)
event when user press clear parameters button
GNESingleParametersDialog * myParameterDialogParent
pointer to Shape Frame Parent
long onCmdLoadParameters(FXObject *, FXSelector, void *)
long onCmdSortParameters(FXObject *, FXSelector, void *)
event when user press sort parameters button
long onCmdHelpParameter(FXObject *, FXSelector, void *)
event when user press help parameters button
bool isButtonInAddMode() const
check if remove button is in mode "add"
ParameterRow(ParametersValues *ParametersValues, FXVerticalFrame *verticalFrameParent)
constructor
void copyValues(const ParameterRow &other)
copy values of other parameter Row
FXHorizontalFrame * horizontalFrame
frame in which elements of ParameterRow are placed
void enableRow(const std::string &parameter, const std::string &value) const
enable row
long onPaint(FXObject *o, FXSelector f, void *p)
std::vector< ParameterRow * > myParameterRows
vector with the ParameterRows
long onCmdSetAttribute(FXObject *, FXSelector, void *)
event when user change an attribute
ParametersValues(FXHorizontalFrame *frame, const std::string &name)
constructor
const std::vector< ParameterRow * > getParameterRows() const
get vector with the ParameterRows
FXVerticalFrame * myVerticalFrameRow
vertical frame in which rows are placed
void setParameters(const std::vector< std::pair< std::string, std::string > > &newParameters)
set parameters
FXLabel * myKeyLabel
label for key (its neccesary because has to be resized in every onPaint() iteration)
bool keyExist(const std::string &key) const
check if given key exist already
long onCmdButtonPress(FXObject *, FXSelector, void *)
event when user press a remove (or add) button
void addParameter(std::pair< std::string, std::string > newParameter)
add a single parameter
Dialog for edit parameters.
FXButton * myResetButton
cancel button
ParametersValues * myParametersValues
pointer to parameters values
long onCmdCancel(FXObject *, FXSelector, void *)
event after press cancel button
long onCmdReset(FXObject *, FXSelector, void *)
event after press reset button
GNEVehicleTypeDialog::VTypeAtributes::VTypeAttributeRow * VTypeAttributeRow
pointer to VTypeAttributeRow
FXButton * myAcceptButton
accept button
FXButton * myCancelButton
cancel button
void constructor(const std::string &name)
auxiliar constructor
ParametersOperations * myParametersOperations
pointer to parameters operations
GNEAttributeCarrier * myAttributeCarrier
pointer to GNEAttributeCarrier
NBLoadedSUMOTLDef * myTLDef
pointer to TLDef
GNESingleParametersDialog(GNEFrameAttributeModules::GenericDataAttributes *genericDataAttributes)
Constructor for generic data attributes.
GNEInspectorFrame::ParametersEditor * myParametersEditor
pointer to ParametersEditor
GNEFrameAttributeModules::GenericDataAttributes * myGenericDataAttributes
FOX need this.
long onCmdAccept(FXObject *, FXSelector, void *)
class used for represent rows with Vehicle Type parameters
Dialog for editing calibrator vehicle types.
A loaded (complete) traffic light logic.
Encapsulated SAX-Attributes.
SAX-handler base for SUMO-files.
Definition: json.hpp:4471