Eclipse SUMO - Simulation of Urban MObility
GNEGenericDataFrame.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-2020 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials are made available under the
5 // terms of the Eclipse Public License 2.0 which is available at
6 // https://www.eclipse.org/legal/epl-2.0/
7 // This Source Code may also be made available under the following Secondary
8 // Licenses when the conditions for such availability set forth in the Eclipse
9 // Public License 2.0 are satisfied: GNU General Public License, version 2
10 // or later which is available at
11 // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12 // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13 /****************************************************************************/
18 // The Widget for add genericData elements
19 /****************************************************************************/
20 #pragma once
21 #include <config.h>
22 
24 
25 
26 // ===========================================================================
27 // class declaration
28 // ===========================================================================
29 class GNEDataInterval;
30 class GNEDataSet;
31 
32 
33 // ===========================================================================
34 // class definitions
35 // ===========================================================================
40 class GNEGenericDataFrame : public GNEFrame {
41 
42 public:
43  // ===========================================================================
44  // class DataSetSelector
45  // ===========================================================================
46 
47  class DataSetSelector : protected FXGroupBox {
50 
51  public:
53  DataSetSelector(GNEGenericDataFrame* genericDataFrameParent);
54 
57 
59  void refreshDataSetSelector(const GNEDataSet* currentDataSet);
60 
62  GNEDataSet* getDataSet() const;
63 
67  long onCmdCreateDataSet(FXObject*, FXSelector, void*);
68 
70  long onCmdSetNewDataSetID(FXObject*, FXSelector, void*);
71 
73  long onCmdSelectDataSet(FXObject* obj, FXSelector, void*);
74 
76  long onCmdSelectCheckButton(FXObject* obj, FXSelector, void*);
77 
79 
80  protected:
81  FOX_CONSTRUCTOR(DataSetSelector)
82 
83  private:
86 
88  FXCheckButton* myNewDataSetCheckButton;
89 
91  FXHorizontalFrame* myHorizontalFrameNewID;
92 
95 
98 
100  FXComboBox* myDataSetsComboBox;
101  };
102 
103  // ===========================================================================
104  // class IntervalSelector
105  // ===========================================================================
106 
107  class IntervalSelector : protected FXGroupBox {
110 
111  public:
113  IntervalSelector(GNEGenericDataFrame* genericDataFrameParent);
114 
117 
120 
123 
127  long onCmdCreateInterval(FXObject*, FXSelector, void*);
128 
130  long onCmdSelectInterval(FXObject*, FXSelector, void*);
131 
133  long onCmdSetIntervalAttribute(FXObject*, FXSelector, void*);
134 
136  long onCmdSelectCheckButton(FXObject* obj, FXSelector, void*);
137 
139 
140  protected:
141  FOX_CONSTRUCTOR(IntervalSelector)
142 
143  private:
145  FXTreeItem* addIntervalItem(GNEDataInterval* dataInterval, FXTreeItem* itemParent = nullptr);
146 
149 
151  FXCheckButton* myNewIntervalCheckButton;
152 
154  FXHorizontalFrame* myHorizontalFrameBegin;
155 
157  FXTextField* myBeginTextField;
158 
160  FXHorizontalFrame* myHorizontalFrameEnd;
161 
163  FXTextField* myEndTextField;
164 
167 
169  FXTreeList* myIntervalsTreelist;
170 
172  std::map<FXTreeItem*, GNEDataInterval*> myTreeItemIntervalMap;
173  };
174 
175  // ===========================================================================
176  // class AttributeSelector
177  // ===========================================================================
178 
179  class AttributeSelector : protected FXGroupBox {
182 
183  public:
185  AttributeSelector(GNEGenericDataFrame* genericDataFrameParent, SumoXMLTag tag);
186 
189 
192 
194  std::string getFilteredAttribute() const;
195 
197  const RGBColor& getScaledColor(const double min, const double max, const double value) const;
198 
201 
203  long onCmdSelectAttribute(FXObject*, FXSelector, void*);
204 
206 
207  protected:
208  FOX_CONSTRUCTOR(AttributeSelector)
209 
210  private:
213 
215  FXComboBox* myAttributesComboBox;
216 
218  FXLabel* myMinMaxLabel;
219 
222  };
223 
225  const DataSetSelector* getDataSetSelector() const;
226 
228  const IntervalSelector* getIntervalSelector() const;
229 
232 
235 
237  SumoXMLTag getTag() const;
238 
240  void show();
241 
243  void hide();
244 
245 protected:
252  GNEGenericDataFrame(FXHorizontalFrame* horizontalFrameParent, GNEViewNet* viewNet, SumoXMLTag tag, const bool pathCreator);
253 
256 
258  void intervalSelected();
259 
261  virtual void createPath();
262 
265 
268 
271 
274 
277 
280 
281 private:
284 
287 };
SumoXMLTag
Numbers representing SUMO-XML - element names.
An Element which don't belongs to GNENet but has influency in the simulation.
AttributeSelector(GNEGenericDataFrame *genericDataFrameParent, SumoXMLTag tag)
FOX-declaration.
long onCmdSelectAttribute(FXObject *, FXSelector, void *)
Called when the user select a attribute in the combo boz.
const RGBColor & getScaledColor(const double min, const double max, const double value) const
get color for the given value
FXLabel * myMinMaxLabel
label for min/max attribute
void refreshAttributeSelector()
refresh interval selector
GNEGenericDataFrame * myGenericDataFrameParent
pointer to genericData frame Parent
std::string getFilteredAttribute() const
get filtered attribute
FXComboBox * myAttributesComboBox
combo box for attributes
SumoXMLTag myGenericDataTag
generic data tag
GNEDataSet * getDataSet() const
get current select data set ID
long onCmdSelectDataSet(FXObject *obj, FXSelector, void *)
Called when the user select an existent data set.
long onCmdCreateDataSet(FXObject *, FXSelector, void *)
FXButton * myCreateDataSetButton
create dataSet button
void refreshDataSetSelector(const GNEDataSet *currentDataSet)
refresh interval selector
FXHorizontalFrame * myHorizontalFrameNewID
horizontal frame new id
FXComboBox * myDataSetsComboBox
comboBox with intervals
DataSetSelector(GNEGenericDataFrame *genericDataFrameParent)
FOX-declaration.
long onCmdSetNewDataSetID(FXObject *, FXSelector, void *)
Called when the user set a new data set ID.
long onCmdSelectCheckButton(FXObject *obj, FXSelector, void *)
Called when the user select check button.
FXTextField * myNewDataSetIDTextField
interval new id
GNEGenericDataFrame * myGenericDataFrameParent
pointer to genericData frame Parent
FXCheckButton * myNewDataSetCheckButton
check button to create a new dataSet
FXTreeList * myIntervalsTreelist
tree list to show the interval list
FXTreeItem * addIntervalItem(GNEDataInterval *dataInterval, FXTreeItem *itemParent=nullptr)
add interval item into list
FXHorizontalFrame * myHorizontalFrameEnd
interval end horizontal frame
GNEDataInterval * getDataInterval() const
get current select data set ID
long onCmdCreateInterval(FXObject *, FXSelector, void *)
std::map< FXTreeItem *, GNEDataInterval * > myTreeItemIntervalMap
map used to save the Tree items with their GNEDataInterval
GNEGenericDataFrame * myGenericDataFrameParent
pointer to genericData frame Parent
FXCheckButton * myNewIntervalCheckButton
check button to create a new interval
FXButton * myCreateIntervalButton
create interval button
IntervalSelector(GNEGenericDataFrame *genericDataFrameParent)
FOX-declaration.
FXTextField * myEndTextField
interval end
FXHorizontalFrame * myHorizontalFrameBegin
interval begin horizontal frame
long onCmdSetIntervalAttribute(FXObject *, FXSelector, void *)
Called when the user changes begin or end.
long onCmdSelectInterval(FXObject *, FXSelector, void *)
Called when the user select an interval in the list.
void refreshIntervalSelector()
refresh interval selector
long onCmdSelectCheckButton(FXObject *obj, FXSelector, void *)
Called when the user select check button.
FXTextField * myBeginTextField
interval begin text field
GNEGenericDataFrame(const GNEGenericDataFrame &)=delete
Invalidated copy constructor.
GNEGenericDataFrame & operator=(const GNEGenericDataFrame &)=delete
Invalidated assignment operator.
void intervalSelected()
interval selected
IntervalSelector * myIntervalSelector
interval selector modul
DataSetSelector * myDataSetSelector
dataSet selector modul
const AttributeSelector * getAttributeSelector() const
getattribute selector modul
virtual void createPath()
create path
GNEFrameModuls::PathCreator * myPathCreator
edge path creator (used for Walks, rides and trips)
GNEFrameModuls::PathCreator * getPathCreator() const
get PathCreator modul
AttributeSelector * myAttributeSelector
attribute selector modul
const DataSetSelector * getDataSetSelector() const
get dataSet selector modul
SumoXMLTag getTag() const
@bried get element type of this data frame
GNEFrameAttributesModuls::ParametersEditorCreator * myParametersEditorCreator
parameters editor creator
SumoXMLTag myGenericDataTag
generic data tag
const IntervalSelector * getIntervalSelector() const
get interval selector modul
GNEGenericDataFrame(FXHorizontalFrame *horizontalFrameParent, GNEViewNet *viewNet, SumoXMLTag tag, const bool pathCreator)
Constructor (protected due GNEGenericDataFrame is abtract)