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 
34 class NBLoadedSUMOTLDef;
35 class GNEViewNet;
36 
37 // ===========================================================================
38 // class definitions
39 // ===========================================================================
40 
45 class GNESingleParametersDialog : public FXDialogBox {
47  FXDECLARE(GNESingleParametersDialog)
48 
49 public:
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:
103  class ParameterRow {
104 
105  public:
107  ParameterRow(ParametersValues* ParametersValues, FXVerticalFrame* verticalFrameParent);
108 
110  ~ParameterRow();
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 
246  GNESingleParametersDialog(FXApp* app, NBLoadedSUMOTLDef* TLDef);
247 
250 
254  long onCmdAccept(FXObject*, FXSelector, void*);
255 
257  long onCmdCancel(FXObject*, FXSelector, void*);
258 
260  long onCmdReset(FXObject*, FXSelector, void*);
262 
263 protected:
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 
297 private:
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 rlow
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 edit rerouter intervals.
A loaded (complete) traffic light logic.
Encapsulated SAX-Attributes.
SAX-handler base for SUMO-files.