SUMO - Simulation of Urban MObility
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
GNEAdditionalFrame.h
Go to the documentation of this file.
1 /****************************************************************************/
8 /****************************************************************************/
9 // SUMO, Simulation of Urban MObility; see http://sumo-sim.org/
10 // Copyright (C) 2001-2013 DLR (http://www.dlr.de/) and contributors
11 /****************************************************************************/
12 //
13 // This file is part of SUMO.
14 // SUMO is free software; you can redistribute it and/or modify
15 // it under the terms of the GNU General Public License as published by
16 // the Free Software Foundation; either version 3 of the License, or
17 // (at your option) any later version.
18 //
19 /****************************************************************************/
20 #ifndef GNEAdditionalFrame_h
21 #define GNEAdditionalFrame_h
22 
23 
24 // ===========================================================================
25 // included modules
26 // ===========================================================================
27 #ifdef _MSC_VER
28 #include <windows_config.h>
29 #else
30 #include <config.h>
31 #endif
32 
33 #include "GNEFrame.h"
34 
35 // ===========================================================================
36 // class declarations
37 // ===========================================================================
39 class GNENetElement;
40 class GNEAdditional;
41 class GNEAdditionalSet;
42 
43 // ===========================================================================
44 // class definitions
45 // ===========================================================================
50 class GNEAdditionalFrame : public GNEFrame {
52  FXDECLARE(GNEAdditionalFrame)
53 
54 public:
55 
56  // ===========================================================================
57  // class additionalParameter
58  // ===========================================================================
59 
60  class additionalParameter : public FXMatrix {
61 
62  public:
64  additionalParameter(FXComposite* parent, FXObject* tgt);
65 
68 
70  void showParameter(SumoXMLAttr attr, std::string value);
71 
73  void showParameter(SumoXMLAttr attr, int value);
74 
76  void showParameter(SumoXMLAttr attr, SUMOReal value);
77 
79  void showParameter(SumoXMLAttr attr, bool value);
80 
82  void hideParameter();
83 
85  SumoXMLAttr getAttr() const;
86 
88  std::string getValue() const ;
89 
90  private:
93 
95  FXLabel* myLabel;
96 
98  FXTextField* myTextField;
99 
101  FXMenuCheck* myMenuCheck;
102  };
103 
104  // ===========================================================================
105  // class additionalParameterList
106  // ===========================================================================
107 
108  class additionalParameterList : public FXMatrix {
111 
112  public:
114  additionalParameterList(FXComposite* parent, FXObject* tgt);
115 
118 
120  void showListParameter(SumoXMLAttr attr, std::vector<int> value);
121 
123  void showListParameter(SumoXMLAttr attr, std::vector<SUMOReal> value);
124 
126  void showListParameter(SumoXMLAttr attr, std::vector<bool> value);
127 
129  void showListParameter(SumoXMLAttr attr, std::vector<std::string> value);
130 
132  void hideParameter();
133 
135  SumoXMLAttr getAttr() const;
136 
138  std::string getListValues();
139 
143  long onCmdAddRow(FXObject*, FXSelector, void*);
144 
146  long onCmdRemoveRow(FXObject*, FXSelector, void*);
148 
149  protected:
152 
153  private:
156 
158  std::vector<FXLabel*> myLabels;
159 
161  std::vector<FXTextField*> myTextFields;
162 
164  FXButton* add;
165 
167  FXButton* remove;
168 
171 
174  };
175 
176  // ===========================================================================
177  // class additionalParameters
178  // ===========================================================================
179 
180  class additionalParameters : public FXGroupBox {
183 
184  public:
186  additionalParameters(FXComposite* parent, FXObject* tgt);
187 
190 
192  void clearAttributes();
193 
195  void addAttribute(SumoXMLTag additional, SumoXMLAttr attribute);
196 
199 
202 
204  std::map<SumoXMLAttr, std::string> getAttributes() const;
205 
207  int getNumberOfAddedAttributes() const;
208 
212  long onCmdHelp(FXObject*, FXSelector, void*);
214 
215  protected:
218 
219  private:
222 
224  std::vector<additionalParameter*> myVectorOfAdditionalParameter;
225 
228 
230  std::vector<additionalParameterList*> myVectorOfAdditionalParameterList;
231 
234 
237 
240 
242  FXButton* helpAdditional;
243  };
244 
245  // ===========================================================================
246  // class editorParameters
247  // ===========================================================================
248 
249  class editorParameters : public FXGroupBox {
252 
253  public:
259  };
260 
262  editorParameters(FXComposite* parent, FXObject* tgt);
263 
266 
268  void showLengthField();
269 
271  void hideLengthField();
272 
274  void showReferencePoint();
275 
277  void hideReferencePoint();
278 
281 
284 
286  bool isBlockEnabled();
287 
289  bool isForcePositionEnabled();
290 
294  long onCmdSelectReferencePoint(FXObject*, FXSelector, void*);
295 
296  /*** @todo write callback for LENGTH **/
297 
299  long onCmdHelp(FXObject*, FXSelector, void*);
301 
302  protected:
305 
306  private:
309 
312 
315 
317  FXLabel* myLengthLabel;
318 
320  FXTextField* myLengthTextField;
321 
323  FXMenuCheck* myCheckForcePosition;
324 
326  FXMenuCheck* myCheckBlock;
327  };
328 
329  // ===========================================================================
330  // class additionalSet
331  // ===========================================================================
332 
333  class additionalSet : public FXGroupBox {
336 
337  public:
339  additionalSet(FXComposite* parent, FXObject* tgt, GNEViewNet* viewNet);
340 
342  ~additionalSet();
343 
345  std::string getIdSelected() const;
346 
348  SumoXMLTag getCurrentlyTag() const;
349 
351  void showList(SumoXMLTag type);
352 
354  void hideList();
355 
359  long onCmdSelectAdditionalSet(FXObject*, FXSelector, void*);
360 
362  long onCmdHelp(FXObject*, FXSelector, void*);
364 
365  protected:
368 
369  private:
372 
374  FXList* myList;
375 
377  FXLabel* mySetLabel;
378 
380  FXButton* helpAdditionalSet;
381 
384  };
385 
386  // ===========================================================================
387  // class edgesSelector
388  // ===========================================================================
389 
390  class edgesSelector : public FXGroupBox {
393 
394  public:
396  edgesSelector(FXComposite* parent, GNEViewNet* viewNet);
397 
399  ~edgesSelector();
400 
402  std::string getIdsSelected() const;
403 
405  void showList(std::string search = "");
406 
408  void hideList();
409 
411  void updateUseSelectedEdges();
412 
414  bool isUseSelectedEdgesEnable() const;
415 
419  long onCmdUseSelectedEdges(FXObject*, FXSelector, void*);
420 
422  long onCmdTypeInSearchBox(FXObject*, FXSelector, void*);
423 
425  long onCmdSelectEdge(FXObject*, FXSelector, void*);
426 
428  long onCmdClearSelection(FXObject*, FXSelector, void*);
429 
431  long onCmdInvertSelection(FXObject*, FXSelector, void*);
432 
434  long onCmdHelp(FXObject*, FXSelector, void*);
436 
437  protected:
440 
441  private:
443  FXMenuCheck* myUseSelectedEdges;
444 
446  FXList* myList;
447 
449  FXTextField* myEdgesSearch;
450 
452  FXButton* helpEdges;
453 
456 
459 
462  };
463 
464  // ===========================================================================
465  // class lanesSelector
466  // ===========================================================================
467 
468  class lanesSelector : public FXGroupBox {
471 
472  public:
474  lanesSelector(FXComposite* parent, GNEViewNet* viewNet);
475 
477  ~lanesSelector();
478 
480  std::string getIdsSelected() const;
481 
483  void showList(std::string search = "");
484 
486  void hideList();
487 
488  // @brief Update use selectedLanes
489  void updateUseSelectedLanes();
490 
492  bool isUseSelectedLanesEnable() const;
493 
497  long onCmdUseSelectedLanes(FXObject*, FXSelector, void*);
498 
500  long onCmdTypeInSearchBox(FXObject*, FXSelector, void*);
501 
503  long onCmdSelectLane(FXObject*, FXSelector, void*);
504 
506  long onCmdClearSelection(FXObject*, FXSelector, void*);
507 
509  long onCmdInvertSelection(FXObject*, FXSelector, void*);
510 
512  long onCmdHelp(FXObject*, FXSelector, void*);
514 
515  protected:
518 
519  private:
521  FXMenuCheck* myUseSelectedLanes;
522 
524  FXList* myList;
525 
527  FXTextField* myLanesSearch;
528 
530  FXButton* helpLanes;
531 
534 
537 
540  };
541 
546  GNEAdditionalFrame(FXComposite* parent, GNEViewNet* viewNet);
547 
550 
556  bool addAdditional(GNENetElement* netElement, GUISUMOAbstractView* parent);
557 
561  void removeAdditional(GNEAdditional* additional);
562 
566  long onCmdSelectAdditional(FXObject*, FXSelector, void*);
568 
570  void show();
571 
573  void hide();
574 
576  static std::string getIdsSelected(const FXList* list);
577 
578 protected:
581 
582 private:
584  void setParametersOfAdditional(SumoXMLTag actualAdditionalType);
585 
587  std::string generateID(GNENetElement* netElement) const;
588 
590  SUMOReal setStartPosition(SUMOReal positionOfTheMouseOverLane, SUMOReal lenghtOfAdditional);
591 
593  SUMOReal setEndPosition(SUMOReal laneLenght, SUMOReal positionOfTheMouseOverLane, SUMOReal lenghtOfAdditional);
594 
597 
599  FXComboBox* myAdditionalMatchBox;
600 
603 
606 
609 
612 
615 
618 };
619 
620 
621 #endif
622 
623 /****************************************************************************/
long onCmdSelectReferencePoint(FXObject *, FXSelector, void *)
std::string getValue() const
return value
long onCmdClearSelection(FXObject *, FXSelector, void *)
called when clear selection button is pressed
SumoXMLTag
Numbers representing SUMO-XML - element names.
std::vector< additionalParameterList * > myVectorOfAdditionalParameterList
vector with the additional parameters of type list
FXMenuCheck * myCheckForcePosition
checkBox for the option "force position"
int maxNumberOfListParameters
max number of parameters (Defined in constructor)
FXLabel * myLabel
lael with the name of the parameter
SumoXMLTag getCurrentlyTag() const
get current tag
SumoXMLTag myAdditional
current additional
long onCmdHelp(FXObject *, FXSelector, void *)
Called when help button is pressed.
int myIndexParameterList
index for myIndexParameterList
void addAttribute(SumoXMLTag additional, SumoXMLAttr attribute)
add attribute
long onCmdInvertSelection(FXObject *, FXSelector, void *)
called when invert selection button is pressed
bool isBlockEnabled()
check if block is enabled
int getNumberOfAddedAttributes() const
get number of added attributes
FXButton * add
Button to increase the number of textFields.
long onCmdHelp(FXObject *, FXSelector, void *)
Called when help button is pressed.
long onCmdHelp(FXObject *, FXSelector, void *)
Called when help button is pressed.
GNEViewNet * myViewNet
viewNet associated to GNEAdditionalFrame
long onCmdSelectEdge(FXObject *, FXSelector, void *)
called when user select a edge of the list
FXButton * clearEdgesSelection
button for clear selection
FXMenuCheck * myUseSelectedEdges
CheckBox for selected edges.
FXTextField * myLengthTextField
textField for lenght
FXButton * helpAdditionalSet
button for help
additionalReferencePoint getActualReferencePoint()
get actual reference point
FXButton * invertEdgesSelection
button for invert selection
GNEAdditionalFrame::lanesSelector * myLanesSelector
list of lanesSelector
long onCmdSelectAdditional(FXObject *, FXSelector, void *)
bool addAdditional(GNENetElement *netElement, GUISUMOAbstractView *parent)
add additional element
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
An Element wich group additionalSet elements.
bool isUseSelectedLanesEnable() const
get status of checkBox UseSelectedLanes
int myIndexParameter
Index for myVectorOfAdditionalParameter.
std::string getIdsSelected() const
get list of selecte id's in string format
GNEAdditionalFrame::additionalParameters * myAdditionalParameters
additional default parameters
void setParametersOfAdditional(SumoXMLTag actualAdditionalType)
set parameters depending of the new additionalType
void showListParameter(SumoXMLAttr attr, std::vector< int > value)
show name and value of parameters of type int
FXTextField * myLanesSearch
text field for search lane IDs
long onCmdInvertSelection(FXObject *, FXSelector, void *)
called when invert selection button is pressed
std::vector< FXLabel * > myLabels
vector with with the name of every parameter
std::string getIdSelected() const
get if currently additional Set
void hide()
hidde additional frame
void showReferencePoint()
show refence point comboBox
GNEViewNet * myViewNet
viewNet associated to GNEAdditionalFrame
FXList * myList
List of lanesSelector.
FXTextField * myTextField
textField to modify the value of parameter
GNEAdditionalFrame::editorParameters * myEditorParameters
editor parameter
GNEViewNet * myViewNet
viewNet associated to GNEAdditionalFrame
SUMOReal setEndPosition(SUMOReal laneLenght, SUMOReal positionOfTheMouseOverLane, SUMOReal lenghtOfAdditional)
obtain the End position values of StoppingPlaces and E2 detector over the lane
long onCmdRemoveRow(FXObject *, FXSelector, void *)
add a new row int the list
SUMOReal getLenght()
get value of lenght
std::map< SumoXMLAttr, std::string > getAttributes() const
get attributes
FXList * myList
List of edgesSelector.
SumoXMLTag myActualAdditionalType
actual additional type selected in the match Box
int numberOfVisibleTextfields
number of visible text fields
void removeAdditional(GNEAdditional *additional)
remove an additional element previously added
long onCmdHelp(FXObject *, FXSelector, void *)
Called when help button is pressed.
SumoXMLAttr getAttr() const
return attribute of list
void showList(std::string search="")
Show list of edgesSelector.
~GNEAdditionalFrame()
Destructor.
FXButton * helpReferencePoint
Button for help about the reference point.
FXComboBox * myAdditionalMatchBox
combo box with the list of additional elements
long onCmdUseSelectedLanes(FXObject *, FXSelector, void *)
long onCmdAddRow(FXObject *, FXSelector, void *)
GNEAdditionalFrame::additionalSet * myAdditionalSet
list of additional Set
SUMOReal setStartPosition(SUMOReal positionOfTheMouseOverLane, SUMOReal lenghtOfAdditional)
obtain the Start position values of StoppingPlaces and E2 detector over the lane
FXLabel * myLengthLabel
Label for lenght.
long onCmdHelp(FXObject *, FXSelector, void *)
FXMenuCheck * myCheckBlock
checkBox for blocking movement
FXGroupBox * myGroupBoxForMyAdditionalMatchBox
groupBox for Match Box of additionals
std::string getListValues()
return the value of list
bool isForcePositionEnabled()
check if force position is enabled
std::vector< FXTextField * > myTextFields
vector textField to modify the value of parameter
FXTextField * myEdgesSearch
text field for search edge IDs
FXButton * helpEdges
button for help
std::string generateID(GNENetElement *netElement) const
generate a ID for an additiona element
FXButton * clearLanesSelection
button for clear selection
int myMaxNumberOfValuesInParameterList
Number max of values in a parameter of type list.
long onCmdUseSelectedEdges(FXObject *, FXSelector, void *)
GNEAdditionalFrame()
FOX needs this.
void show()
show additional frame
FXList * myList
List of additional sets.
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEAdditional.h:63
void hideReferencePoint()
hide refence point comboBox
long onCmdTypeInSearchBox(FXObject *, FXSelector, void *)
called when user type in search box
additionalParameter(FXComposite *parent, FXObject *tgt)
constructor
std::vector< additionalParameter * > myVectorOfAdditionalParameter
vector with the additional parameters
SumoXMLAttr getAttr() const
return Attr
long onCmdClearSelection(FXObject *, FXSelector, void *)
called when clear selection button is pressed
void updateUseSelectedEdges()
Update use selectedEdges.
std::string getIdsSelected() const
get list of selecte id's in string format
FXMenuCheck * myMenuCheck
menuCheck to enable/disable the value of parameter
#define SUMOReal
Definition: config.h:214
additionalReferencePoint myActualAdditionalReferencePoint
actual additional reference point selected in the match Box
long onCmdSelectLane(FXObject *, FXSelector, void *)
called when user select a lane of the list
void showList(SumoXMLTag type)
Show list of additionalSet.
void showList(std::string search="")
Show list of lanesSelector.
FXMenuCheck * myUseSelectedLanes
CheckBox for selected lanes.
static std::string getIdsSelected(const FXList *list)
get list of selecte id's in string format
bool isUseSelectedEdgesEnable() const
get status of checkBox UseSelectedEdges
int maxNumberOfParameters
max number of parameters (Defined in constructor)
void showParameter(SumoXMLAttr attr, std::string value)
show name and value of attribute of type string
FXLabel * mySetLabel
Label with the name of Set.
long onCmdSelectAdditionalSet(FXObject *, FXSelector, void *)
long onCmdTypeInSearchBox(FXObject *, FXSelector, void *)
called when user type in search box
FXButton * invertLanesSelection
button for invert selection
GNEAdditionalFrame::edgesSelector * myEdgesSelector
list of edgesSelector
FXButton * helpLanes
button for help
FXComboBox * myReferencePointMatchBox
match box with the list of reference points