Eclipse SUMO - Simulation of Urban MObility
GNEElementTree.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 // Frame for show hierarchical elements
19 /****************************************************************************/
20 #pragma once
21 #include <config.h>
22 
25 
26 // ===========================================================================
27 // class declaration
28 // ===========================================================================
29 
30 class GNEFrame;
31 class GNEDataSet;
32 class GNEDataInterval;
33 
34 // ===========================================================================
35 // class definitions
36 // ===========================================================================
37 
40  FXDECLARE(GNEElementTree)
41 
42 public:
44  GNEElementTree(GNEFrame* frameParent);
45 
48 
51 
54 
57 
60 
64  long onCmdShowChildMenu(FXObject*, FXSelector, void* data);
65 
67  long onCmdCenterItem(FXObject*, FXSelector, void*);
68 
70  long onCmdInspectItem(FXObject*, FXSelector, void*);
71 
73  long onCmdDeleteItem(FXObject*, FXSelector, void*);
74 
76  long onCmdMoveItemUp(FXObject*, FXSelector, void*);
77 
79  long onCmdMoveItemDown(FXObject*, FXSelector, void*);
81 
82 protected:
83  FOX_CONSTRUCTOR(GNEElementTree)
84 
85  // @brief create pop-up menu in the positions X-Y for the clicked attribute carrier
86  void createPopUpMenu(int X, int Y, GNEAttributeCarrier* clickedAC);
87 
89  FXTreeItem* showAttributeCarrierParents();
90 
92  void showHierarchicalElementChildren(GNEHierarchicalElement* HE, FXTreeItem* itemParent);
93 
95  FXTreeItem* addListItem(GNEAttributeCarrier* AC, FXTreeItem* itemParent = nullptr, std::string prefix = "", std::string sufix = "");
96 
98  FXTreeItem* addListItem(FXTreeItem* itemParent, const std::string& text, FXIcon* icon, bool expanded);
99 
100 private:
103 
106 
109 
112 
115 
118 
121 
124 
127 
130 
133 
136 
139 
142 
144  std::map<FXTreeItem*, GNEAttributeCarrier*> myTreeItemToACMap;
145 
147  std::set<FXTreeItem*> myTreeItemsConnections;
148 };
An Element which don't belong to GNENet but has influence in the simulation.
Definition: GNEAdditional.h:49
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
Definition: GNECrossing.h:44
An Element which don't belong to GNENet but has influence in the simulation.
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:53
std::set< FXTreeItem * > myTreeItemsConnections
set used to save tree items without AC assigned, the Incoming/Outcoming connections
GNEAttributeCarrier * myClickedAC
pointer to current clicked Attribute Carrier
FXTreeItem * showAttributeCarrierParents()
show child of current attributeCarrier
void createPopUpMenu(int X, int Y, GNEAttributeCarrier *clickedAC)
GNEDataInterval * myClickedDataInterval
data interval element (casted from myClickedAC)
GNEConnection * myClickedConnection
junction (casted from myClickedAC)
long onCmdCenterItem(FXObject *, FXSelector, void *)
called when user click over option "center" of child Menu
std::map< FXTreeItem *, GNEAttributeCarrier * > myTreeItemToACMap
map used to save the FXTreeItems items with their vinculated AC
GNEDataSet * myClickedDataSet
data set element (casted from myClickedAC)
long onCmdInspectItem(FXObject *, FXSelector, void *)
called when user click over option "inspect" of child menu
GNECrossing * myClickedCrossing
crossing (casted from myClickedAC)
void showHierarchicalElementChildren(GNEHierarchicalElement *HE, FXTreeItem *itemParent)
show children of given hierarchical element
GNEFrame * myFrameParent
frame Parent
GNEHierarchicalElement * myHE
hierarchical element
GNEGenericData * myClickedGenericData
generic data element (casted from myClickedAC)
long onCmdShowChildMenu(FXObject *, FXSelector, void *data)
long onCmdMoveItemUp(FXObject *, FXSelector, void *)
called when user click over option "Move up" of child menu
void hideHierarchicalElementTree()
hide GNEElementTree
GNEAdditional * myClickedAdditional
additional (casted from myClickedAC)
MFXTreeListDynamic * myTreeListDynamic
tree list dynamic to show the children of the element to erase
GNEDemandElement * myClickedDemandElement
demand element (casted from myClickedAC)
GNEJunction * myClickedJunction
junction (casted from myClickedAC)
FXTreeItem * addListItem(GNEAttributeCarrier *AC, FXTreeItem *itemParent=nullptr, std::string prefix="", std::string sufix="")
add item into list
long onCmdMoveItemDown(FXObject *, FXSelector, void *)
called when user click over option "Move down" of child menu
void refreshHierarchicalElementTree()
refresh GNEElementTree
GNEEdge * myClickedEdge
edge (casted from myClickedAC)
GNELane * myClickedLane
lane (casted from myClickedAC)
void removeCurrentEditedAttributeCarrier(const GNEAttributeCarrier *HE)
if given AttributeCarrier is the same of myHE, set it as nullptr
long onCmdDeleteItem(FXObject *, FXSelector, void *)
called when user click over option "delete" of child menu
~GNEElementTree()
destructor
void showHierarchicalElementTree(GNEAttributeCarrier *AC)
show GNEElementTree
GNEElementTree(GNEFrame *frameParent)
FOX-declaration.
An Element which don't belong to GNENet but has influence in the simulation.
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Definition: GNELane.h:46
MFXGroupBoxModule (based on FXGroupBox)
MFXTreeListDynamic.