ImagingTools Core SDK
IHierarchicalStructure.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// ImtCore includes
6#include <imtbase/IHierarchicalStructureInfo.h>
7
8
9namespace imtbase
10{
11
12
13class IOperationContext;
14
15
16class IHierarchicalStructure: virtual public IHierarchicalStructureInfo
17{
18public:
19 virtual Id InsertNewNode(
20 const QString& name,
21 const QString& description = QString(),
22 const Id& proposedNodeId = Id(),
23 const Id& parentNodeId = Id(),
24 const idoc::IDocumentMetaInfo* metaInfoPtr = nullptr,
25 const IOperationContext* operationContextPtr = nullptr) = 0;
26 virtual bool SetNodeName(
27 const Id& nodeId,
28 const QString& name,
29 const IOperationContext* operationContextPtr = nullptr) = 0;
30 virtual bool SetNodeDescription(
31 const Id& nodeId,
32 const QString& description,
33 const IOperationContext* operationContextPtr = nullptr) = 0;
34 virtual bool SetNodeMetaInfo(
35 const Id& nodeId,
36 const idoc::IDocumentMetaInfo& metaInfo,
37 const IOperationContext* operationContextPtr = nullptr) = 0;
38 virtual bool MoveNode(
39 const Id& nodeId,
40 const Id& parentNodeId,
41 const IOperationContext* operationContextPtr = nullptr) = 0;
42 virtual bool RemoveNode(
43 const Id& nodeId,
44 const IOperationContext* operationContextPtr = nullptr) = 0;
45
50 virtual bool InsertLeaf(
51 const Id& leafId,
52 const Id& nodeId,
53 const QString& leafName,
54 const IOperationContext* operationContextPtr = nullptr) = 0;
55 virtual bool MoveLeaf(
56 const Id& leafId,
57 const Id& sourceNodeId,
58 const Id& targetNodeId,
59 const IOperationContext* operationContextPtr = nullptr) = 0;
60 virtual bool RemoveLeaf(
61 const Id& leafId,
62 const Id& nodeId,
63 const IOperationContext* operationContextPtr = nullptr) = 0;
64};
65
66
67} // namespace imtbase
68
69