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-2018 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 
27 
28 // ===========================================================================
29 // class definitions
30 // ===========================================================================
31 
33 class GNEViewNet;
34 
35 // ===========================================================================
36 // class definitions
37 // ===========================================================================
38 
43 class GNEGenericParameterDialog : public FXDialogBox {
45  FXDECLARE(GNEGenericParameterDialog)
46 
47 public:
48 
49  // ===========================================================================
50  // class GenericParametersValues
51  // ===========================================================================
52 
53  class GenericParametersValues : protected FXGroupBox {
56 
57  public:
59  GenericParametersValues(FXHorizontalFrame* frame, GNEGenericParameterDialog* genericParameterDialogParent, std::vector<std::pair<std::string, std::string> >* genericParameters);
60 
63 
65  void updateValues();
66 
68  const std::vector<std::pair<std::string, std::string> >* getGenericParameters() const;
69 
71  std::vector<std::pair<std::string, std::string> > getCopyOfGenericParameters() const;
72 
74  void setGenericParameters(const std::vector<std::pair<std::string, std::string> >& newGenericParameters);
75 
77  void addGenericParameter(std::pair<std::string, std::string> newGenericParameter);
78 
81 
85  long onPaint(FXObject* o, FXSelector f , void* p);
86 
88  long onCmdSetAttribute(FXObject*, FXSelector, void*);
89 
91  long onCmdButtonPress(FXObject*, FXSelector, void*);
92 
94 
95  protected:
98 
99  private:
102 
103  public:
105  GenericParameterRow(GenericParametersValues* genericParametersValues, FXVerticalFrame* verticalFrameParent);
106 
109 
111  void disableRow();
112 
114  void enableRow(const std::string& parameter, const std::string& value) const;
115 
117  void toogleAddButton();
118 
120  bool isButtonInAddMode() const;
121 
123  void copyValues(const GenericParameterRow& other);
124 
126  FXTextField* keyField;
127 
129  FXTextField* valueField;
130 
132  FXButton* button;
133  private:
135  FXHorizontalFrame* horizontalFrame;
136  };
137 
140 
142  FXLabel* myKeyLabel;
143 
145  FXVerticalFrame* myVerticalFrameRow;
146 
148  std::vector<GenericParameterRow*> myGenericParameterRows;
149 
151  std::vector<std::pair<std::string, std::string> >* myGenericParameters;
152  };
153 
154  // ===========================================================================
155  // class GenericParametersOptions
156  // ===========================================================================
157 
158  class GenericParametersOptions : protected FXGroupBox {
161 
162  public:
164  GenericParametersOptions(FXHorizontalFrame* frame, GNEGenericParameterDialog* genericParameterDialogParent);
165 
168 
172  long onCmdLoadGenericParameters(FXObject*, FXSelector, void*);
173 
175  long onCmdSaveGenericParameters(FXObject*, FXSelector, void*);
176 
178  long onCmdClearGenericParameters(FXObject*, FXSelector, void*);
179 
181  long onCmdSortGenericParameters(FXObject*, FXSelector, void*);
182 
184  long onCmdHelpGenericParameter(FXObject*, FXSelector, void*);
185 
187 
188  protected:
191 
192  private:
193 
197  public:
199  GNEGenericParameterHandler(GNEGenericParameterDialog* genericParameterDialogParent, const std::string& file);
200 
203 
206 
212  void myStartElement(int element, const SUMOSAXAttributes& attrs);
213 
214  private:
217 
220  };
221 
224 
226  FXButton* mySortButton;
227 
229  FXButton* myClearButton;
230 
232  FXButton* myLoadButton;
233 
235  FXButton* mySaveButton;
236 
238  FXButton* myHelpButton;
239  };
240 
242  GNEGenericParameterDialog(GNEViewNet* viewNet, std::vector<std::pair<std::string, std::string> >* genericParameters);
243 
246 
250  long onCmdAccept(FXObject*, FXSelector, void*);
251 
253  long onCmdCancel(FXObject*, FXSelector, void*);
254 
256  long onCmdReset(FXObject*, FXSelector, void*);
258 
259 protected:
262 
265 
267  FXButton* myAcceptButton;
268 
270  FXButton* myCancelButton;
271 
273  FXButton* myResetButton;
274 
275 private:
276 
279 
282 
283  // @brief copy of current edited Generic Parameters (used for reset)
284  const std::vector<std::pair<std::string, std::string> > myCopyOfGenericParameters;
285 
288 
291 };
292 
293 #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) ...
bool myMaximumNumberOfAttributesShown
flag to check if Warning with the maximum number of attributes was shown
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 * myGenericParameterDialogParent
pointer to Shape Frame Parent
GNEGenericParameterDialog & operator=(const GNEGenericParameterDialog &)=delete
Invalidated assignment operator.