Eclipse SUMO - Simulation of Urban MObility
GNEGenericParameterDialog.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 /****************************************************************************/
15 // Dialog for edit rerouters
16 /****************************************************************************/
17 #ifndef GNEGenericParameterDialog_h
18 #define GNEGenericParameterDialog_h
19 
20 // ===========================================================================
21 // included modules
22 // ===========================================================================
23 
24 #include <config.h>
25 
28 
29 // ===========================================================================
30 // class definitions
31 // ===========================================================================
32 
34 class GNEViewNet;
35 
36 // ===========================================================================
37 // class definitions
38 // ===========================================================================
39 
44 class GNEGenericParameterDialog : public FXDialogBox {
46  FXDECLARE(GNEGenericParameterDialog)
47 
48 public:
49 
50  // ===========================================================================
51  // class GenericParametersValues
52  // ===========================================================================
53 
54  class GenericParametersValues : protected FXGroupBox {
57 
58  public:
60  GenericParametersValues(FXHorizontalFrame* frame, std::vector<std::pair<std::string, std::string> >* genericParameters);
61 
64 
66  void updateValues();
67 
69  const std::vector<std::pair<std::string, std::string> >* getGenericParameters() const;
70 
72  std::vector<std::pair<std::string, std::string> > getCopyOfGenericParameters() const;
73 
75  void setGenericParameters(const std::vector<std::pair<std::string, std::string> >& newGenericParameters);
76 
78  void addGenericParameter(std::pair<std::string, std::string> newGenericParameter);
79 
82 
86  long onPaint(FXObject* o, FXSelector f, void* p);
87 
89  long onCmdSetAttribute(FXObject*, FXSelector, void*);
90 
92  long onCmdButtonPress(FXObject*, FXSelector, void*);
93 
95 
96  protected:
99 
100  private:
103 
104  public:
106  GenericParameterRow(GenericParametersValues* genericParametersValues, FXVerticalFrame* verticalFrameParent);
107 
110 
112  void disableRow();
113 
115  void enableRow(const std::string& parameter, const std::string& value) const;
116 
118  void toogleAddButton();
119 
121  bool isButtonInAddMode() const;
122 
124  void copyValues(const GenericParameterRow& other);
125 
127  FXTextField* keyField;
128 
130  FXTextField* valueField;
131 
133  FXButton* button;
134  private:
136  FXHorizontalFrame* horizontalFrame;
137  };
138 
140  FXLabel* myKeyLabel;
141 
143  FXVerticalFrame* myVerticalFrameRow;
144 
146  std::vector<GenericParameterRow*> myGenericParameterRows;
147 
149  std::vector<std::pair<std::string, std::string> >* myGenericParameters;
150  };
151 
152  // ===========================================================================
153  // class GenericParametersOptions
154  // ===========================================================================
155 
156  class GenericParametersOptions : protected FXGroupBox {
159 
160  public:
162  GenericParametersOptions(FXHorizontalFrame* frame, GNEGenericParameterDialog* genericParameterDialogParent);
163 
166 
170  long onCmdLoadGenericParameters(FXObject*, FXSelector, void*);
171 
173  long onCmdSaveGenericParameters(FXObject*, FXSelector, void*);
174 
176  long onCmdClearGenericParameters(FXObject*, FXSelector, void*);
177 
179  long onCmdSortGenericParameters(FXObject*, FXSelector, void*);
180 
182  long onCmdHelpGenericParameter(FXObject*, FXSelector, void*);
183 
185 
186  protected:
189 
190  private:
191 
195  public:
197  GNEGenericParameterHandler(GNEGenericParameterDialog* genericParameterDialogParent, const std::string& file);
198 
201 
204 
210  void myStartElement(int element, const SUMOSAXAttributes& attrs);
211 
212  private:
215  };
216 
219 
221  FXButton* mySortButton;
222 
224  FXButton* myClearButton;
225 
227  FXButton* myLoadButton;
228 
230  FXButton* mySaveButton;
231 
233  FXButton* myHelpButton;
234  };
235 
237  GNEGenericParameterDialog(GNEViewNet* viewNet, std::vector<std::pair<std::string, std::string> >* genericParameters);
238 
241 
245  long onCmdAccept(FXObject*, FXSelector, void*);
246 
248  long onCmdCancel(FXObject*, FXSelector, void*);
249 
251  long onCmdReset(FXObject*, FXSelector, void*);
253 
254 protected:
257 
260 
262  FXButton* myAcceptButton;
263 
265  FXButton* myCancelButton;
266 
268  FXButton* myResetButton;
269 
270 private:
271 
274 
277 
278  // @brief copy of current edited Generic Parameters (used for reset)
279  const std::vector<std::pair<std::string, std::string> > myCopyOfGenericParameters;
280 
283 
286 };
287 
288 #endif
GNEGenericParameterDialog::GenericParametersValues::GenericParameterRow::GenericParameterRow
GenericParameterRow(GenericParametersValues *genericParametersValues, FXVerticalFrame *verticalFrameParent)
constructor
Definition: GNEGenericParameterDialog.cpp:211
GNEGenericParameterDialog::GenericParametersValues::GenericParameterRow
class for generic parameters Row
Definition: GNEGenericParameterDialog.h:102
GNEGenericParameterDialog::myViewNet
GNEViewNet * myViewNet
@pointer to viewNet
Definition: GNEGenericParameterDialog.h:259
SUMOSAXHandler
SAX-handler base for SUMO-files.
Definition: SUMOSAXHandler.h:42
GNEGenericParameterDialog::GenericParametersOptions::myGenericParameterDialogParent
GNEGenericParameterDialog * myGenericParameterDialogParent
pointer to Shape Frame Parent
Definition: GNEGenericParameterDialog.h:218
GNEGenericParameterDialog::~GNEGenericParameterDialog
~GNEGenericParameterDialog()
destructor
Definition: GNEGenericParameterDialog.cpp:522
GNEGenericParameterDialog::myGenericParametersValues
GenericParametersValues * myGenericParametersValues
pointer to generic parameters values
Definition: GNEGenericParameterDialog.h:273
GNEGenericParameterDialog::GenericParametersValues::GenericParameterRow::disableRow
void disableRow()
disable row
Definition: GNEGenericParameterDialog.cpp:232
SUMOSAXHandler.h
GNEGenericParameterDialog::GenericParametersOptions::mySortButton
FXButton * mySortButton
sort button
Definition: GNEGenericParameterDialog.h:221
GNEGenericParameterDialog::myCancelButton
FXButton * myCancelButton
cancel button
Definition: GNEGenericParameterDialog.h:265
GNEGenericParameterDialog::GenericParametersValues::onCmdButtonPress
long onCmdButtonPress(FXObject *, FXSelector, void *)
event when user press a remove (or add) button
Definition: GNEGenericParameterDialog.cpp:186
GNEGenericParameterDialog::GenericParametersOptions::myLoadButton
FXButton * myLoadButton
load button
Definition: GNEGenericParameterDialog.h:227
GNEViewNet
Definition: GNEViewNet.h:43
GNEGenericParameterDialog::GenericParametersValues::getCopyOfGenericParameters
std::vector< std::pair< std::string, std::string > > getCopyOfGenericParameters() const
get a copy of current edited generic parameters
Definition: GNEGenericParameterDialog.cpp:117
GNEGenericParameterDialog::onCmdCancel
long onCmdCancel(FXObject *, FXSelector, void *)
event after press cancel button
Definition: GNEGenericParameterDialog.cpp:577
GNEGenericParameterDialog::onCmdReset
long onCmdReset(FXObject *, FXSelector, void *)
event after press reset button
Definition: GNEGenericParameterDialog.cpp:587
GNEGenericParameterDialog::GenericParametersOptions::myClearButton
FXButton * myClearButton
clear button
Definition: GNEGenericParameterDialog.h:224
GNEGenericParameterDialog::GNEGenericParameterDialog
GNEGenericParameterDialog()
FOX needs this.
Definition: GNEGenericParameterDialog.h:256
GNEGenericParameterDialog
Dialog for edit generic parameters.
Definition: GNEGenericParameterDialog.h:44
GNEGenericParameterDialog::GenericParametersValues::GenericParameterRow::copyValues
void copyValues(const GenericParameterRow &other)
copy values of other parameter Row
Definition: GNEGenericParameterDialog.cpp:288
GNEGenericParameterDialog::GenericParametersValues::GenericParameterRow::~GenericParameterRow
~GenericParameterRow()
destructor
Definition: GNEGenericParameterDialog.cpp:225
GNEGenericParameterDialog::GenericParametersOptions::~GenericParametersOptions
~GenericParametersOptions()
destructor
Definition: GNEGenericParameterDialog.cpp:309
GNEGenericParameterDialog::GenericParametersValues::onPaint
long onPaint(FXObject *o, FXSelector f, void *p)
Definition: GNEGenericParameterDialog.cpp:146
GNEGenericParameterDialog::GenericParametersValues::GenericParametersValues
GenericParametersValues()
FOX needs this.
Definition: GNEGenericParameterDialog.h:98
GNEGenericParameterDialog::GenericParametersValues::onCmdSetAttribute
long onCmdSetAttribute(FXObject *, FXSelector, void *)
event when user change an attribute
Definition: GNEGenericParameterDialog.cpp:156
GNEGenericParameterDialog::myAcceptButton
FXButton * myAcceptButton
accept button
Definition: GNEGenericParameterDialog.h:262
GNEGenericParameterDialog::myResetButton
FXButton * myResetButton
cancel button
Definition: GNEGenericParameterDialog.h:268
GNEGenericParameterDialog::GenericParametersValues::setGenericParameters
void setGenericParameters(const std::vector< std::pair< std::string, std::string > > &newGenericParameters)
set generic parameters
Definition: GNEGenericParameterDialog.cpp:123
SUMOVehicleClass.h
GNEGenericParameterDialog::GenericParametersValues::getGenericParameters
const std::vector< std::pair< std::string, std::string > > * getGenericParameters() const
get current edited generic parameters
Definition: GNEGenericParameterDialog.cpp:111
GNEGenericParameterDialog::GenericParametersValues::myVerticalFrameRow
FXVerticalFrame * myVerticalFrameRow
vertical frame in which rows are placed
Definition: GNEGenericParameterDialog.h:143
GNEGenericParameterDialog::GenericParametersValues::GenericParameterRow::keyField
FXTextField * keyField
TextField for parameter.
Definition: GNEGenericParameterDialog.h:127
GNEGenericParameterDialog::GenericParametersValues
FOX-declaration.
Definition: GNEGenericParameterDialog.h:54
GNEGenericParameterDialog::GenericParametersOptions
Definition: GNEGenericParameterDialog.h:156
GNEGenericParameterDialog::GenericParametersValues::addGenericParameter
void addGenericParameter(std::pair< std::string, std::string > newGenericParameter)
add a single generic parameter
Definition: GNEGenericParameterDialog.cpp:131
GNEGenericParameterDialog::GenericParametersValues::myGenericParameters
std::vector< std::pair< std::string, std::string > > * myGenericParameters
edited generic parameters
Definition: GNEGenericParameterDialog.h:149
GNEGenericParameterDialog::GenericParametersOptions::GNEGenericParameterHandler::GNEGenericParameterHandler
GNEGenericParameterHandler(GNEGenericParameterDialog *genericParameterDialogParent, const std::string &file)
Constructor.
Definition: GNEGenericParameterDialog.cpp:443
GNEGenericParameterDialog::GenericParametersOptions::GNEGenericParameterHandler::myGenericParameterDialogParent
GNEGenericParameterDialog * myGenericParameterDialogParent
pointer to genericParameterDialog parent
Definition: GNEGenericParameterDialog.h:214
GNEGenericParameterDialog::GenericParametersOptions::onCmdSortGenericParameters
long onCmdSortGenericParameters(FXObject *, FXSelector, void *)
event when user press sort generic parameters button
Definition: GNEGenericParameterDialog.cpp:376
GNEGenericParameterDialog::GenericParametersValues::GenericParameterRow::toogleAddButton
void toogleAddButton()
toogle add button
Definition: GNEGenericParameterDialog.cpp:268
GNEGenericParameterDialog::GenericParametersOptions::GNEGenericParameterHandler
load generic parameters from a filename
Definition: GNEGenericParameterDialog.h:194
GNEGenericParameterDialog::GenericParametersValues::updateValues
void updateValues()
update values
Definition: GNEGenericParameterDialog.cpp:92
GNEGenericParameterDialog::GenericParametersOptions::GNEGenericParameterHandler::myStartElement
void myStartElement(int element, const SUMOSAXAttributes &attrs)
Called on the opening of a tag;.
Definition: GNEGenericParameterDialog.cpp:453
GNEGenericParameterDialog::GenericParametersValues::clearGenericParameters
void clearGenericParameters()
clear all generic parameters
Definition: GNEGenericParameterDialog.cpp:139
GNEGenericParameterDialog::GenericParametersValues::GenericParameterRow::valueField
FXTextField * valueField
TextField for value.
Definition: GNEGenericParameterDialog.h:130
GNEGenericParameterDialog::operator=
GNEGenericParameterDialog & operator=(const GNEGenericParameterDialog &)=delete
Invalidated assignment operator.
GNEGenericParameterDialog::myGenericParametersOptions
GenericParametersOptions * myGenericParametersOptions
pointer to generic parameters options
Definition: GNEGenericParameterDialog.h:276
GNEGenericParameterDialog::GenericParametersValues::GenericParameterRow::button
FXButton * button
Button for add or remove row.
Definition: GNEGenericParameterDialog.h:133
GNEGenericParameterDialog::GenericParametersValues::GenericParameterRow::isButtonInAddMode
bool isButtonInAddMode() const
check if remove button is in mode "add"
Definition: GNEGenericParameterDialog.cpp:282
GNEGenericParameterDialog::myCopyOfGenericParameters
const std::vector< std::pair< std::string, std::string > > myCopyOfGenericParameters
Definition: GNEGenericParameterDialog.h:279
GNEGenericParameterDialog::GenericParametersOptions::myHelpButton
FXButton * myHelpButton
help button
Definition: GNEGenericParameterDialog.h:233
GNEGenericParameterDialog::GenericParametersValues::GenericParameterRow::enableRow
void enableRow(const std::string &parameter, const std::string &value) const
enable rlow
Definition: GNEGenericParameterDialog.cpp:244
GNEGenericParameterDialog::GenericParametersValues::myKeyLabel
FXLabel * myKeyLabel
label for key (its neccesary because has to be resized in every onPaint() iteration)
Definition: GNEGenericParameterDialog.h:140
GNEGenericParameterDialog::GenericParametersOptions::GNEGenericParameterHandler::~GNEGenericParameterHandler
~GNEGenericParameterHandler()
Destructor.
Definition: GNEGenericParameterDialog.cpp:449
GNEGenericParameterDialog::GenericParametersOptions::GenericParametersOptions
GenericParametersOptions()
FOX needs this.
Definition: GNEGenericParameterDialog.h:188
GNEGenericParameterDialog::GenericParametersOptions::onCmdClearGenericParameters
long onCmdClearGenericParameters(FXObject *, FXSelector, void *)
event when user press clear generic parameters button
Definition: GNEGenericParameterDialog.cpp:368
GNEGenericParameterDialog::GenericParametersOptions::onCmdLoadGenericParameters
long onCmdLoadGenericParameters(FXObject *, FXSelector, void *)
Definition: GNEGenericParameterDialog.cpp:313
config.h
GNEGenericParameterDialog::GenericParametersValues::myGenericParameterRows
std::vector< GenericParameterRow * > myGenericParameterRows
vector with the GenericParameterRows
Definition: GNEGenericParameterDialog.h:146
GNEGenericParameterDialog::GenericParametersOptions::mySaveButton
FXButton * mySaveButton
save button
Definition: GNEGenericParameterDialog.h:230
GNEGenericParameterDialog::GenericParametersValues::~GenericParametersValues
~GenericParametersValues()
destructor
Definition: GNEGenericParameterDialog.cpp:88
GNEGenericParameterDialog::GenericParametersOptions::onCmdSaveGenericParameters
long onCmdSaveGenericParameters(FXObject *, FXSelector, void *)
event when user press save generic parameters button
Definition: GNEGenericParameterDialog.cpp:342
GNEGenericParameterDialog::GenericParametersValues::GenericParameterRow::horizontalFrame
FXHorizontalFrame * horizontalFrame
frame in which elements of GenericParameterRow are placed
Definition: GNEGenericParameterDialog.h:136
SUMOSAXAttributes
Encapsulated SAX-Attributes.
Definition: SUMOSAXAttributes.h:57
GNEGenericParameterDialog::GenericParametersOptions::onCmdHelpGenericParameter
long onCmdHelpGenericParameter(FXObject *, FXSelector, void *)
event when user press help generic parameters button
Definition: GNEGenericParameterDialog.cpp:406
GNEAttributeCarrier
Definition: GNEAttributeCarrier.h:54
GNEGenericParameterDialog::onCmdAccept
long onCmdAccept(FXObject *, FXSelector, void *)
Definition: GNEGenericParameterDialog.cpp:526