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, const bool& redraw = true)
143  : Event(LAYER_REMOVED),
144  m_layers(layers),
145  m_redraw(redraw)
146  {
147  }
148 
149  std::list<te::map::AbstractLayerPtr> m_layers; //!< Layer removed.
150  bool m_redraw; //!< This flag is used to redraw layers after a layers was removed
151  };
152 
153  /*!
154  \struct LayerVisibilityChanged
155 
156  \brief This event signals that the layer visibility has changed.
157  */
159  {
160  /*!
161  \brief Constructor.
162 
163  \param layer The layer whose visibility has changed.
164 
165  \param visibility The new visibility state: VISIBLE, NOT_VISIBLE, PARTIALLY_VISIBLE.
166  */
169  {
170  }
171  };
172 
173  /*!
174  \struct LayerSelected
175 
176  \brief This event indicates that the layer has been selected.
177  */
178  struct LayerSelected : public Event
179  {
180  /*!
181  \brief Construtor.
182 
183  \param layer The new selected layer.
184  */
187  m_layer(layer)
188  {
189  }
190 
191  te::map::AbstractLayerPtr m_layer; //!< Pointer to the selected layer.
192  };
193 
194  /*!
195  \struct LayerSelectedObjectsChanged
196 
197  \brief This event indicates that the selected objects of the layer were changed.
198  */
200  {
201  /*!
202  \brief Constructor
203 
204  \param layer The layer whose selected objects were changed.
205  */
208  m_layer(layer),
209  m_envelope(e)
210  {
211  }
212 
213  te::map::AbstractLayerPtr m_layer; //!< Layer whose selected objects were changed.
214  te::gm::Envelope* m_envelope; //!< The box of the last selected object.
215  };
216 
217  /*!
218  \struct HighlightLayerObjects
219 
220  \brief This event indicates that the objects of the given layer must be highlighted.
221  */
222  struct HighlightLayerObjects : public Event
223  {
224  /*!
225  \brief Constructor
226 
227  \param layer The layer whose objects must be highlighted.
228  \param dataset The dataset that represents the objects that must be highlighted.
229  */
232  m_layer(layer),
233  m_dataset(dataset),
234  m_color(color)
235  {
236  assert(m_dataset);
237  }
238 
239  te::map::AbstractLayerPtr m_layer; //!< The layer whose objects must be highlighted.
240  te::da::DataSet* m_dataset; //!< The dataset that represents the objects that must be highlighted.
241  QColor m_color; //!< The color used to highlight.
242  };
243 
244  /*!
245  \struct LayerStyleSelected
246 
247  \brief This event indicates that the layer style was selected on the layer explorer.
248  */
249  struct LayerStyleSelected : public Event
250  {
251  /*!
252  \brief Construtor.
253 
254  \param layer The layer that has the selected style.
255  */
258  m_layer(layer)
259  {
260  }
261 
262  te::map::AbstractLayerPtr m_layer; //!< Layer whose style was selected.
263  };
264 
265  /*!
266  \struct LayerGroupingSelected
267 
268  \brief This event indicates that the layer grouping was selected on the layer explorer.
269  */
270  struct LayerGroupingSelected : public Event
271  {
272  /*!
273  \brief Construtor.
274 
275  \param layer The layer that has the selected grouping.
276  */
279  m_layer(layer)
280  {
281  }
282 
283  te::map::AbstractLayerPtr m_layer; //!< Layer whose grouping was selected.
284  };
285 
286  /*!
287  \struct LayerPopUpAddAction
288 
289  \brief This event is used to add a action in a layer tree pop up
290  */
291  struct LayerPopUpAddAction : public Event
292  {
293  /*!
294  \brief Construtor.
295 
296  \param action The action to be added to the context menu.
297  \param itemType The type of the selected item.
298  \param menuSelectionType The selection type of the context menu
299  */
300  LayerPopUpAddAction(QAction* action, std::string itemType, int menuSelectionType)
302  m_action(action),
303  m_itemType(itemType),
304  m_menuSelectionType(menuSelectionType)
305  {
306  }
307 
308  QAction* m_action; //!< The action to be added in pop up menu
309  std::string m_itemType; //!< The type of the selected item
310  int m_menuSelectionType; //!< The selection type of the context menu
311  };
312 
313  /*!
314  \struct LayerPopUpRemoveAction
315 
316  \brief This event is used to remove a action in a layer tree pop up
317  */
319  {
320  /*!
321  \brief Construtor.
322 
323  \param action The action to be removed.
324  */
325  LayerPopUpRemoveAction(QAction* action)
327  m_action(action)
328  {
329  }
330 
331  QAction* m_action; //!< Action to be removed in the pop up menu
332  };
333 
334  /*!
335  \struct GetLayerSelected
336 
337  \brief This event is used to get a single layer selected in layer tree
338  */
339  struct GetLayerSelected : public Event
340  {
341  /*!
342  \brief Construtor.
343 
344  \param layer The layer that has the selected style.
345  */
347  {
348  }
349 
350  te::map::AbstractLayerPtr m_layer; //!< Layer selected.
351  };
352 
353  struct GetAvailableLayers: public Event
354  {
356  {
357  }
358 
359  std::list<te::map::AbstractLayerPtr> m_layers;
360  };
361 
362  /*!
363  \struct GetLayerSelected
364 
365  \brief This event is used to get a single layer selected in layer tree
366  */
367  struct LayerChanged : public Event
368  {
369  /*!
370  \brief Construtor.
371 
372  \param layer The layer that has the selected style.
373  */
376  m_layer(layer)
377  {
378  }
379 
380  te::map::AbstractLayer* m_layer; //!< Layer selected.
381  };
382  }
383  }
384  }
385 }
386 
387 #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:206
te::map::AbstractLayerPtr m_layer
Layer selected.
Definition: LayerEvents.h:350
This event is used to get a single layer selected in layer tree.
Definition: LayerEvents.h:339
This event is used to add a action in a layer tree pop up.
Definition: LayerEvents.h:291
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:213
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:222
te::map::AbstractLayerPtr m_layer
Pointer to the selected layer.
Definition: LayerEvents.h:191
LayerRemoved(const std::list< te::map::AbstractLayerPtr > &layers, const bool &redraw=true)
Constructor.
Definition: LayerEvents.h:142
QAction * m_action
Action to be removed in the pop up menu.
Definition: LayerEvents.h:331
This event indicates that the selected objects of the layer were changed.
Definition: LayerEvents.h:199
This event indicates that the layer style was selected on the layer explorer.
Definition: LayerEvents.h:249
HighlightLayerObjects(te::map::AbstractLayerPtr layer, te::da::DataSet *dataset, const QColor &color)
Constructor.
Definition: LayerEvents.h:230
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:178
This event is used to remove a action in a layer tree pop up.
Definition: LayerEvents.h:318
This event indicates that the layer grouping was selected on the layer explorer.
Definition: LayerEvents.h:270
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:308
LayerGroupingSelected(te::map::AbstractLayerPtr layer)
Construtor.
Definition: LayerEvents.h:277
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:158
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:374
int m_menuSelectionType
The selection type of the context menu.
Definition: LayerEvents.h:310
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:185
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:359
LayerPopUpRemoveAction(QAction *action)
Construtor.
Definition: LayerEvents.h:325
te::da::DataSet * m_dataset
The dataset that represents the objects that must be highlighted.
Definition: LayerEvents.h:240
LayerStyleSelected(te::map::AbstractLayerPtr layer)
Construtor.
Definition: LayerEvents.h:256
te::map::AbstractLayer * m_layer
Layer selected.
Definition: LayerEvents.h:380
QColor m_color
The color used to highlight.
Definition: LayerEvents.h:241
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:149
te::gm::Envelope * m_envelope
The box of the last selected object.
Definition: LayerEvents.h:214
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
bool m_redraw
This flag is used to redraw layers after a layers was removed.
Definition: LayerEvents.h:150
std::string m_itemType
The type of the selected item.
Definition: LayerEvents.h:309
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:283
LayerPopUpAddAction(QAction *action, std::string itemType, int menuSelectionType)
Construtor.
Definition: LayerEvents.h:300
te::map::AbstractLayerPtr m_layer
The layer whose objects must be highlighted.
Definition: LayerEvents.h:239
te::map::AbstractLayerPtr m_layer
Layer whose style was selected.
Definition: LayerEvents.h:262