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 
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, GNEGenericParameterDialog* genericParameterDialogParent, 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 
141 
143  FXLabel* myKeyLabel;
144 
146  FXVerticalFrame* myVerticalFrameRow;
147 
149  std::vector<GenericParameterRow*> myGenericParameterRows;
150 
152  std::vector<std::pair<std::string, std::string> >* myGenericParameters;
153  };
154 
155  // ===========================================================================
156  // class GenericParametersOptions
157  // ===========================================================================
158 
159  class GenericParametersOptions : protected FXGroupBox {
162 
163  public:
165  GenericParametersOptions(FXHorizontalFrame* frame, GNEGenericParameterDialog* genericParameterDialogParent);
166 
169 
173  long onCmdLoadGenericParameters(FXObject*, FXSelector, void*);
174 
176  long onCmdSaveGenericParameters(FXObject*, FXSelector, void*);
177 
179  long onCmdClearGenericParameters(FXObject*, FXSelector, void*);
180 
182  long onCmdSortGenericParameters(FXObject*, FXSelector, void*);
183 
185  long onCmdHelpGenericParameter(FXObject*, FXSelector, void*);
186 
188 
189  protected:
192 
193  private:
194 
198  public:
200  GNEGenericParameterHandler(GNEGenericParameterDialog* genericParameterDialogParent, const std::string& file);
201 
204 
207 
213  void myStartElement(int element, const SUMOSAXAttributes& attrs);
214 
215  private:
218 
221  };
222 
225 
227  FXButton* mySortButton;
228 
230  FXButton* myClearButton;
231 
233  FXButton* myLoadButton;
234 
236  FXButton* mySaveButton;
237 
239  FXButton* myHelpButton;
240  };
241 
243  GNEGenericParameterDialog(GNEViewNet* viewNet, std::vector<std::pair<std::string, std::string> >* genericParameters);
244 
247 
251  long onCmdAccept(FXObject*, FXSelector, void*);
252 
254  long onCmdCancel(FXObject*, FXSelector, void*);
255 
257  long onCmdReset(FXObject*, FXSelector, void*);
259 
260 protected:
263 
266 
268  FXButton* myAcceptButton;
269 
271  FXButton* myCancelButton;
272 
274  FXButton* myResetButton;
275 
276 private:
277 
280 
283 
284  // @brief copy of current edited Generic Parameters (used for reset)
285  const std::vector<std::pair<std::string, std::string> > myCopyOfGenericParameters;
286 
289 
292 };
293 
294 #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.