VectorProcessingDialogCapabilities.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 src/terralib/vp/qt/VectorProcessingOperationDialog.h
22  *
23  * \brief Implements a dialog used to execute a vector processing operation
24  */
25 
26 #ifndef __TERRALIB_VP_QT_INTERNAL_VECTORPROCESSINGDIALOGCAPABILITIES_H
27 #define __TERRALIB_VP_QT_INTERNAL_VECTORPROCESSINGDIALOGCAPABILITIES_H
28 
29 #include "../Config.h"
30 
31 #include "../../common/AbstractFactory.h"
32 
33 //QT Includes
34 #include <QIcon>
35 #include <QPixmap>
36 
37 //STL includes
38 #include <memory>
39 #include <string>
40 
41 class QWidget;
42 
43 namespace te
44 {
45  namespace vp
46  {
47  namespace qt
48  {
49  class SpecificParametersWidget;
50 
51  /*!
52  \class VectorProcessingDialogCapabilities
53 
54  \brief A class used to define the base capabilities of an operation, including number of inputs and outputs.
55  */
57  {
58  public:
60  const std::string& operationName
61  , const std::string& caption
62  , const std::string& description
63  , const std::string& icon
64  , const std::string& hintPixmap
65  , const std::string& helpPageNamespace
66  , const std::string& helpPageReference
67  );
68 
69  //!< Destructor
71 
72  //!< Returns the name of the operation
73  const std::string& getName() const;
74 
75  //!< Returns the caption of the operation
76  const std::string& getCaption() const;
77 
78  //!< Returns the description of the operation
79  const std::string& getDescription() const;
80 
81  //!< Returns the icon of the operation
82  const QIcon& getIcon() const;
83 
84  //!< Returns the hint pixmap of the operation
85  const QPixmap& getHintPixmap() const;
86 
87  //!< Returns help page namespace
88  const std::string& getHelpPageNamespace() const;
89 
90  //!< Returns help page referece
91  const std::string& getHelpPageReference() const;
92 
93  //!< Returns the widget contiaing the specific inputs of the operation. Returns nullptr if there aren't specific parameters for the operation
94  virtual SpecificParametersWidget* getParametersWidget(QWidget* parent = nullptr) const;
95 
96  protected:
97 
98  std::string m_operationName; //!< The name of the operation
99  std::string m_caption; //!< The caption of the widget
100  std::string m_description; //!< The caption of the widget
101  std::string m_icon; //!< The icon of the operation
102  std::string m_hintPixmap; //!< The hint pixmap to be used in the widget
103  std::string m_helpPageNamespace; //!< The help page namespace
104  std::string m_helpPageReference; //!< The help page referece
105  QIcon m_qIcon; //!< The icon of the operation
106  QPixmap m_qHintPixmap; //!< The hint pixmap to be used in the widget
107  };
108 
109 
110  /*!
111  \class VectorProcessingDialogCapabilitiesFactory
112 
113  \brief Abstract factory used to create VectorProcessingDialogCapabilities.
114  */
115  class TEVPEXPORT VectorProcessingDialogCapabilitiesFactory : public te::common::AbstractFactory < VectorProcessingDialogCapabilities, std::string >
116  {
117  protected:
118 
119  /*!
120  \brief Constructor.
121 
122  \param factoryKey The key that identifies the factory.
123  */
124  VectorProcessingDialogCapabilitiesFactory(const std::string& factoryKey);
125 
126  //!< Destructor
128  };
129 
130  } //end namespace qt
131  }//end namespace vp
132 }//end namespace te
133 
134 
135 #endif //__TERRALIB_VP_QT_INTERNAL_VECTORPROCESSINGDIALOGCAPABILITIES_H
This class defines the interface of abstract factories without initializing parameters.
#define TEVPEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:61
Abstract factory used to create VectorProcessingDialogCapabilities.
A class used to define the base capabilities of an operation, including number of inputs and outputs...
TerraLib.
Abstract class used do define a component to set specific parameters for each operation.
std::string m_hintPixmap
The hint pixmap to be used in the widget.
QPixmap m_qHintPixmap
The hint pixmap to be used in the widget.