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 se
56  {
57  class Rule;
58  }
59 
60  namespace qt
61  {
62  namespace af
63  {
64  namespace evt
65  {
66  /*!
67  \struct LayerAdded
68 
69  \brief This event signals that a new layer was created.
70  */
71  struct LayerAdded : public Event
72  {
73  /*!
74  \brief Constructor.
75 
76  \param layer The layer to be added.
77  \param parentLayer The parent layer where the new layer will be added.
78  */
80  : Event(LAYER_ADDED),
81  m_layer(layer),
82  m_parentLayer(parentLayer)
83  {
84  }
85 
86  te::map::AbstractLayerPtr m_layer; //!< The layer to be added.
87  te::map::AbstractLayerPtr m_parentLayer; //!< The parent layer where the layer will be added.
88  };
89 
90  /*!
91  \struct LayersAdded
92 
93  \brief This event signals that a list of layers have been created.
94  */
95  struct LayersAdded : public Event
96  {
97  /*!
98  \brief Constructor.
99 
100  \param layers The layer to be added.
101  \param parentLayer The parent layer where the new layer will be added.
102  */
103  LayersAdded(const std::list<te::map::AbstractLayerPtr> layers, const te::map::AbstractLayerPtr& parentLayer = te::map::AbstractLayerPtr())
104  : Event(LAYERS_ADDED),
105  m_layers(layers),
106  m_parentLayer(parentLayer)
107  {
108  }
109 
110  std::list<te::map::AbstractLayerPtr> m_layers; //!< The layers to be added.
111  te::map::AbstractLayerPtr m_parentLayer; //!< The parent layer where the layers will be added.
112  };
113 
114  /*!
115  \struct ItemOfLayerRemoved
116 
117  \brief This event signals that a item belonging to a layer will be removed from the layer explorer.
118  */
119  //struct ItemOfLayerRemoved : public Event
120  //{
121  // /*!
122  // \brief Constructor.
123 
124  // \param item Item belonging to a layer to be removed from the layer explorer.
125  // */
126  // ItemOfLayerRemoved(te::qt::widgets::AbstractTreeItem* item)
127  // : Event(ITEM_OF_LAYER_REMOVED),
128  // m_item(item)
129  // {
130  // }
131 
132  // te::qt::widgets::AbstractTreeItem* m_item; //!< Item of the layer to be removed.
133  //};
134 
135  /*!
136  \struct LayerRemoved
137 
138  \brief This event signals that a layer is to be removed from the layer explorer.
139  */
140  struct LayerRemoved : public Event
141  {
142  /*!
143  \brief Constructor.
144 
145  \param layer Layer to be removed.
146  */
147  LayerRemoved(const std::list<te::map::AbstractLayerPtr>& layers, const bool& redraw = true)
148  : Event(LAYER_REMOVED),
149  m_layers(layers),
150  m_redraw(redraw)
151  {
152  }
153 
154  std::list<te::map::AbstractLayerPtr> m_layers; //!< Layer removed.
155  bool m_redraw; //!< This flag is used to redraw layers after a layers was removed
156  };
157 
158  /*!
159  \struct LayerVisibilityChanged
160 
161  \brief This event signals that the layer visibility has changed.
162  */
164  {
165  /*!
166  \brief Constructor.
167 
168  \param layer The layer whose visibility has changed.
169 
170  \param visibility The new visibility state: VISIBLE, NOT_VISIBLE, PARTIALLY_VISIBLE.
171  */
174  {
175  }
176  };
177 
178  /*!
179  \struct LayerSelected
180 
181  \brief This event indicates that the layer has been selected.
182  */
183  struct LayerSelected : public Event
184  {
185  /*!
186  \brief Construtor.
187 
188  \param layer The new selected layer.
189  */
192  m_layer(layer)
193  {
194  }
195 
196  te::map::AbstractLayerPtr m_layer; //!< Pointer to the selected layer.
197  };
198 
199  /*!
200  \struct LayerSelectedObjectsChanged
201 
202  \brief This event indicates that the selected objects of the layer were changed.
203  */
205  {
206  /*!
207  \brief Constructor
208 
209  \param layer The layer whose selected objects were changed.
210  */
213  m_layer(layer),
214  m_envelope(e)
215  {
216  }
217 
218  te::map::AbstractLayerPtr m_layer; //!< Layer whose selected objects were changed.
219  te::gm::Envelope* m_envelope; //!< The box of the last selected object.
220  };
221 
222  /*!
223  \struct HighlightLayerObjects
224 
225  \brief This event indicates that the objects of the given layer must be highlighted.
226  */
227  struct HighlightLayerObjects : public Event
228  {
229  /*!
230  \brief Constructor
231 
232  \param layer The layer whose objects must be highlighted.
233  \param dataset The dataset that represents the objects that must be highlighted.
234  */
237  m_layer(layer),
238  m_dataset(dataset),
239  m_style(style)
240  {
241  assert(m_dataset);
242  }
243 
244  te::map::AbstractLayerPtr m_layer; //!< The layer whose objects must be highlighted.
245  te::da::DataSet* m_dataset; //!< The dataset that represents the objects that must be highlighted.
246  te::se::Style* m_style; //!< The color used to highlight.
247  };
248 
249  /*!
250  \struct LayerStyleSelected
251 
252  \brief This event indicates that the layer style was selected on the layer explorer.
253  */
254  struct LayerStyleSelected : public Event
255  {
256  /*!
257  \brief Construtor.
258 
259  \param layer The layer that has the selected style.
260  */
263  m_layer(layer),
264  m_rule(rule)
265  {
266  }
267 
268  te::map::AbstractLayerPtr m_layer; //!< Layer whose style was selected.
269  te::se::Rule* m_rule; //!< Rule whose style was selected.
270  };
271 
272  /*!
273  \struct LayerPopUpAddAction
274 
275  \brief This event is used to add a action in a layer tree pop up
276  */
277  struct LayerPopUpAddAction : public Event
278  {
279  /*!
280  \brief Construtor.
281 
282  \param action The action to be added to the context menu.
283  \param itemType The type of the selected item.
284  \param menuSelectionType The selection type of the context menu
285  */
286  LayerPopUpAddAction(QAction* action, std::string itemType, int menuSelectionType)
288  m_action(action),
289  m_itemType(itemType),
290  m_menuSelectionType(menuSelectionType)
291  {
292  }
293 
294  QAction* m_action; //!< The action to be added in pop up menu
295  std::string m_itemType; //!< The type of the selected item
296  int m_menuSelectionType; //!< The selection type of the context menu
297  };
298 
299  /*!
300  \struct LayerPopUpRemoveAction
301 
302  \brief This event is used to remove a action in a layer tree pop up
303  */
305  {
306  /*!
307  \brief Construtor.
308 
309  \param action The action to be removed.
310  */
311  LayerPopUpRemoveAction(QAction* action)
313  m_action(action)
314  {
315  }
316 
317  QAction* m_action; //!< Action to be removed in the pop up menu
318  };
319 
320  /*!
321  \struct GetLayerSelected
322 
323  \brief This event is used to get a single layer selected in layer tree
324  */
325  struct GetLayerSelected : public Event
326  {
327  /*!
328  \brief Construtor.
329 
330  \param layer The layer that has the selected style.
331  */
333  {
334  }
335 
336  te::map::AbstractLayerPtr m_layer; //!< Layer selected.
337  };
338 
339  struct GetAvailableLayers: public Event
340  {
342  {
343  }
344 
345  std::list<te::map::AbstractLayerPtr> m_layers;
346  };
347 
348  /*!
349  \struct GetLayerSelected
350 
351  \brief This event is used to get a single layer selected in layer tree
352  */
353  struct LayerChanged : public Event
354  {
355  /*!
356  \brief Construtor.
357 
358  \param layer The layer that has the selected style.
359  */
360  LayerChanged(te::map::AbstractLayer* layer, bool redraw = false) :
362  m_layer(layer),
363  m_redraw(redraw)
364  {
365  }
366 
367  te::map::AbstractLayer* m_layer; //!< Layer selected.
368  bool m_redraw; //!< Flag used to indicate if has to redraw the layer
369  };
370  }
371  }
372  }
373 }
374 
375 #endif //__TERRALIB_QT_AF_EVENTS_INTERNAL_LAYEREVENTS_H
This event signals that a new layer was created.
Definition: LayerEvents.h:71
LayerSelectedObjectsChanged(te::map::AbstractLayerPtr layer, te::gm::Envelope *e=0)
Constructor.
Definition: LayerEvents.h:211
te::map::AbstractLayerPtr m_layer
Layer selected.
Definition: LayerEvents.h:336
This event is used to get a single layer selected in layer tree.
Definition: LayerEvents.h:325
The Style defines the styling that is to be applied to a geographic dataset (vector geometries or cov...
Definition: Style.h:65
This event is used to add a action in a layer tree pop up.
Definition: LayerEvents.h:277
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:218
This event signals that a list of layers have been created.
Definition: LayerEvents.h:95
A base class for application events.
Definition: Event.h:59
LayerChanged(te::map::AbstractLayer *layer, bool redraw=false)
Construtor.
Definition: LayerEvents.h:360
This event indicates that the objects of the given layer must be highlighted.
Definition: LayerEvents.h:227
te::map::AbstractLayerPtr m_layer
Pointer to the selected layer.
Definition: LayerEvents.h:196
LayerRemoved(const std::list< te::map::AbstractLayerPtr > &layers, const bool &redraw=true)
Constructor.
Definition: LayerEvents.h:147
QAction * m_action
Action to be removed in the pop up menu.
Definition: LayerEvents.h:317
This event indicates that the selected objects of the layer were changed.
Definition: LayerEvents.h:204
This event indicates that the layer style was selected on the layer explorer.
Definition: LayerEvents.h:254
LayerStyleSelected(te::map::AbstractLayerPtr layer, te::se::Rule *rule)
Construtor.
Definition: LayerEvents.h:261
LayersAdded(const std::list< te::map::AbstractLayerPtr > layers, const te::map::AbstractLayerPtr &parentLayer=te::map::AbstractLayerPtr())
Constructor.
Definition: LayerEvents.h:103
This event indicates that the layer has been selected.
Definition: LayerEvents.h:183
This event is used to remove a action in a layer tree pop up.
Definition: LayerEvents.h:304
bool m_redraw
Flag used to indicate if has to redraw the layer.
Definition: LayerEvents.h:368
te::map::AbstractLayerPtr m_parentLayer
The parent layer where the layer will be added.
Definition: LayerEvents.h:87
QAction * m_action
The action to be added in pop up menu.
Definition: LayerEvents.h:294
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:51
TerraLib.
This event signals that the layer visibility has changed.
Definition: LayerEvents.h:163
std::list< te::map::AbstractLayerPtr > m_layers
The layers to be added.
Definition: LayerEvents.h:110
int m_menuSelectionType
The selection type of the context menu.
Definition: LayerEvents.h:296
te::map::AbstractLayerPtr m_parentLayer
The parent layer where the layers will be added.
Definition: LayerEvents.h:111
LayerSelected(te::map::AbstractLayerPtr layer)
Construtor.
Definition: LayerEvents.h:190
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:345
A Rule is used to attach property/scale conditions to and group the individual symbols used for rende...
Definition: Rule.h:76
LayerPopUpRemoveAction(QAction *action)
Construtor.
Definition: LayerEvents.h:311
te::da::DataSet * m_dataset
The dataset that represents the objects that must be highlighted.
Definition: LayerEvents.h:245
te::se::Rule * m_rule
Rule whose style was selected.
Definition: LayerEvents.h:269
te::se::Style * m_style
The color used to highlight.
Definition: LayerEvents.h:246
te::map::AbstractLayer * m_layer
Layer selected.
Definition: LayerEvents.h:367
te::map::AbstractLayerPtr m_layer
The layer to be added.
Definition: LayerEvents.h:86
std::list< te::map::AbstractLayerPtr > m_layers
Layer removed.
Definition: LayerEvents.h:154
te::gm::Envelope * m_envelope
The box of the last selected object.
Definition: LayerEvents.h:219
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
bool m_redraw
This flag is used to redraw layers after a layers was removed.
Definition: LayerEvents.h:155
std::string m_itemType
The type of the selected item.
Definition: LayerEvents.h:295
LayerAdded(const te::map::AbstractLayerPtr &layer, const te::map::AbstractLayerPtr &parentLayer=te::map::AbstractLayerPtr())
Constructor.
Definition: LayerEvents.h:79
LayerPopUpAddAction(QAction *action, std::string itemType, int menuSelectionType)
Construtor.
Definition: LayerEvents.h:286
te::map::AbstractLayerPtr m_layer
The layer whose objects must be highlighted.
Definition: LayerEvents.h:244
HighlightLayerObjects(te::map::AbstractLayerPtr layer, te::da::DataSet *dataset, te::se::Style *style)
Constructor.
Definition: LayerEvents.h:235
te::map::AbstractLayerPtr m_layer
Layer whose style was selected.
Definition: LayerEvents.h:268