|
ACF $AcfVersion:0$
|
Basic implementation for a single model observer. More...
#include <CSingleModelObserverBase.h>
Public Types | |
| typedef imod::IModel | ModelType |
Public Member Functions | |
| CSingleModelObserverBase () | |
| virtual | ~CSingleModelObserverBase () |
| imod::IModel * | GetObservedModel () const |
| Get access to observed model. | |
| imod::IModel * | GetModelPtr () const |
| Get access to observed model. | |
| void | EnsureModelDetached () |
| Make sure this observer is detached. | |
| void | SetObservedIds (const istd::IChangeable::ChangeSet &changeMask) |
| Set list of ID's beeing observed. | |
| virtual bool | IsModelAttached (const imod::IModel *modelPtr=NULL) const override |
| Checks if the specified model is currently attached to this observer. | |
| virtual bool | OnModelAttached (imod::IModel *modelPtr, istd::IChangeable::ChangeSet &changeMask) override |
| Callback invoked when an observable model is about to be attached to this observer. | |
| virtual bool | OnModelDetached (imod::IModel *modelPtr) override |
| Callback invoked when an observable model is about to be detached from this observer. | |
| virtual void | BeforeUpdate (imod::IModel *modelPtr) override |
| Callback invoked before an update of the observer's content occurs. | |
| virtual void | AfterUpdate (imod::IModel *modelPtr, const istd::IChangeable::ChangeSet &changeSet) override |
| Callback invoked after an update of the observer's content occurs. | |
Public Member Functions inherited from istd::IPolymorphic | |
| virtual | ~IPolymorphic () |
Protected Member Functions | |
| void | SetModelPtr (imod::IModel *modelPtr) |
| Set internal model pointer to specified value. | |
| virtual void | OnUpdate (const istd::IChangeable::ChangeSet &changeSet) |
| Called on update of observed model. | |
Static Protected Attributes | |
| static const istd::IChangeable::ChangeSet | s_undoChanges |
Basic implementation for a single model observer.
Derrived implementations can reimplement simplified OnUpdate method to be notified about model changes.
Definition at line 22 of file CSingleModelObserverBase.h.
Definition at line 25 of file CSingleModelObserverBase.h.
| imod::CSingleModelObserverBase::CSingleModelObserverBase | ( | ) |
|
virtual |
|
overridevirtual |
Callback invoked after an update of the observer's content occurs.
This is the primary notification method where observers react to model changes. It's called after the model has finished updating its state. The implementation should examine the changeSet to determine what changed and update accordingly.
| modelPtr | Pointer to the model that has changed |
| changeSet | Contains information about what changed in the model. Use changeSet.Contains(changeId) to check for specific changes. The changeSet respects the mask specified in OnModelAttached(). |
Implements imod::IObserver.
Reimplemented in idoc::CSelectedDocModelBinderComp, idoc::CSerializedUndoManagerComp, iqt2d::CSelectableSceneExtenderComp, iqtgui::TGuiObserverWrap< CViewProviderGuiComp, iview::CImageShape >, iqtgui::TGuiObserverWrap< iqtgui::CComposedGuiComp, imod::TSingleModelObserverBase< iprm::IParamsSet > >, iqtgui::TGuiObserverWrap< iqtgui::TDesignerGuiCompBase< UI, QWidget >, imod::TSingleModelObserverBase< Model > >, iqtgui::TGuiObserverWrap< iqtgui::TGuiComponentBase< QLabel >, imod::TSingleModelObserverBase< istd::IInformationProvider > >, iqtgui::TGuiObserverWrap< iqtgui::TGuiComponentBase< QTextEdit >, imod::TSingleModelObserverBase< idoc::ITextDocument > >, iqtgui::TGuiObserverWrap< iqtgui::TGuiComponentBase< QWidget >, imod::TSingleModelObserverBase< idoc::IDocumentMetaInfo > >, iqtgui::TGuiObserverWrap< iqtgui::TGuiComponentBase< QWidget >, imod::TSingleModelObserverBase< iimg::IMultiBitmapProvider > >, iqtgui::TGuiObserverWrap< TGuiComponentBase< ItemWidgetClass >, imod::TSingleModelObserverBase< ibase::IQtItemModelProvider > >, iqtgui::TGuiObserverWrap< TGuiComponentBase< QTableView >, imod::TSingleModelObserverBase< ibase::IQtItemModelProvider > >, and iview::CImageShape.
|
overridevirtual |
Callback invoked before an update of the observer's content occurs.
This method is called at the start of a model update cycle, before any data actually changes. It allows the observer to prepare for the update, such as saving current state for comparison or disabling UI updates temporarily.
| modelPtr | Pointer to the model that is about to change |
Implements imod::IObserver.
Reimplemented in idoc::CSelectedDocModelBinderComp, and idoc::CSerializedUndoManagerComp.
| void imod::CSingleModelObserverBase::EnsureModelDetached | ( | ) |
Make sure this observer is detached.
It calls model method DetachObserver() if model is available.
|
inline |
Get access to observed model.
GetObservedModel instead. Definition at line 91 of file CSingleModelObserverBase.h.
|
inline |
Get access to observed model.
Definition at line 85 of file CSingleModelObserverBase.h.
Referenced by iview::CLineShape::EnsurePointsAreValid().
|
inlineoverridevirtual |
Checks if the specified model is currently attached to this observer.
This method allows querying whether a specific model is being observed, or whether any model at all is attached.
| modelPtr | Pointer to the model object to check. If nullptr, checks whether any model is attached to this observer. |
Implements imod::IObserver.
Definition at line 99 of file CSingleModelObserverBase.h.
References NULL.
|
overridevirtual |
Callback invoked when an observable model is about to be attached to this observer.
This method is called by the model when attempting to establish an observer relationship. The implementation should:
| modelPtr | Pointer to the model object being attached. Never nullptr. |
| changeMask | Output parameter where the observer specifies which change types it wants to be notified about. Set the appropriate change flags using changeMask.Set(changeId). An empty mask means the observer wants all changes. |
Implements imod::IObserver.
Reimplemented in idoc::CSerializedUndoManagerComp, imod::TSingleModelObserverBase< ModelInterface >, imod::TSingleModelObserverBase< CircleBasedModel >, imod::TSingleModelObserverBase< i2d::CAffineTransformation2d >, imod::TSingleModelObserverBase< i2d::CAnnulus >, imod::TSingleModelObserverBase< i2d::CAnnulusSegment >, imod::TSingleModelObserverBase< i2d::CArc >, imod::TSingleModelObserverBase< i2d::CCircle >, imod::TSingleModelObserverBase< i2d::CLine2d >, imod::TSingleModelObserverBase< i2d::COrientedCircle >, imod::TSingleModelObserverBase< i2d::CPolygon >, imod::TSingleModelObserverBase< i2d::CPolyline >, imod::TSingleModelObserverBase< i2d::CPosition2d >, imod::TSingleModelObserverBase< i2d::CQuadrangle >, imod::TSingleModelObserverBase< i2d::CRectangle >, imod::TSingleModelObserverBase< i2d::CTubePolyline >, imod::TSingleModelObserverBase< i2d::ICalibration2d >, imod::TSingleModelObserverBase< IAb >, imod::TSingleModelObserverBase< ibase::ICommandsProvider >, imod::TSingleModelObserverBase< ibase::IQtItemModelProvider >, imod::TSingleModelObserverBase< ibase::IRuntimeStatusProvider >, imod::TSingleModelObserverBase< idoc::IDocumentManager >, imod::TSingleModelObserverBase< idoc::IDocumentMetaInfo >, imod::TSingleModelObserverBase< idoc::ITextDocument >, imod::TSingleModelObserverBase< idoc::IUndoManager >, imod::TSingleModelObserverBase< IDocumentManager >, imod::TSingleModelObserverBase< ifile::IFileListProvider >, imod::TSingleModelObserverBase< ifile::IFileNameParam >, imod::TSingleModelObserverBase< iimg::IBitmap >, imod::TSingleModelObserverBase< iimg::IMultiBitmapProvider >, imod::TSingleModelObserverBase< ilog::IMessageContainer >, imod::TSingleModelObserverBase< imod::IModel >, imod::TSingleModelObserverBase< iprm::IEnableableParam >, imod::TSingleModelObserverBase< iprm::INameParam >, imod::TSingleModelObserverBase< iprm::IOptionsList >, imod::TSingleModelObserverBase< iprm::IOptionsManager >, imod::TSingleModelObserverBase< iprm::IParamsManager >, imod::TSingleModelObserverBase< iprm::IParamsSet >, imod::TSingleModelObserverBase< iprm::ISelectionParam >, imod::TSingleModelObserverBase< iprm::IVariableParam >, imod::TSingleModelObserverBase< iser::ISerializable >, imod::TSingleModelObserverBase< IShapeStatusInfo >, imod::TSingleModelObserverBase< istd::IChangeable >, imod::TSingleModelObserverBase< istd::IInformationProvider >, imod::TSingleModelObserverBase< Model >, imod::TSingleModelObserverBase< PolygonBasedModel >, imod::TSingleModelObserverBase< ShapeModel >, iqt2d::CSelectableSceneExtenderComp, iqtdoc::CMainWindowGuiComp, iqtgui::TGuiObserverWrap< CViewProviderGuiComp, iview::CImageShape >, iqtgui::TGuiObserverWrap< iqtgui::CComposedGuiComp, imod::TSingleModelObserverBase< iprm::IParamsSet > >, iqtgui::TGuiObserverWrap< iqtgui::TDesignerGuiCompBase< UI, QWidget >, imod::TSingleModelObserverBase< Model > >, iqtgui::TGuiObserverWrap< iqtgui::TGuiComponentBase< QLabel >, imod::TSingleModelObserverBase< istd::IInformationProvider > >, iqtgui::TGuiObserverWrap< iqtgui::TGuiComponentBase< QTextEdit >, imod::TSingleModelObserverBase< idoc::ITextDocument > >, iqtgui::TGuiObserverWrap< iqtgui::TGuiComponentBase< QWidget >, imod::TSingleModelObserverBase< idoc::IDocumentMetaInfo > >, iqtgui::TGuiObserverWrap< iqtgui::TGuiComponentBase< QWidget >, imod::TSingleModelObserverBase< iimg::IMultiBitmapProvider > >, iqtgui::TGuiObserverWrap< TGuiComponentBase< ItemWidgetClass >, imod::TSingleModelObserverBase< ibase::IQtItemModelProvider > >, iqtgui::TGuiObserverWrap< TGuiComponentBase< QTableView >, imod::TSingleModelObserverBase< ibase::IQtItemModelProvider > >, iview::CAffineTransformation2dShape, iview::CAnnulusSegmentShape, iview::CAnnulusShape, iview::CArcShape, iview::CCircleShape, iview::CDistanceToolShape, iview::CGraphPlotShape, iview::CImageShape, iview::CInteractiveShapeBase, iview::CLabelShape, iview::CLineShape, iview::COrientedCircleShape, iview::CParallelogramShape, iview::CPinShape, iview::CPolygonShape, iview::CPolylineShape, iview::CPolypointShape, iview::CRectangleShape, iview::CShapeBase, and iview::CSplineShape.
|
overridevirtual |
Callback invoked when an observable model is about to be detached from this observer.
This method is called when the observer-model relationship is being terminated, either explicitly or because the model is being destroyed. The implementation should clean up any state or resources related to this model.
| modelPtr | Pointer to the model object being detached |
Implements imod::IObserver.
Reimplemented in idoc::CSerializedUndoManagerComp, imod::TSingleModelObserverBase< ModelInterface >, imod::TSingleModelObserverBase< CircleBasedModel >, imod::TSingleModelObserverBase< i2d::CAffineTransformation2d >, imod::TSingleModelObserverBase< i2d::CAnnulus >, imod::TSingleModelObserverBase< i2d::CAnnulusSegment >, imod::TSingleModelObserverBase< i2d::CArc >, imod::TSingleModelObserverBase< i2d::CCircle >, imod::TSingleModelObserverBase< i2d::CLine2d >, imod::TSingleModelObserverBase< i2d::COrientedCircle >, imod::TSingleModelObserverBase< i2d::CPolygon >, imod::TSingleModelObserverBase< i2d::CPolyline >, imod::TSingleModelObserverBase< i2d::CPosition2d >, imod::TSingleModelObserverBase< i2d::CQuadrangle >, imod::TSingleModelObserverBase< i2d::CRectangle >, imod::TSingleModelObserverBase< i2d::CTubePolyline >, imod::TSingleModelObserverBase< i2d::ICalibration2d >, imod::TSingleModelObserverBase< IAb >, imod::TSingleModelObserverBase< ibase::ICommandsProvider >, imod::TSingleModelObserverBase< ibase::IQtItemModelProvider >, imod::TSingleModelObserverBase< ibase::IRuntimeStatusProvider >, imod::TSingleModelObserverBase< idoc::IDocumentManager >, imod::TSingleModelObserverBase< idoc::IDocumentMetaInfo >, imod::TSingleModelObserverBase< idoc::ITextDocument >, imod::TSingleModelObserverBase< idoc::IUndoManager >, imod::TSingleModelObserverBase< IDocumentManager >, imod::TSingleModelObserverBase< ifile::IFileListProvider >, imod::TSingleModelObserverBase< ifile::IFileNameParam >, imod::TSingleModelObserverBase< iimg::IBitmap >, imod::TSingleModelObserverBase< iimg::IMultiBitmapProvider >, imod::TSingleModelObserverBase< ilog::IMessageContainer >, imod::TSingleModelObserverBase< imod::IModel >, imod::TSingleModelObserverBase< iprm::IEnableableParam >, imod::TSingleModelObserverBase< iprm::INameParam >, imod::TSingleModelObserverBase< iprm::IOptionsList >, imod::TSingleModelObserverBase< iprm::IOptionsManager >, imod::TSingleModelObserverBase< iprm::IParamsManager >, imod::TSingleModelObserverBase< iprm::IParamsSet >, imod::TSingleModelObserverBase< iprm::ISelectionParam >, imod::TSingleModelObserverBase< iprm::IVariableParam >, imod::TSingleModelObserverBase< iser::ISerializable >, imod::TSingleModelObserverBase< IShapeStatusInfo >, imod::TSingleModelObserverBase< istd::IChangeable >, imod::TSingleModelObserverBase< istd::IInformationProvider >, imod::TSingleModelObserverBase< Model >, imod::TSingleModelObserverBase< PolygonBasedModel >, imod::TSingleModelObserverBase< ShapeModel >, iqt2d::CSelectableSceneExtenderComp, iqtdoc::CMainWindowGuiComp, iqtgui::TGuiObserverWrap< CViewProviderGuiComp, iview::CImageShape >, iqtgui::TGuiObserverWrap< iqtgui::CComposedGuiComp, imod::TSingleModelObserverBase< iprm::IParamsSet > >, iqtgui::TGuiObserverWrap< iqtgui::TDesignerGuiCompBase< UI, QWidget >, imod::TSingleModelObserverBase< Model > >, iqtgui::TGuiObserverWrap< iqtgui::TGuiComponentBase< QLabel >, imod::TSingleModelObserverBase< istd::IInformationProvider > >, iqtgui::TGuiObserverWrap< iqtgui::TGuiComponentBase< QTextEdit >, imod::TSingleModelObserverBase< idoc::ITextDocument > >, iqtgui::TGuiObserverWrap< iqtgui::TGuiComponentBase< QWidget >, imod::TSingleModelObserverBase< idoc::IDocumentMetaInfo > >, iqtgui::TGuiObserverWrap< iqtgui::TGuiComponentBase< QWidget >, imod::TSingleModelObserverBase< iimg::IMultiBitmapProvider > >, iqtgui::TGuiObserverWrap< TGuiComponentBase< ItemWidgetClass >, imod::TSingleModelObserverBase< ibase::IQtItemModelProvider > >, iqtgui::TGuiObserverWrap< TGuiComponentBase< QTableView >, imod::TSingleModelObserverBase< ibase::IQtItemModelProvider > >, iview::CInteractiveShapeBase, and iview::CShapeBase.
|
protectedvirtual |
Called on update of observed model.
This method is designed to be overload by derrived classes.
Reimplemented in itutacf::CInterpolationTestComp, ibase::CListObserver, ibase::CObjectSynchronizerComp, idoc::CSingleDocumentManagerBase, ifile::CFileListProviderComp, ilog::CLogRouterComp, imod::CMultiModelDispatcherBase::ObserverProxy, iprm::CManagerParamsSetShadowerComp, iprm::CSelectionParam::ConstraintsObserver, iqt::CTranslationManagerComp::LanguageSelectionObserver, iqtdoc::CDocumentImportExportCommandComp, iqtdoc::CExternalOpenDocumentCommandComp, iqtdoc::CMainWindowGuiComp, iqtdoc::CSingletonDocApplicationComp, iqtdoc::CUndoManagerCommandsProviderComp, iqtgui::CCommandBasedSelectionControllerComp, iqtgui::CCommandsToolBarGuiComp, iqtgui::CGuiApplicationComp, and iview::CShapeBase.
|
inlineprotected |
Set internal model pointer to specified value.
Definition at line 111 of file CSingleModelObserverBase.h.
| void imod::CSingleModelObserverBase::SetObservedIds | ( | const istd::IChangeable::ChangeSet & | changeMask | ) |
Set list of ID's beeing observed.
|
staticprotected |
Definition at line 72 of file CSingleModelObserverBase.h.