6#include <idoc/IDocumentManager.h>
7#include <idoc/IUndoManager.h>
8#include <ilog/TLoggerCompWrap.h>
11#include <imtdoc/CDocumentManagerBase.h>
12#include <imtdoc/IDocumentNameProvider.h>
13#include <imtdoc/IDocumentValidator.h>
20class CDocumentManagerCompBase:
public ilog::CLoggerComponentBase,
virtual public imtdoc::CDocumentManagerBase
23 typedef ilog::CLoggerComponentBase BaseClass;
24 typedef imtdoc::CDocumentManagerBase BaseClass2;
26 I_BEGIN_BASE_COMPONENT(CDocumentManagerCompBase)
27 I_ASSIGN_MULTI_0(m_handlerCompPtr,
"DocumentManagerEventHandler",
"Document manager event handler",
false);
28 I_ASSIGN_MULTI_0(m_objectTypeIdsAttrPtr,
"ObjectTypeIdList",
"List of the object type-IDs according to the list of factories ('ObjectFactories')",
true);
29 I_ASSIGN(m_undoManagerFactPtr,
"UndoManager",
"Factory of the undo manager",
false,
"UndoManager");
30 I_ASSIGN_MULTI_0(m_documentNameProviderCompPtr,
"DocumentNameProviders",
"List of document name providers related to registered type-IDs ('ObjectTypeIdList')",
false);
31 I_ASSIGN_MULTI_0(m_objectFactListCompPtr,
"ObjectFactories",
"List of object factories related to registered type-IDs ('ObjectTypeIdList')",
true);
32 I_ASSIGN_MULTI_0(m_documentValidatorCompPtr,
"DocumentValidators",
"List of document data validators related to registered type-IDs ('ObjectTypeIdList')",
false);
37 virtual QList<imtdoc::IDocumentManagerEventHandler*> GetDocumentManagerEventHandlers()
const override;
38 virtual istd::IChangeableSharedPtr CreateObject(
const QByteArray& typeId)
const override;
39 virtual idoc::IUndoManagerSharedPtr CreateUndoManager()
const override;
40 virtual QString GetDefaultDocumentName(
const WorkingDocument& document)
const override;
41 virtual bool HasDocumentNameProvider(
const QByteArray& typeId)
const override;
42 virtual bool ValidateDocumentData(
43 const WorkingDocument& document,
44 OperationStatus& status,
45 QString* errorMessage =
nullptr)
const override;
49 static constexpr int kValidationFailureWarningId = 170000000;
50 static constexpr int kValidationFailureWithoutMessageWarningId = 170000001;
52 int GetObjectFactoryIndex(
const QByteArray& typeId)
const;
53 const imtdoc::IDocumentNameProvider* GetDocumentNameProvider(
const QByteArray& typeId)
const;
54 const imtdoc::IDocumentValidator* GetDocumentValidator(
const QByteArray& typeId)
const;
57 I_MULTIREF(imtdoc::IDocumentManagerEventHandler, m_handlerCompPtr);
58 I_MULTIATTR(QByteArray, m_objectTypeIdsAttrPtr);
59 I_FACT(idoc::IUndoManager, m_undoManagerFactPtr);
60 I_MULTIREF(imtdoc::IDocumentNameProvider, m_documentNameProviderCompPtr);
61 I_MULTIFACT(istd::IChangeable, m_objectFactListCompPtr);
62 I_MULTIREF(imtdoc::IDocumentValidator, m_documentValidatorCompPtr);