All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Observable.h
Go to the documentation of this file.
1 /* Copyright (C) 2014-2014 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 Observable.h
22 
23  \brief
24 
25  \ingroup layout
26 */
27 
28 #ifndef __TERRALIB_LAYOUT_INTERNAL_OBSERVABLE_H
29 #define __TERRALIB_LAYOUT_INTERNAL_OBSERVABLE_H
30 
31 // TerraLib
32 #include "ContextItem.h"
33 #include "../../../../../geometry/Envelope.h"
34 #include "../../../../../geometry/Coord2D.h"
35 #include "../../../color/RGBAColor.h"
36 #include "AbstractType.h"
37 
38 namespace te
39 {
40  namespace layout
41  {
42  class Observer;
43  class Properties;
44 
45  class Observable
46  {
47  public:
48 
49  virtual ~Observable(void) {}
50 
51  virtual bool addObserver(Observer* o) = 0;
52  virtual bool removeObserver(Observer* o) = 0;
53 
54  virtual te::layout::Properties* getProperties() const = 0;
55  virtual void updateProperties(te::layout::Properties* properties) = 0;
56 
57  virtual te::gm::Envelope getBox() = 0;
58 
59  virtual LayoutAbstractObjectType getType() = 0;
60  virtual void setType(LayoutAbstractObjectType type) = 0;
61 
62  virtual int getZValue() = 0;
63  virtual void setZValue(int zValue) = 0;
64 
65  virtual std::string getName() = 0;
66 
67  virtual int getId() = 0;
68  virtual void setId(int id) = 0;
69 
70  protected:
71 
72  virtual void notifyAll(ContextItem context) = 0;
73  };
74 
75  }
76 }
77 
78 #endif
virtual int getZValue()=0
virtual te::gm::Envelope getBox()=0
virtual bool removeObserver(Observer *o)=0
virtual void updateProperties(te::layout::Properties *properties)=0
An Envelope defines a 2D rectangular region.
Definition: Envelope.h:51
virtual te::layout::Properties * getProperties() const =0
virtual int getId()=0
virtual bool addObserver(Observer *o)=0
LayoutAbstractObjectType
Enum TdkAbstractComponentType. This is the enumeration of the components types.
Definition: AbstractType.h:38
virtual LayoutAbstractObjectType getType()=0
virtual void setType(LayoutAbstractObjectType type)=0
virtual std::string getName()=0
virtual void setId(int id)=0
virtual void setZValue(int zValue)=0
virtual ~Observable(void)
Definition: Observable.h:49
virtual void notifyAll(ContextItem context)=0