All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
LayerEvents.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file LayerEvents.h
22 
23  \brief Contains a list of the layer events.
24 */
25 
26 #ifndef __TERRALIB_QT_AF_EVENTS_INTERNAL_LAYEREVENTS_H
27 #define __TERRALIB_QT_AF_EVENTS_INTERNAL_LAYEREVENTS_H
28 
29 #include "../../../maptools/Enums.h"
30 #include "../../../maptools/AbstractLayer.h"
31 #include "../../widgets/layer/explorer/AbstractTreeItem.h"
32 #include "Event.h"
33 #include "Enums.h"
34 
35 // Qt
36 #include <QAction>
37 #include <QColor>
38 
39 // STL
40 #include <memory>
41 
42 namespace te
43 {
44 // Forward declaration
45  namespace da
46  {
47  class DataSet;
48  }
49 
50  namespace gm
51  {
52  class Envelope;
53  }
54 
55  namespace qt
56  {
57  namespace af
58  {
59  namespace evt
60  {
61  /*!
62  \struct LayerAdded
63 
64  \brief This event signals that a new layer was created.
65  */
66  struct LayerAdded : public Event
67  {
68  /*!
69  \brief Constructor.
70 
71  \param layer The layer to be added.
72  \param parentLayer The parent layer where the new layer will be added.
73  */
75  : Event(LAYER_ADDED),
76  m_layer(layer),
77  m_parentLayer(parentLayer)
78  {
79  }
80 
81  te::map::AbstractLayerPtr m_layer; //!< Tha layer to be added.
82  te::map::AbstractLayerPtr m_parentLayer; //!< The parent layer where the layer will be added.
83  };
84 
85  /*!
86  \struct ItemOfLayerRemoved
87 
88  \brief This event signals that a item belonging to a layer will be removed from the layer explorer.
89  */
90  struct ItemOfLayerRemoved : public Event
91  {
92  /*!
93  \brief Constructor.
94 
95  \param item Item belonging to a layer to be removed from the layer explorer.
96  */
99  m_item(item)
100  {
101  }
102 
103  te::qt::widgets::AbstractTreeItem* m_item; //!< Item of the layer to be removed.
104  };
105 
106  /*!
107  \struct LayerRemoved
108 
109  \brief This event signals that a layer is to be removed from the layer explorer.
110  */
111  struct LayerRemoved : public Event
112  {
113  /*!
114  \brief Constructor.
115 
116  \param layer Layer to be removed.
117  */
119  : Event(LAYER_REMOVED),
120  m_layer(layer)
121  {
122  }
123 
124  te::map::AbstractLayerPtr m_layer; //!< Layer removed.
125  };
126 
127  /*!
128  \struct LayerVisibilityChanged
129 
130  \brief This event signals that the layer visibility has changed.
131  */
133  {
134  /*!
135  \brief Constructor.
136 
137  \param layer The layer whose visibility has changed.
138 
139  \param visibility The new visibility state: VISIBLE, NOT_VISIBLE, PARTIALLY_VISIBLE.
140  */
143  m_layer(layer),
144  m_visibility(visibility)
145  {
146  }
147 
148  te::map::AbstractLayerPtr m_layer; //!< Layer whose visibility has changed.
149  te::map::Visibility m_visibility; //!< Layer visibility.
150  };
151 
152  /*!
153  \struct LayerSelected
154 
155  \brief This event indicates that the layer has been selected.
156  */
157  struct LayerSelected : public Event
158  {
159  /*!
160  \brief Construtor.
161 
162  \param layer The new selected layer.
163  */
166  m_layer(layer)
167  {
168  }
169 
170  te::map::AbstractLayerPtr m_layer; //!< Pointer to the selected layer.
171  };
172 
173  /*!
174  \struct LayerSelectedObjectsChanged
175 
176  \brief This event indicates that the selected objects of the layer were changed.
177  */
179  {
180  /*!
181  \brief Constructor
182 
183  \param layer The layer whose selected objects were changed.
184  */
187  m_layer(layer),
188  m_envelope(e)
189  {
190  }
191 
192  te::map::AbstractLayerPtr m_layer; //!< Layer whose selected objects were changed.
193  te::gm::Envelope* m_envelope; //!< The box of the last selected object.
194  };
195 
196  /*!
197  \struct HighlightLayerObjects
198 
199  \brief This event indicates that the objects of the given layer must be highlighted.
200  */
201  struct HighlightLayerObjects : public Event
202  {
203  /*!
204  \brief Constructor
205 
206  \param layer The layer whose objects must be highlighted.
207  \param dataset The dataset that represents the objects that must be highlighted.
208  */
211  m_layer(layer),
212  m_dataset(dataset),
213  m_color(color)
214  {
215  assert(m_dataset);
216  }
217 
218  te::map::AbstractLayerPtr m_layer; //!< The layer whose objects must be highlighted.
219  te::da::DataSet* m_dataset; //!< The dataset that represents the objects that must be highlighted.
220  QColor m_color; //!< The color used to highlight.
221  };
222 
223  /*!
224  \struct LayerStyleSelected
225 
226  \brief This event indicates that the layer style was selected on the layer explorer.
227  */
228  struct LayerStyleSelected : public Event
229  {
230  /*!
231  \brief Construtor.
232 
233  \param layer The layer that has the selected style.
234  */
237  m_layer(layer)
238  {
239  }
240 
241  te::map::AbstractLayerPtr m_layer; //!< Layer whose style was selected.
242  };
243 
244  /*!
245  \struct LayerPopUpAddAction
246 
247  \brief This event is used to add a action in a layer tree pop up
248  */
249  struct LayerPopUpAddAction : public Event
250  {
251  /*!
252  \brief Construtor.
253 
254  \param action The action to be added to the context menu.
255  \param itemType The type of the selected item.
256  \param menuSelectionType The selection type of the context menu
257  */
258  LayerPopUpAddAction(QAction* action, std::string itemType, int menuSelectionType)
260  m_action(action),
261  m_itemType(itemType),
262  m_menuSelectionType(menuSelectionType)
263  {
264  }
265 
266  QAction* m_action; //!< The action to be added in pop up menu
267  std::string m_itemType; //!< The type of the selected item
268  int m_menuSelectionType; //!< The selection type of the context menu
269  };
270 
271  /*!
272  \struct LayerPopUpRemoveAction
273 
274  \brief This event is used to remove a action in a layer tree pop up
275  */
277  {
278  /*!
279  \brief Construtor.
280 
281  \param action The action to be removed.
282  */
283  LayerPopUpRemoveAction(QAction* action)
285  m_action(action)
286  {
287  }
288 
289  QAction* m_action; //!< Action to be removed in the pop up menu
290  };
291 
292  /*!
293  \struct GetLayerSelected
294 
295  \brief This event is used to get a single layer selected in layer tree
296  */
297  struct GetLayerSelected : public Event
298  {
299  /*!
300  \brief Construtor.
301 
302  \param layer The layer that has the selected style.
303  */
305  {
306  }
307 
308  te::map::AbstractLayerPtr m_layer; //!< Layer selected.
309  };
310  }
311  }
312  }
313 }
314 
315 #endif //__TERRALIB_QT_AF_EVENTS_INTERNAL_LAYEREVENTS_H
This event signals that a new layer was created.
Definition: LayerEvents.h:66
LayerSelectedObjectsChanged(te::map::AbstractLayerPtr layer, te::gm::Envelope *e=0)
Constructor.
Definition: LayerEvents.h:185
te::map::AbstractLayerPtr m_layer
Layer selected.
Definition: LayerEvents.h:308
This event is used to get a single layer selected in layer tree.
Definition: LayerEvents.h:297
This event is used to add a action in a layer tree pop up.
Definition: LayerEvents.h:249
te::map::AbstractLayerPtr m_layer
Layer whose selected objects were changed.
Definition: LayerEvents.h:192
A base class for application events.
Definition: Event.h:59
This event indicates that the objects of the given layer must be highlighted.
Definition: LayerEvents.h:201
te::map::AbstractLayerPtr m_layer
Pointer to the selected layer.
Definition: LayerEvents.h:170
The class that represents an item in a LayerTreeModel.
QAction * m_action
Action to be removed in the pop up menu.
Definition: LayerEvents.h:289
This event indicates that the selected objects of the layer were changed.
Definition: LayerEvents.h:178
This event indicates that the layer style was selected on the layer explorer.
Definition: LayerEvents.h:228
HighlightLayerObjects(te::map::AbstractLayerPtr layer, te::da::DataSet *dataset, const QColor &color)
Constructor.
Definition: LayerEvents.h:209
te::map::Visibility m_visibility
Layer visibility.
Definition: LayerEvents.h:149
This event indicates that the layer has been selected.
Definition: LayerEvents.h:157
This event is used to remove a action in a layer tree pop up.
Definition: LayerEvents.h:276
te::map::AbstractLayerPtr m_parentLayer
The parent layer where the layer will be added.
Definition: LayerEvents.h:82
QAction * m_action
The action to be added in pop up menu.
Definition: LayerEvents.h:266
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:51
LayerVisibilityChanged(te::map::AbstractLayerPtr layer, te::map::Visibility visibility)
Constructor.
Definition: LayerEvents.h:141
This event signals that the layer visibility has changed.
Definition: LayerEvents.h:132
LayerRemoved(te::map::AbstractLayerPtr layer)
Constructor.
Definition: LayerEvents.h:118
ItemOfLayerRemoved(te::qt::widgets::AbstractTreeItem *item)
Constructor.
Definition: LayerEvents.h:97
int m_menuSelectionType
The selection type of the context menu.
Definition: LayerEvents.h:268
This event signals that a item belonging to a layer will be removed from the layer explorer...
Definition: LayerEvents.h:90
te::map::AbstractLayerPtr m_layer
Layer whose visibility has changed.
Definition: LayerEvents.h:148
LayerSelected(te::map::AbstractLayerPtr layer)
Construtor.
Definition: LayerEvents.h:164
A dataset is the unit of information manipulated by the data access module of TerraLib.
Definition: DataSet.h:112
LayerPopUpRemoveAction(QAction *action)
Construtor.
Definition: LayerEvents.h:283
te::map::AbstractLayerPtr m_layer
Layer removed.
Definition: LayerEvents.h:124
te::da::DataSet * m_dataset
The dataset that represents the objects that must be highlighted.
Definition: LayerEvents.h:219
LayerStyleSelected(te::map::AbstractLayerPtr layer)
Construtor.
Definition: LayerEvents.h:235
This event signals that a layer is to be removed from the layer explorer.
Definition: LayerEvents.h:111
QColor m_color
The color used to highlight.
Definition: LayerEvents.h:220
te::map::AbstractLayerPtr m_layer
Tha layer to be added.
Definition: LayerEvents.h:81
Visibility
Each layer can have three states of visibility.
Definition: Enums.h:138
te::gm::Envelope * m_envelope
The box of the last selected object.
Definition: LayerEvents.h:193
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
te::qt::widgets::AbstractTreeItem * m_item
Item of the layer to be removed.
Definition: LayerEvents.h:103
std::string m_itemType
The type of the selected item.
Definition: LayerEvents.h:267
LayerAdded(const te::map::AbstractLayerPtr &layer, const te::map::AbstractLayerPtr &parentLayer=te::map::AbstractLayerPtr())
Constructor.
Definition: LayerEvents.h:74
LayerPopUpAddAction(QAction *action, std::string itemType, int menuSelectionType)
Construtor.
Definition: LayerEvents.h:258
te::map::AbstractLayerPtr m_layer
The layer whose objects must be highlighted.
Definition: LayerEvents.h:218
te::map::AbstractLayerPtr m_layer
Layer whose style was selected.
Definition: LayerEvents.h:241