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