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; //!< The layer to be added.
82  te::map::AbstractLayerPtr m_parentLayer; //!< The parent layer where the layer will be added.
83  };
84 
85  /*!
86  \struct LayersAdded
87 
88  \brief This event signals that a list of layers have been created.
89  */
90  struct LayersAdded : public Event
91  {
92  /*!
93  \brief Constructor.
94 
95  \param layers The layer to be added.
96  \param parentLayer The parent layer where the new layer will be added.
97  */
98  LayersAdded(const std::list<te::map::AbstractLayerPtr> layers, const te::map::AbstractLayerPtr& parentLayer = te::map::AbstractLayerPtr())
100  m_layers(layers),
101  m_parentLayer(parentLayer)
102  {
103  }
104 
105  std::list<te::map::AbstractLayerPtr> m_layers; //!< The layers to be added.
106  te::map::AbstractLayerPtr m_parentLayer; //!< The parent layer where the layers will be added.
107  };
108 
109  /*!
110  \struct ItemOfLayerRemoved
111 
112  \brief This event signals that a item belonging to a layer will be removed from the layer explorer.
113  */
114  //struct ItemOfLayerRemoved : public Event
115  //{
116  // /*!
117  // \brief Constructor.
118 
119  // \param item Item belonging to a layer to be removed from the layer explorer.
120  // */
121  // ItemOfLayerRemoved(te::qt::widgets::AbstractTreeItem* item)
122  // : Event(ITEM_OF_LAYER_REMOVED),
123  // m_item(item)
124  // {
125  // }
126 
127  // te::qt::widgets::AbstractTreeItem* m_item; //!< Item of the layer to be removed.
128  //};
129 
130  /*!
131  \struct LayerRemoved
132 
133  \brief This event signals that a layer is to be removed from the layer explorer.
134  */
135  struct LayerRemoved : public Event
136  {
137  /*!
138  \brief Constructor.
139 
140  \param layer Layer to be removed.
141  */
142  LayerRemoved(const std::list<te::map::AbstractLayerPtr>& layers)
143  : Event(LAYER_REMOVED),
144  m_layers(layers)
145  {
146  }
147 
148  std::list<te::map::AbstractLayerPtr> m_layers; //!< Layer removed.
149  };
150 
151  /*!
152  \struct LayerVisibilityChanged
153 
154  \brief This event signals that the layer visibility has changed.
155  */
157  {
158  /*!
159  \brief Constructor.
160 
161  \param layer The layer whose visibility has changed.
162 
163  \param visibility The new visibility state: VISIBLE, NOT_VISIBLE, PARTIALLY_VISIBLE.
164  */
167  {
168  }
169  };
170 
171  /*!
172  \struct LayerSelected
173 
174  \brief This event indicates that the layer has been selected.
175  */
176  struct LayerSelected : public Event
177  {
178  /*!
179  \brief Construtor.
180 
181  \param layer The new selected layer.
182  */
185  m_layer(layer)
186  {
187  }
188 
189  te::map::AbstractLayerPtr m_layer; //!< Pointer to the selected layer.
190  };
191 
192  /*!
193  \struct LayerSelectedObjectsChanged
194 
195  \brief This event indicates that the selected objects of the layer were changed.
196  */
198  {
199  /*!
200  \brief Constructor
201 
202  \param layer The layer whose selected objects were changed.
203  */
206  m_layer(layer),
207  m_envelope(e)
208  {
209  }
210 
211  te::map::AbstractLayerPtr m_layer; //!< Layer whose selected objects were changed.
212  te::gm::Envelope* m_envelope; //!< The box of the last selected object.
213  };
214 
215  /*!
216  \struct HighlightLayerObjects
217 
218  \brief This event indicates that the objects of the given layer must be highlighted.
219  */
220  struct HighlightLayerObjects : public Event
221  {
222  /*!
223  \brief Constructor
224 
225  \param layer The layer whose objects must be highlighted.
226  \param dataset The dataset that represents the objects that must be highlighted.
227  */
230  m_layer(layer),
231  m_dataset(dataset),
232  m_color(color)
233  {
234  assert(m_dataset);
235  }
236 
237  te::map::AbstractLayerPtr m_layer; //!< The layer whose objects must be highlighted.
238  te::da::DataSet* m_dataset; //!< The dataset that represents the objects that must be highlighted.
239  QColor m_color; //!< The color used to highlight.
240  };
241 
242  /*!
243  \struct LayerStyleSelected
244 
245  \brief This event indicates that the layer style was selected on the layer explorer.
246  */
247  struct LayerStyleSelected : public Event
248  {
249  /*!
250  \brief Construtor.
251 
252  \param layer The layer that has the selected style.
253  */
256  m_layer(layer)
257  {
258  }
259 
260  te::map::AbstractLayerPtr m_layer; //!< Layer whose style was selected.
261  };
262 
263  /*!
264  \struct LayerGroupingSelected
265 
266  \brief This event indicates that the layer grouping was selected on the layer explorer.
267  */
268  struct LayerGroupingSelected : public Event
269  {
270  /*!
271  \brief Construtor.
272 
273  \param layer The layer that has the selected grouping.
274  */
277  m_layer(layer)
278  {
279  }
280 
281  te::map::AbstractLayerPtr m_layer; //!< Layer whose grouping was selected.
282  };
283 
284  /*!
285  \struct LayerPopUpAddAction
286 
287  \brief This event is used to add a action in a layer tree pop up
288  */
289  struct LayerPopUpAddAction : public Event
290  {
291  /*!
292  \brief Construtor.
293 
294  \param action The action to be added to the context menu.
295  \param itemType The type of the selected item.
296  \param menuSelectionType The selection type of the context menu
297  */
298  LayerPopUpAddAction(QAction* action, std::string itemType, int menuSelectionType)
300  m_action(action),
301  m_itemType(itemType),
302  m_menuSelectionType(menuSelectionType)
303  {
304  }
305 
306  QAction* m_action; //!< The action to be added in pop up menu
307  std::string m_itemType; //!< The type of the selected item
308  int m_menuSelectionType; //!< The selection type of the context menu
309  };
310 
311  /*!
312  \struct LayerPopUpRemoveAction
313 
314  \brief This event is used to remove a action in a layer tree pop up
315  */
317  {
318  /*!
319  \brief Construtor.
320 
321  \param action The action to be removed.
322  */
323  LayerPopUpRemoveAction(QAction* action)
325  m_action(action)
326  {
327  }
328 
329  QAction* m_action; //!< Action to be removed in the pop up menu
330  };
331 
332  /*!
333  \struct GetLayerSelected
334 
335  \brief This event is used to get a single layer selected in layer tree
336  */
337  struct GetLayerSelected : public Event
338  {
339  /*!
340  \brief Construtor.
341 
342  \param layer The layer that has the selected style.
343  */
345  {
346  }
347 
348  te::map::AbstractLayerPtr m_layer; //!< Layer selected.
349  };
350 
351  struct GetAvailableLayers: public Event
352  {
354  {
355  }
356 
357  std::list<te::map::AbstractLayerPtr> m_layers;
358  };
359 
360  /*!
361  \struct GetLayerSelected
362 
363  \brief This event is used to get a single layer selected in layer tree
364  */
365  struct LayerChanged : public Event
366  {
367  /*!
368  \brief Construtor.
369 
370  \param layer The layer that has the selected style.
371  */
374  m_layer(layer)
375  {
376  }
377 
378  te::map::AbstractLayer* m_layer; //!< Layer selected.
379  };
380  }
381  }
382  }
383 }
384 
385 #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:204
te::map::AbstractLayerPtr m_layer
Layer selected.
Definition: LayerEvents.h:348
This event is used to get a single layer selected in layer tree.
Definition: LayerEvents.h:337
This event is used to add a action in a layer tree pop up.
Definition: LayerEvents.h:289
This is the base class for layers.
Definition: AbstractLayer.h:77
te::map::AbstractLayerPtr m_layer
Layer whose selected objects were changed.
Definition: LayerEvents.h:211
This event signals that a list of layers have been created.
Definition: LayerEvents.h:90
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:220
te::map::AbstractLayerPtr m_layer
Pointer to the selected layer.
Definition: LayerEvents.h:189
QAction * m_action
Action to be removed in the pop up menu.
Definition: LayerEvents.h:329
This event indicates that the selected objects of the layer were changed.
Definition: LayerEvents.h:197
This event indicates that the layer style was selected on the layer explorer.
Definition: LayerEvents.h:247
HighlightLayerObjects(te::map::AbstractLayerPtr layer, te::da::DataSet *dataset, const QColor &color)
Constructor.
Definition: LayerEvents.h:228
LayersAdded(const std::list< te::map::AbstractLayerPtr > layers, const te::map::AbstractLayerPtr &parentLayer=te::map::AbstractLayerPtr())
Constructor.
Definition: LayerEvents.h:98
This event indicates that the layer has been selected.
Definition: LayerEvents.h:176
This event is used to remove a action in a layer tree pop up.
Definition: LayerEvents.h:316
This event indicates that the layer grouping was selected on the layer explorer.
Definition: LayerEvents.h:268
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:306
LayerGroupingSelected(te::map::AbstractLayerPtr layer)
Construtor.
Definition: LayerEvents.h:275
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:156
std::list< te::map::AbstractLayerPtr > m_layers
The layers to be added.
Definition: LayerEvents.h:105
LayerChanged(te::map::AbstractLayer *layer)
Construtor.
Definition: LayerEvents.h:372
LayerRemoved(const std::list< te::map::AbstractLayerPtr > &layers)
Constructor.
Definition: LayerEvents.h:142
int m_menuSelectionType
The selection type of the context menu.
Definition: LayerEvents.h:308
te::map::AbstractLayerPtr m_parentLayer
The parent layer where the layers will be added.
Definition: LayerEvents.h:106
LayerSelected(te::map::AbstractLayerPtr layer)
Construtor.
Definition: LayerEvents.h:183
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:357
LayerPopUpRemoveAction(QAction *action)
Construtor.
Definition: LayerEvents.h:323
te::da::DataSet * m_dataset
The dataset that represents the objects that must be highlighted.
Definition: LayerEvents.h:238
LayerStyleSelected(te::map::AbstractLayerPtr layer)
Construtor.
Definition: LayerEvents.h:254
te::map::AbstractLayer * m_layer
Layer selected.
Definition: LayerEvents.h:378
QColor m_color
The color used to highlight.
Definition: LayerEvents.h:239
te::map::AbstractLayerPtr m_layer
The layer to be added.
Definition: LayerEvents.h:81
std::list< te::map::AbstractLayerPtr > m_layers
Layer removed.
Definition: LayerEvents.h:148
te::gm::Envelope * m_envelope
The box of the last selected object.
Definition: LayerEvents.h:212
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
std::string m_itemType
The type of the selected item.
Definition: LayerEvents.h:307
LayerAdded(const te::map::AbstractLayerPtr &layer, const te::map::AbstractLayerPtr &parentLayer=te::map::AbstractLayerPtr())
Constructor.
Definition: LayerEvents.h:74
te::map::AbstractLayerPtr m_layer
Layer whose grouping was selected.
Definition: LayerEvents.h:281
LayerPopUpAddAction(QAction *action, std::string itemType, int menuSelectionType)
Construtor.
Definition: LayerEvents.h:298
te::map::AbstractLayerPtr m_layer
The layer whose objects must be highlighted.
Definition: LayerEvents.h:237
te::map::AbstractLayerPtr m_layer
Layer whose style was selected.
Definition: LayerEvents.h:260