| [0070aa] | 1 | /*
|
|---|
| 2 | * QtObservedMolecule.hpp
|
|---|
| 3 | *
|
|---|
| 4 | * Created on: Oct 28, 2015
|
|---|
| 5 | * Author: heber
|
|---|
| 6 | */
|
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 | #ifndef QTOBSERVEDMOLECULE_HPP_
|
|---|
| 10 | #define QTOBSERVEDMOLECULE_HPP_
|
|---|
| 11 |
|
|---|
| 12 | // include config.h
|
|---|
| 13 | #ifdef HAVE_CONFIG_H
|
|---|
| 14 | #include <config.h>
|
|---|
| 15 | #endif
|
|---|
| 16 |
|
|---|
| 17 | #include <QtGui/QWidget>
|
|---|
| 18 |
|
|---|
| [98c35c] | 19 | #include <boost/shared_ptr.hpp>
|
|---|
| [0070aa] | 20 |
|
|---|
| 21 | #include "CodePatterns/Observer/Observer.hpp"
|
|---|
| 22 |
|
|---|
| [98c35c] | 23 | #include "UIElements/Qt4/InstanceBoard/ObservedValue_types.hpp"
|
|---|
| [41e287] | 24 | #include "UIElements/Qt4/InstanceBoard/ObservedValuesContainer.hpp"
|
|---|
| [0070aa] | 25 | #include "types.hpp"
|
|---|
| 26 |
|
|---|
| [98c35c] | 27 | class QtObservedInstanceBoard;
|
|---|
| 28 |
|
|---|
| [0070aa] | 29 | /** This instance is the ObservedValue representation of a World's molecule.
|
|---|
| 30 | *
|
|---|
| 31 | * Due to the signal/slot mechanism and its delays, lifetime of objects in the
|
|---|
| 32 | * World and their QtGui representation cannot directly be related (without
|
|---|
| 33 | * slowing down Actions just for having the representation up to speed).
|
|---|
| 34 | * Hence, the required information for displaying and representing these
|
|---|
| 35 | * objects must be contained in an extra instance.
|
|---|
| 36 | *
|
|---|
| 37 | * This is the instance for information about a particular molecule.
|
|---|
| 38 | */
|
|---|
| 39 | class QtObservedMolecule : public QWidget, public Observer
|
|---|
| 40 | {
|
|---|
| 41 | Q_OBJECT
|
|---|
| 42 |
|
|---|
| [41e287] | 43 | //!> ObservedValuesContainer needs to access private cstor and dstor
|
|---|
| 44 | friend class ObservedValuesContainer<QtObservedMolecule, moleculeId_t>;
|
|---|
| [98c35c] | 45 | //!> QtObservedInstanceBoard needs to access private cstor and dstor
|
|---|
| 46 | friend class QtObservedInstanceBoard;
|
|---|
| 47 |
|
|---|
| 48 | //!> typedef for instance wrapped in shared ptr
|
|---|
| 49 | typedef boost::shared_ptr<QtObservedMolecule> ptr;
|
|---|
| 50 |
|
|---|
| [0070aa] | 51 | /** Cstor of QtObservedMolecule.
|
|---|
| 52 | *
|
|---|
| [98c35c] | 53 | * \param _obsvalues ref to set of observed values for this instance
|
|---|
| [0070aa] | 54 | * \param _parent Qt parent to automatically destroy when parent is destroyed
|
|---|
| 55 | */
|
|---|
| [98c35c] | 56 | QtObservedMolecule(
|
|---|
| 57 | const ObservedValues_t &_obsvalues,
|
|---|
| 58 | QWidget * _parent=0);
|
|---|
| 59 |
|
|---|
| 60 | public:
|
|---|
| [0070aa] | 61 |
|
|---|
| 62 | /** Dstor of QtObservedMolecule.
|
|---|
| 63 | *
|
|---|
| 64 | */
|
|---|
| 65 | ~QtObservedMolecule();
|
|---|
| 66 |
|
|---|
| [98c35c] | 67 | // Observer functions
|
|---|
| 68 | void update(Observable *publisher);
|
|---|
| 69 | void subjectKilled(Observable *publisher);
|
|---|
| 70 | void recieveNotification(Observable *publisher, Notification_ptr notification);
|
|---|
| 71 |
|
|---|
| [0070aa] | 72 | signals:
|
|---|
| 73 |
|
|---|
| 74 | private slots:
|
|---|
| 75 |
|
|---|
| 76 |
|
|---|
| 77 | private:
|
|---|
| [98c35c] | 78 | //!> internal reference to ObservedValues held by QtObservedInstanceBoard
|
|---|
| 79 | const ObservedValues_t &obsvalues;
|
|---|
| [0070aa] | 80 | };
|
|---|
| 81 |
|
|---|
| 82 |
|
|---|
| 83 | #endif /* QTOBSERVEDMOLECULE_HPP_ */
|
|---|