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 LayerGroupingSelected
241 
242  \brief This event indicates that the layer grouping was selected on the layer explorer.
243  */
244  struct LayerGroupingSelected : public Event
245  {
246  /*!
247  \brief Construtor.
248 
249  \param layer The layer that has the selected grouping.
250  */
253  m_layer(layer)
254  {
255  }
256 
257  te::map::AbstractLayerPtr m_layer; //!< Layer whose grouping was selected.
258  };
259 
260  /*!
261  \struct LayerPopUpAddAction
262 
263  \brief This event is used to add a action in a layer tree pop up
264  */
265  struct LayerPopUpAddAction : public Event
266  {
267  /*!
268  \brief Construtor.
269 
270  \param action The action to be added to the context menu.
271  \param itemType The type of the selected item.
272  \param menuSelectionType The selection type of the context menu
273  */
274  LayerPopUpAddAction(QAction* action, std::string itemType, int menuSelectionType)
276  m_action(action),
277  m_itemType(itemType),
278  m_menuSelectionType(menuSelectionType)
279  {
280  }
281 
282  QAction* m_action; //!< The action to be added in pop up menu
283  std::string m_itemType; //!< The type of the selected item
284  int m_menuSelectionType; //!< The selection type of the context menu
285  };
286 
287  /*!
288  \struct LayerPopUpRemoveAction
289 
290  \brief This event is used to remove a action in a layer tree pop up
291  */
293  {
294  /*!
295  \brief Construtor.
296 
297  \param action The action to be removed.
298  */
299  LayerPopUpRemoveAction(QAction* action)
301  m_action(action)
302  {
303  }
304 
305  QAction* m_action; //!< Action to be removed in the pop up menu
306  };
307 
308  /*!
309  \struct GetLayerSelected
310 
311  \brief This event is used to get a single layer selected in layer tree
312  */
313  struct GetLayerSelected : public Event
314  {
315  /*!
316  \brief Construtor.
317 
318  \param layer The layer that has the selected style.
319  */
321  {
322  }
323 
324  te::map::AbstractLayerPtr m_layer; //!< Layer selected.
325  };
326 
327  struct GetAvailableLayers: public Event
328  {
330  {
331  }
332 
333  std::list<te::map::AbstractLayerPtr> m_layers;
334  };
335 
336  /*!
337  \struct GetLayerSelected
338 
339  \brief This event is used to get a single layer selected in layer tree
340  */
341  struct LayerChanged : public Event
342  {
343  /*!
344  \brief Construtor.
345 
346  \param layer The layer that has the selected style.
347  */
350  m_layer(layer)
351  {
352  }
353 
354  te::map::AbstractLayer* m_layer; //!< Layer selected.
355  };
356  }
357  }
358  }
359 }
360 
361 #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:324
This event is used to get a single layer selected in layer tree.
Definition: LayerEvents.h:313
This event is used to add a action in a layer tree pop up.
Definition: LayerEvents.h:265
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:305
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:292
This event indicates that the layer grouping was selected on the layer explorer.
Definition: LayerEvents.h:244
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:282
LayerGroupingSelected(te::map::AbstractLayerPtr layer)
Construtor.
Definition: LayerEvents.h:251
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:348
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:284
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:333
LayerPopUpRemoveAction(QAction *action)
Construtor.
Definition: LayerEvents.h:299
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:354
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:283
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:257
LayerPopUpAddAction(QAction *action, std::string itemType, int menuSelectionType)
Construtor.
Definition: LayerEvents.h:274
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