All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
AbstractProxyProject.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 AbstractProxyProject.h
22 
23  \brief Abstract class to provide a surrogate or placeholder for te::qt::af::Project to control access to it.
24  A wrapper to access without complexity. This abstract proxy is required because module not must have dependence te::qt::af.
25  Useful to access the Layers belonging to the project.
26 
27  \ingroup layout
28 */
29 
30 #ifndef __TERRALIB_LAYOUT_INTERNAL_ABSTRACT_PROXY_PROJECT_H
31 #define __TERRALIB_LAYOUT_INTERNAL_ABSTRACT_PROXY_PROJECT_H
32 
33 // TerraLib
34 #include "../../Config.h"
35 #include "../../../../maptools/AbstractLayer.h"
36 
37 #include <list>
38 
39 namespace te
40 {
41  namespace layout
42  {
43  /*!
44  \brief Abstract class to provide a surrogate or placeholder for te::qt::af::Project to control access to it.
45  A wrapper to access without complexity. This abstract proxy is required because module not must have dependence te::qt::af.
46  Useful to access the Layers belonging to the project.
47 
48  \ingroup layout
49  */
51  {
52  public:
53 
54  /*!
55  \brief Constructor
56  */
58 
59  /*!
60  \brief Destructor
61  */
62  virtual ~AbstractProxyProject();
63 
64  /*!
65  \brief It gets all the layers (single and folder layers) of the project.
66 
67  \param invalid If including invalid layers.
68 
69  \return The list of all the layers (single and folder layers) of the project.
70  */
71  virtual std::list<te::map::AbstractLayerPtr> getAllLayers(bool invalid = true) = 0;
72 
73  /*!
74  \brief It gets all the layers that are selected.
75 
76  \param invalid If including invalid layers.
77 
78  \return The list of all the layers that are selected.
79  */
80  virtual const std::list<te::map::AbstractLayerPtr> getSelectedLayers(bool invalid = true) const = 0;
81 
82  /*!
83  \brief Checks whether the layer is in the project.
84 
85  \param name layer name to check
86 
87  \return pointer to the layer found or null
88  */
89  virtual te::map::AbstractLayerPtr contains(std::string name) = 0;
90  };
91  }
92 }
93 
94 #endif
#define TELAYOUTEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:99
Abstract class to provide a surrogate or placeholder for te::qt::af::Project to control access to it...
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr