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.dev/sumo
3 // Copyright (C) 2001-2024 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 
25 
26 
27 // ===========================================================================
28 // class declaration
29 // ===========================================================================
30 class GNEDataInterval;
31 class GNEDataSet;
32 
33 
34 // ===========================================================================
35 // class definitions
36 // ===========================================================================
41 class GNEGenericDataFrame : public GNEFrame {
42 
43 public:
44  // ===========================================================================
45  // class DataSetSelector
46  // ===========================================================================
47 
51 
52  public:
54  DataSetSelector(GNEGenericDataFrame* genericDataFrameParent);
55 
58 
60  void refreshDataSetSelector(const GNEDataSet* currentDataSet);
61 
63  GNEDataSet* getDataSet() const;
64 
68  long onCmdCreateDataSet(FXObject*, FXSelector, void*);
69 
71  long onCmdSetNewDataSetID(FXObject*, FXSelector, void*);
72 
74  long onCmdSelectDataSet(FXObject* obj, FXSelector, void*);
75 
77  long onCmdSelectCheckButton(FXObject* obj, FXSelector, void*);
78 
80 
81  protected:
82  FOX_CONSTRUCTOR(DataSetSelector)
83 
84  private:
87 
89  FXCheckButton* myNewDataSetCheckButton;
90 
92  FXHorizontalFrame* myHorizontalFrameNewID;
93 
96 
99 
102  };
103 
104  // ===========================================================================
105  // class IntervalSelector
106  // ===========================================================================
107 
111 
112  public:
114  IntervalSelector(GNEGenericDataFrame* genericDataFrameParent);
115 
118 
121 
124 
128  long onCmdCreateInterval(FXObject*, FXSelector, void*);
129 
131  long onCmdSelectInterval(FXObject*, FXSelector, void*);
132 
134  long onCmdSetIntervalAttribute(FXObject*, FXSelector, void*);
135 
137  long onCmdSelectCheckButton(FXObject* obj, FXSelector, void*);
138 
140 
141  protected:
142  FOX_CONSTRUCTOR(IntervalSelector)
143 
144  private:
146  FXTreeItem* addIntervalItem(GNEDataInterval* dataInterval, FXTreeItem* itemParent = nullptr);
147 
150 
152  FXCheckButton* myNewIntervalCheckButton;
153 
155  FXHorizontalFrame* myHorizontalFrameBegin;
156 
158  FXTextField* myBeginTextField;
159 
161  FXHorizontalFrame* myHorizontalFrameEnd;
162 
164  FXTextField* myEndTextField;
165 
168 
170  FXTreeList* myIntervalsTreelist;
171 
173  std::map<FXTreeItem*, GNEDataInterval*> myTreeItemIntervalMap;
174  };
175 
176  // ===========================================================================
177  // class AttributeSelector
178  // ===========================================================================
179 
183 
184  public:
186  AttributeSelector(GNEGenericDataFrame* genericDataFrameParent, SumoXMLTag tag);
187 
190 
193 
195  std::string getFilteredAttribute() const;
196 
198  const RGBColor& getScaledColor(const double min, const double max, const double value) const;
199 
202 
204  long onCmdSelectAttribute(FXObject*, FXSelector, void*);
205 
207 
208  protected:
209  FOX_CONSTRUCTOR(AttributeSelector)
210 
211  private:
214 
217 
219  FXLabel* myMinMaxLabel;
220 
223  };
224 
226  const DataSetSelector* getDataSetSelector() const;
227 
229  const IntervalSelector* getIntervalSelector() const;
230 
233 
236 
238  SumoXMLTag getTag() const;
239 
241  void show();
242 
244  void hide();
245 
248 
249 protected:
256  GNEGenericDataFrame(GNEViewParent* viewParent, GNEViewNet* viewNet, SumoXMLTag tag, const bool pathCreator);
257 
260 
262  void intervalSelected();
263 
265  virtual bool createPath(const bool useLastRoute);
266 
269 
272 
275 
278 
281 
284 
285 private:
288 
291 };
SumoXMLTag
Numbers representing SUMO-XML - element names.
An Element which don't belong to GNENet but has influence 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
SumoXMLTag myGenericDataTag
generic data tag
MFXComboBoxIcon * myAttributesComboBox
combo box for attributes
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
MFXComboBoxIcon * 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.
void updateFrameAfterUndoRedo()
function called after undo/redo in the current frame
GNEFrameAttributeModules::GenericDataAttributes * myGenericDataAttributes
parameters editor creator
virtual bool createPath(const bool useLastRoute)
create path
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
GNEGenericDataFrame(GNEViewParent *viewParent, GNEViewNet *viewNet, SumoXMLTag tag, const bool pathCreator)
Constructor (protected due GNEGenericDataFrame is abtract)
GNEPathCreator * getPathCreator() const
get GNEPathCreator 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
SumoXMLTag myGenericDataTag
generic data tag
GNEPathCreator * myPathCreator
edge path creator (used for Walks, rides and trips)
const IntervalSelector * getIntervalSelector() const
get interval selector modul
A single child window which contains a view of the simulation area.
Definition: GNEViewParent.h:88
ComboBox with icon.
MFXGroupBoxModule (based on FXGroupBox)