All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
WellKnownGraphicWidgetFactory.h
Go to the documentation of this file.
1 /* Copyright (C) 2008-2011 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 terralib/qt/widgets/se/WellKnownGraphicWidgetFactory.h
22 
23  \brief A concrete factory that builds a graphic widget used to configure a graphic associate with an one well-known mark element.
24 */
25 
26 #ifndef __TERRALIB_QT_SE_INTERNAL_WELLKNOWNGRAPHICWIDGETFACTORY_H
27 #define __TERRALIB_QT_SE_INTERNAL_WELLKNOWNGRAPHICWIDGETFACTORY_H
28 
29 // TerraLib
30 #include "../Config.h"
32 
33 namespace te
34 {
35  namespace qt
36  {
37  namespace widgets
38  {
39  /*!
40  \class WellKnownGraphicWidgetFactory
41 
42  \brief A concrete factory that builds a graphic widget used to configure a graphic associate with an one well-known mark element.
43 
44  \sa AbstractGraphicWidgetFactory
45  */
47  {
48  public:
49 
50  /** @name Public Initializer
51  * Methods for the control of the factory singleton.
52  */
53  //@{
54 
55  /*! \brief It initializes the factory: the singleton instance will be registered in the abstract factory AbstractGraphicWidgetFactory. */
56  static void initialize();
57 
58  /*! \brief It finalizes the factory: the singleton instance will be destroyed and will be unregistered from the abstract factory AbstractGraphicWidgetFactory. */
59  static void finalize();
60 
61  //@}
62 
63  /** @name Public Destructor
64  * Destructor.
65  */
66  //@{
67 
68  /*!
69  \brief Destructor.
70 
71  \note It will automatically unregister the factory from the dictionary.
72  */
74 
75  //@}
76 
77  protected:
78 
79  /** @name Re-implementation of Pure Virtual Method
80  * Concrete factory methods.
81  */
82  //@{
83 
84  AbstractGraphicWidget* build();
85 
86  //@}
87 
88  protected:
89 
90  /** @name Protected Initializers
91  * Initializers.
92  */
93  //@{
94 
95  /*!
96  \brief It creates the factory.
97 
98  The key of a WellKnownGraphicWidgetFactory is a string.
99 
100  \param factoryKey The key that identifies the factory.
101  */
103 
104  //@}
105 
106  private:
107 
108  static std::string sm_factoryKey; //!< The factory key.
109  static WellKnownGraphicWidgetFactory* sm_factory; //!< A pointer to the global factory.
110  };
111 
112  } // end namespace widgets
113  } // end namespace qt
114 } // end namespace te
115 
116 #endif // __TERRALIB_QT_SE_INTERNAL_WELLKNOWNGRAPHICWIDGETFACTORY_H
#define TEQTWIDGETSEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:101
static WellKnownGraphicWidgetFactory * sm_factory
A pointer to the global factory.
The abstract factory of widgets used to configure Symbology Enconding Graphic element.
The abstract factory of widgets used to configure Symbology Enconding Graphic element.
Abstract class that represents a widget that can be used to build a graphic element.
A concrete factory that builds a graphic widget used to configure a graphic associate with an one wel...