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  // */
97  // ItemOfLayerRemoved(te::qt::widgets::AbstractTreeItem* item)
98  // : Event(ITEM_OF_LAYER_REMOVED),
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  */
118  LayerRemoved(const std::list<te::map::AbstractLayerPtr>& layers)
119  : Event(LAYER_REMOVED),
120  m_layers(layers)
121  {
122  }
123 
124  std::list<te::map::AbstractLayerPtr> m_layers; //!< 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  {
144  }
145  };
146 
147  /*!
148  \struct LayerSelected
149 
150  \brief This event indicates that the layer has been selected.
151  */
152  struct LayerSelected : public Event
153  {
154  /*!
155  \brief Construtor.
156 
157  \param layer The new selected layer.
158  */
161  m_layer(layer)
162  {
163  }
164 
165  te::map::AbstractLayerPtr m_layer; //!< Pointer to the selected layer.
166  };
167 
168  /*!
169  \struct LayerSelectedObjectsChanged
170 
171  \brief This event indicates that the selected objects of the layer were changed.
172  */
174  {
175  /*!
176  \brief Constructor
177 
178  \param layer The layer whose selected objects were changed.
179  */
182  m_layer(layer),
183  m_envelope(e)
184  {
185  }
186 
187  te::map::AbstractLayerPtr m_layer; //!< Layer whose selected objects were changed.
188  te::gm::Envelope* m_envelope; //!< The box of the last selected object.
189  };
190 
191  /*!
192  \struct HighlightLayerObjects
193 
194  \brief This event indicates that the objects of the given layer must be highlighted.
195  */
196  struct HighlightLayerObjects : public Event
197  {
198  /*!
199  \brief Constructor
200 
201  \param layer The layer whose objects must be highlighted.
202  \param dataset The dataset that represents the objects that must be highlighted.
203  */
206  m_layer(layer),
207  m_dataset(dataset),
208  m_color(color)
209  {
210  assert(m_dataset);
211  }
212 
213  te::map::AbstractLayerPtr m_layer; //!< The layer whose objects must be highlighted.
214  te::da::DataSet* m_dataset; //!< The dataset that represents the objects that must be highlighted.
215  QColor m_color; //!< The color used to highlight.
216  };
217 
218  /*!
219  \struct LayerStyleSelected
220 
221  \brief This event indicates that the layer style was selected on the layer explorer.
222  */
223  struct LayerStyleSelected : public Event
224  {
225  /*!
226  \brief Construtor.
227 
228  \param layer The layer that has the selected style.
229  */
232  m_layer(layer)
233  {
234  }
235 
236  te::map::AbstractLayerPtr m_layer; //!< Layer whose style was selected.
237  };
238 
239  /*!
240  \struct LayerPopUpAddAction
241 
242  \brief This event is used to add a action in a layer tree pop up
243  */
244  struct LayerPopUpAddAction : public Event
245  {
246  /*!
247  \brief Construtor.
248 
249  \param action The action to be added to the context menu.
250  \param itemType The type of the selected item.
251  \param menuSelectionType The selection type of the context menu
252  */
253  LayerPopUpAddAction(QAction* action, std::string itemType, int menuSelectionType)
255  m_action(action),
256  m_itemType(itemType),
257  m_menuSelectionType(menuSelectionType)
258  {
259  }
260 
261  QAction* m_action; //!< The action to be added in pop up menu
262  std::string m_itemType; //!< The type of the selected item
263  int m_menuSelectionType; //!< The selection type of the context menu
264  };
265 
266  /*!
267  \struct LayerPopUpRemoveAction
268 
269  \brief This event is used to remove a action in a layer tree pop up
270  */
272  {
273  /*!
274  \brief Construtor.
275 
276  \param action The action to be removed.
277  */
278  LayerPopUpRemoveAction(QAction* action)
280  m_action(action)
281  {
282  }
283 
284  QAction* m_action; //!< Action to be removed in the pop up menu
285  };
286 
287  /*!
288  \struct GetLayerSelected
289 
290  \brief This event is used to get a single layer selected in layer tree
291  */
292  struct GetLayerSelected : public Event
293  {
294  /*!
295  \brief Construtor.
296 
297  \param layer The layer that has the selected style.
298  */
300  {
301  }
302 
303  te::map::AbstractLayerPtr m_layer; //!< Layer selected.
304  };
305 
306  struct GetAvailableLayers: public Event
307  {
309  {
310  }
311 
312  std::list<te::map::AbstractLayerPtr> m_layers;
313  };
314 
315  /*!
316  \struct GetLayerSelected
317 
318  \brief This event is used to get a single layer selected in layer tree
319  */
320  struct LayerChanged : public Event
321  {
322  /*!
323  \brief Construtor.
324 
325  \param layer The layer that has the selected style.
326  */
329  m_layer(layer)
330  {
331  }
332 
333  te::map::AbstractLayer* m_layer; //!< Layer selected.
334  };
335  }
336  }
337  }
338 }
339 
340 #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:180
te::map::AbstractLayerPtr m_layer
Layer selected.
Definition: LayerEvents.h:303
This event is used to get a single layer selected in layer tree.
Definition: LayerEvents.h:292
This event is used to add a action in a layer tree pop up.
Definition: LayerEvents.h:244
This is the base class for layers.
Definition: AbstractLayer.h:76
te::map::AbstractLayerPtr m_layer
Layer whose selected objects were changed.
Definition: LayerEvents.h:187
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:196
te::map::AbstractLayerPtr m_layer
Pointer to the selected layer.
Definition: LayerEvents.h:165
QAction * m_action
Action to be removed in the pop up menu.
Definition: LayerEvents.h:284
This event indicates that the selected objects of the layer were changed.
Definition: LayerEvents.h:173
This event indicates that the layer style was selected on the layer explorer.
Definition: LayerEvents.h:223
HighlightLayerObjects(te::map::AbstractLayerPtr layer, te::da::DataSet *dataset, const QColor &color)
Constructor.
Definition: LayerEvents.h:204
This event indicates that the layer has been selected.
Definition: LayerEvents.h:152
This event is used to remove a action in a layer tree pop up.
Definition: LayerEvents.h:271
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:261
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:51
URI C++ Library.
This event signals that the layer visibility has changed.
Definition: LayerEvents.h:132
LayerChanged(te::map::AbstractLayer *layer)
Construtor.
Definition: LayerEvents.h:327
LayerRemoved(const std::list< te::map::AbstractLayerPtr > &layers)
Constructor.
Definition: LayerEvents.h:118
int m_menuSelectionType
The selection type of the context menu.
Definition: LayerEvents.h:263
LayerSelected(te::map::AbstractLayerPtr layer)
Construtor.
Definition: LayerEvents.h:159
A dataset is the unit of information manipulated by the data access module of TerraLib.
Definition: DataSet.h:112
std::list< te::map::AbstractLayerPtr > m_layers
Definition: LayerEvents.h:312
LayerPopUpRemoveAction(QAction *action)
Construtor.
Definition: LayerEvents.h:278
te::da::DataSet * m_dataset
The dataset that represents the objects that must be highlighted.
Definition: LayerEvents.h:214
LayerStyleSelected(te::map::AbstractLayerPtr layer)
Construtor.
Definition: LayerEvents.h:230
te::map::AbstractLayer * m_layer
Layer selected.
Definition: LayerEvents.h:333
QColor m_color
The color used to highlight.
Definition: LayerEvents.h:215
te::map::AbstractLayerPtr m_layer
Tha layer to be added.
Definition: LayerEvents.h:81
std::list< te::map::AbstractLayerPtr > m_layers
Layer removed.
Definition: LayerEvents.h:124
te::gm::Envelope * m_envelope
The box of the last selected object.
Definition: LayerEvents.h:188
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
std::string m_itemType
The type of the selected item.
Definition: LayerEvents.h:262
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:253
te::map::AbstractLayerPtr m_layer
The layer whose objects must be highlighted.
Definition: LayerEvents.h:213
te::map::AbstractLayerPtr m_layer
Layer whose style was selected.
Definition: LayerEvents.h:236