Eclipse SUMO - Simulation of Urban MObility
GNEParametersDialog.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-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 parameters
15 /****************************************************************************/
16 #ifndef GNEParametersDialog_h
17 #define GNEParametersDialog_h
18 
19 // ===========================================================================
20 // included modules
21 // ===========================================================================
22 
23 #include <config.h>
24 
28 
29 // ===========================================================================
30 // class definitions
31 // ===========================================================================
32 
34 class GNEViewNet;
35 
36 // ===========================================================================
37 // class definitions
38 // ===========================================================================
39 
44 class GNEParametersDialog : public FXDialogBox {
46  FXDECLARE(GNEParametersDialog)
47 
48 public:
49 
50  // ===========================================================================
51  // class ParametersValues
52  // ===========================================================================
53 
54  class ParametersValues : protected FXGroupBox {
57 
58  public:
60  ParametersValues(FXHorizontalFrame* frame, GNEParametersDialog* ParameterDialogParent);
61 
64 
66  void updateValues();
67 
69  void setParameters(const std::vector<std::pair<std::string, std::string> >& newParameters);
70 
72  void addParameter(std::pair<std::string, std::string> newParameter);
73 
75  void clearParameters();
76 
80  long onPaint(FXObject* o, FXSelector f, void* p);
81 
83  long onCmdSetAttribute(FXObject*, FXSelector, void*);
84 
86  long onCmdButtonPress(FXObject*, FXSelector, void*);
87 
89 
90  protected:
92 
93  private:
95  class ParameterRow {
96 
97  public:
99  ParameterRow(ParametersValues* ParametersValues, FXVerticalFrame* verticalFrameParent);
100 
102  ~ParameterRow();
103 
105  void disableRow();
106 
108  void enableRow(const std::string& parameter, const std::string& value) const;
109 
111  void toogleAddButton();
112 
114  bool isButtonInAddMode() const;
115 
117  void copyValues(const ParameterRow& other);
118 
120  FXTextField* keyField;
121 
123  FXTextField* valueField;
124 
126  FXButton* button;
127  private:
129  FXHorizontalFrame* horizontalFrame;
130  };
131 
133  FXLabel* myKeyLabel;
134 
136  FXVerticalFrame* myVerticalFrameRow;
137 
139  std::vector<ParameterRow*> myParameterRows;
140 
143  };
144 
145  // ===========================================================================
146  // class ParametersOptions
147  // ===========================================================================
148 
149  class ParametersOptions : protected FXGroupBox {
152 
153  public:
155  ParametersOptions(FXHorizontalFrame* frame, GNEParametersDialog* ParameterDialogParent);
156 
159 
163  long onCmdLoadParameters(FXObject*, FXSelector, void*);
164 
166  long onCmdSaveParameters(FXObject*, FXSelector, void*);
167 
169  long onCmdClearParameters(FXObject*, FXSelector, void*);
170 
172  long onCmdSortParameters(FXObject*, FXSelector, void*);
173 
175  long onCmdHelpParameter(FXObject*, FXSelector, void*);
176 
178 
179  protected:
181 
182  private:
183 
187  public:
189  GNEParameterHandler(ParametersOptions* ParametersOptionsParent, const std::string& file);
190 
193 
196 
202  void myStartElement(int element, const SUMOSAXAttributes& attrs);
203 
204  private:
207  };
208 
211 
213  FXButton* mySortButton;
214 
216  FXButton* myClearButton;
217 
219  FXButton* myLoadButton;
220 
222  FXButton* mySaveButton;
223 
225  FXButton* myHelpButton;
226  };
227 
230 
233 
237  long onCmdAccept(FXObject*, FXSelector, void*);
238 
240  long onCmdCancel(FXObject*, FXSelector, void*);
241 
243  long onCmdReset(FXObject*, FXSelector, void*);
245 
246 protected:
248 
249 
251 
254 
257 
259  FXButton* myAcceptButton;
260 
262  FXButton* myCancelButton;
263 
265  FXButton* myResetButton;
266 
268  std::vector<std::pair<std::string, std::string> > myEditedParameters;
269 
270  // @brief copy of current edited Parameters (used for reset)
271  const std::vector<std::pair<std::string, std::string> > myCopyOfParameters;
272 
273 private:
276 
278  GNEParametersDialog& operator=(const GNEParametersDialog&) = delete;
279 };
280 
281 #endif
GNEParametersDialog::ParametersValues::myVerticalFrameRow
FXVerticalFrame * myVerticalFrameRow
vertical frame in which rows are placed
Definition: GNEParametersDialog.h:136
GNEParametersDialog::ParametersValues::onCmdSetAttribute
long onCmdSetAttribute(FXObject *, FXSelector, void *)
event when user change an attribute
Definition: GNEParametersDialog.cpp:145
GNEParametersDialog::ParametersValues::ParameterRow::horizontalFrame
FXHorizontalFrame * horizontalFrame
frame in which elements of ParameterRow are placed
Definition: GNEParametersDialog.h:129
GNEParametersDialog::ParametersValues::ParameterRow::button
FXButton * button
Button for add or remove row.
Definition: GNEParametersDialog.h:126
GNEParametersDialog::ParametersValues::ParameterRow::keyField
FXTextField * keyField
TextField for parameter.
Definition: GNEParametersDialog.h:120
GNEParametersDialog::onCmdReset
long onCmdReset(FXObject *, FXSelector, void *)
event after press reset button
Definition: GNEParametersDialog.cpp:577
GNEParametersDialog::ParametersValues::ParameterRow::toogleAddButton
void toogleAddButton()
toogle add button
Definition: GNEParametersDialog.cpp:257
GNEParametersDialog::~GNEParametersDialog
~GNEParametersDialog()
destructor
Definition: GNEParametersDialog.cpp:511
SUMOSAXHandler
SAX-handler base for SUMO-files.
Definition: SUMOSAXHandler.h:41
GNEParametersDialog::ParametersValues::myKeyLabel
FXLabel * myKeyLabel
label for key (its neccesary because has to be resized in every onPaint() iteration)
Definition: GNEParametersDialog.h:133
GNEParametersDialog::ParametersOptions::~ParametersOptions
~ParametersOptions()
destructor
Definition: GNEParametersDialog.cpp:298
GNEParametersDialog::ParametersOptions::myLoadButton
FXButton * myLoadButton
load button
Definition: GNEParametersDialog.h:219
GNEParametersDialog::ParametersValues
FOX-declaration.
Definition: GNEParametersDialog.h:54
GNEParametersDialog::ParametersOptions
Definition: GNEParametersDialog.h:149
SUMOSAXHandler.h
GNEParametersDialog::ParametersValues::ParameterRow::isButtonInAddMode
bool isButtonInAddMode() const
check if remove button is in mode "add"
Definition: GNEParametersDialog.cpp:271
GNEParametersDialog::ParametersOptions::GNEParameterHandler::myStartElement
void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called on the opening of a tag;.
Definition: GNEParametersDialog.cpp:442
GNEViewNet
Definition: GNEViewNet.h:42
GNEParametersDialog::myParametersValues
ParametersValues * myParametersValues
pointer to parameters values
Definition: GNEParametersDialog.h:253
GNEParametersDialog::onCmdAccept
long onCmdAccept(FXObject *, FXSelector, void *)
Definition: GNEParametersDialog.cpp:515
GNEParametersDialog::ParametersOptions::GNEParameterHandler::GNEParameterHandler
GNEParameterHandler(ParametersOptions *ParametersOptionsParent, const std::string &file)
Constructor.
Definition: GNEParametersDialog.cpp:432
GNEParametersDialog::ParametersOptions::onCmdSortParameters
long onCmdSortParameters(FXObject *, FXSelector, void *)
event when user press sort parameters button
Definition: GNEParametersDialog.cpp:365
GNEParametersDialog::ParametersOptions::onCmdSaveParameters
long onCmdSaveParameters(FXObject *, FXSelector, void *)
event when user press save parameters button
Definition: GNEParametersDialog.cpp:331
GNEParametersDialog::myEditedParameters
std::vector< std::pair< std::string, std::string > > myEditedParameters
current edited parameters
Definition: GNEParametersDialog.h:268
GNEParametersDialog::ParametersOptions::myParameterDialogParent
GNEParametersDialog * myParameterDialogParent
pointer to Shape Frame Parent
Definition: GNEParametersDialog.h:210
GNEParametersDialog::ParametersValues::ParametersValues
ParametersValues(FXHorizontalFrame *frame, GNEParametersDialog *ParameterDialogParent)
FOX-declaration.
Definition: GNEParametersDialog.cpp:72
GNEParametersDialog::ParametersValues::clearParameters
void clearParameters()
clear all parameters
Definition: GNEParametersDialog.cpp:127
GNEParametersDialog::ParametersOptions::myClearButton
FXButton * myClearButton
clear button
Definition: GNEParametersDialog.h:216
GNEParametersDialog::ParametersValues::myParameterRows
std::vector< ParameterRow * > myParameterRows
vector with the ParameterRows
Definition: GNEParametersDialog.h:139
GNEParametersDialog::ParametersOptions::GNEParameterHandler
load parameters from a filename
Definition: GNEParametersDialog.h:186
GNEParametersDialog::ParametersValues::~ParametersValues
~ParametersValues()
destructor
Definition: GNEParametersDialog.cpp:88
GNEParametersDialog::ParametersValues::ParameterRow::disableRow
void disableRow()
disable row
Definition: GNEParametersDialog.cpp:221
GNEFrameAttributesModuls.h
GNEParametersDialog::ParametersValues::ParameterRow
class for parameters Row
Definition: GNEParametersDialog.h:95
GNEParametersDialog::ParametersValues::ParameterRow::copyValues
void copyValues(const ParameterRow &other)
copy values of other parameter Row
Definition: GNEParametersDialog.cpp:277
SUMOVehicleClass.h
FOX_CONSTRUCTOR
#define FOX_CONSTRUCTOR(classname)
Definition: config.h:13
GNEFrameAttributesModuls::ParametersEditor
Definition: GNEFrameAttributesModuls.h:554
GNEParametersDialog
Dialog for edit parameters.
Definition: GNEParametersDialog.h:44
GNEParametersDialog::ParametersOptions::GNEParameterHandler::myParametersOptionsParent
ParametersOptions * myParametersOptionsParent
pointer to ParametersOptions parent
Definition: GNEParametersDialog.h:206
GNEParametersDialog::myParametersEditor
GNEFrameAttributesModuls::ParametersEditor * myParametersEditor
pointer to ParametersEditor
Definition: GNEParametersDialog.h:250
GNEParametersDialog::ParametersValues::myParameterDialogParent
GNEParametersDialog * myParameterDialogParent
pointer to ParameterDialog parent
Definition: GNEParametersDialog.h:142
GNEParametersDialog::ParametersValues::ParameterRow::ParameterRow
ParameterRow(ParametersValues *ParametersValues, FXVerticalFrame *verticalFrameParent)
constructor
Definition: GNEParametersDialog.cpp:200
GNEParametersDialog::onCmdCancel
long onCmdCancel(FXObject *, FXSelector, void *)
event after press cancel button
Definition: GNEParametersDialog.cpp:567
GNEParametersDialog::ParametersValues::setParameters
void setParameters(const std::vector< std::pair< std::string, std::string > > &newParameters)
set parameters
Definition: GNEParametersDialog.cpp:111
GNEParametersDialog::ParametersOptions::mySaveButton
FXButton * mySaveButton
save button
Definition: GNEParametersDialog.h:222
GNEFrameAttributesModuls
Definition: GNEFrameAttributesModuls.h:37
GNEParametersDialog::myCopyOfParameters
const std::vector< std::pair< std::string, std::string > > myCopyOfParameters
Definition: GNEParametersDialog.h:271
GNEParametersDialog::myCancelButton
FXButton * myCancelButton
cancel button
Definition: GNEParametersDialog.h:262
GNEParametersDialog::ParametersOptions::GNEParameterHandler::~GNEParameterHandler
~GNEParameterHandler()
Destructor.
Definition: GNEParametersDialog.cpp:438
GNEParametersDialog::ParametersValues::onPaint
long onPaint(FXObject *o, FXSelector f, void *p)
Definition: GNEParametersDialog.cpp:135
GNEParametersDialog::ParametersValues::ParameterRow::~ParameterRow
~ParameterRow()
destructor
Definition: GNEParametersDialog.cpp:214
GNEParametersDialog::ParametersOptions::onCmdLoadParameters
long onCmdLoadParameters(FXObject *, FXSelector, void *)
Definition: GNEParametersDialog.cpp:302
GNEParametersDialog::myResetButton
FXButton * myResetButton
cancel button
Definition: GNEParametersDialog.h:265
GNEParametersDialog::ParametersOptions::ParametersOptions
ParametersOptions(FXHorizontalFrame *frame, GNEParametersDialog *ParameterDialogParent)
FOX-declaration.
Definition: GNEParametersDialog.cpp:286
GNEParametersDialog::ParametersOptions::onCmdHelpParameter
long onCmdHelpParameter(FXObject *, FXSelector, void *)
event when user press help parameters button
Definition: GNEParametersDialog.cpp:395
GNEParametersDialog::ParametersOptions::onCmdClearParameters
long onCmdClearParameters(FXObject *, FXSelector, void *)
event when user press clear parameters button
Definition: GNEParametersDialog.cpp:357
config.h
GNEParametersDialog::ParametersValues::onCmdButtonPress
long onCmdButtonPress(FXObject *, FXSelector, void *)
event when user press a remove (or add) button
Definition: GNEParametersDialog.cpp:175
GNEParametersDialog::ParametersOptions::mySortButton
FXButton * mySortButton
sort button
Definition: GNEParametersDialog.h:213
GNEParametersDialog::ParametersValues::ParameterRow::valueField
FXTextField * valueField
TextField for value.
Definition: GNEParametersDialog.h:123
GNEParametersDialog::ParametersOptions::myHelpButton
FXButton * myHelpButton
help button
Definition: GNEParametersDialog.h:225
GNEParametersDialog::ParametersValues::addParameter
void addParameter(std::pair< std::string, std::string > newParameter)
add a single parameter
Definition: GNEParametersDialog.cpp:119
GNEParametersDialog::ParametersValues::ParameterRow::enableRow
void enableRow(const std::string &parameter, const std::string &value) const
enable rlow
Definition: GNEParametersDialog.cpp:233
SUMOSAXAttributes
Encapsulated SAX-Attributes.
Definition: SUMOSAXAttributes.h:56
GNEParametersDialog::myAcceptButton
FXButton * myAcceptButton
accept button
Definition: GNEParametersDialog.h:259
GNEAttributeCarrier
Definition: GNEAttributeCarrier.h:54
GNEParametersDialog::GNEParametersDialog
GNEParametersDialog(GNEFrameAttributesModuls::ParametersEditor *ParametersEditor)
Constructor.
Definition: GNEParametersDialog.cpp:484
GNEParametersDialog::ParametersValues::updateValues
void updateValues()
update values
Definition: GNEParametersDialog.cpp:92
GNEParametersDialog::myParametersOptions
ParametersOptions * myParametersOptions
pointer to parameters options
Definition: GNEParametersDialog.h:256