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
const std::vector< std::pair< std::string, std::string > > myCopyOfGenericParameters
std::vector< std::pair< std::string, std::string > > getCopyOfGenericParameters() const
get a copy of current edited generic parameters
bool isButtonInAddMode() const
check if remove button is in mode "add"
FXHorizontalFrame * horizontalFrame
frame in which elements of GenericParameterRow are placed
const std::vector< std::pair< std::string, std::string > > * getGenericParameters() const
get current edited generic parameters
FXButton * myAcceptButton
accept button
long onCmdAccept(FXObject *, FXSelector, void *)
long onCmdButtonPress(FXObject *, FXSelector, void *)
event when user press a remove (or add) button
long onCmdCancel(FXObject *, FXSelector, void *)
event after press cancel button
SAX-handler base for SUMO-files.
void copyValues(const GenericParameterRow &other)
copy values of other parameter Row
GNEGenericParameterDialog * myGenericParameterDialogParent
pointer to genericParameterDialog parent
Dialog for edit generic parameters.
FXLabel * myKeyLabel
label for key (its neccesary because has to be resized in every onPaint() iteration) ...
long onCmdSetAttribute(FXObject *, FXSelector, void *)
event when user change an attribute
Encapsulated SAX-Attributes.
GNEViewNet * myViewNet
to viewNet
std::vector< GenericParameterRow * > myGenericParameterRows
vector with the GenericParameterRows
void addGenericParameter(std::pair< std::string, std::string > newGenericParameter)
add a single generic parameter
FXButton * myResetButton
cancel button
GenericParametersOptions * myGenericParametersOptions
pointer to generic parameters options
GenericParameterRow(GenericParametersValues *genericParametersValues, FXVerticalFrame *verticalFrameParent)
constructor
FXVerticalFrame * myVerticalFrameRow
vertical frame in which rows are placed
GNEGenericParameterDialog * myGenericParameterDialogParent
pointer to Shape Frame Parent
FXButton * myCancelButton
cancel button
GenericParametersValues * myGenericParametersValues
pointer to generic parameters values
std::vector< std::pair< std::string, std::string > > * myGenericParameters
edited generic parameters
void enableRow(const std::string &parameter, const std::string &value) const
enable rlow
void setGenericParameters(const std::vector< std::pair< std::string, std::string > > &newGenericParameters)
set generic parameters
long onCmdReset(FXObject *, FXSelector, void *)
event after press reset button
GNEGenericParameterDialog & operator=(const GNEGenericParameterDialog &)=delete
Invalidated assignment operator.