logic: show subnamespaces as nodes instead of their children
This commit is contained in:
@@ -43,6 +43,14 @@ const std::vector<HierarchyCache::HierarchyNode*>& HierarchyCache::HierarchyNode
|
|||||||
return m_children;
|
return m_children;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HierarchyCache::HierarchyNode::addChildIds(std::vector<Id>* nodeIds) const
|
||||||
|
{
|
||||||
|
for (const HierarchyNode* child : m_children)
|
||||||
|
{
|
||||||
|
nodeIds->push_back(child->getNodeId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void HierarchyCache::HierarchyNode::addChildIdsRecursive(std::vector<Id>* nodeIds, std::vector<Id>* edgeIds) const
|
void HierarchyCache::HierarchyNode::addChildIdsRecursive(std::vector<Id>* nodeIds, std::vector<Id>* edgeIds) const
|
||||||
{
|
{
|
||||||
for (const HierarchyNode* child : m_children)
|
for (const HierarchyNode* child : m_children)
|
||||||
@@ -122,6 +130,19 @@ void HierarchyCache::addAllChildIdsForNodeId(Id nodeId, std::vector<Id>* nodeIds
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HierarchyCache::addFirstChildIdsForNodeId(Id nodeId, std::vector<Id>* nodeIds) const
|
||||||
|
{
|
||||||
|
HierarchyNode* node = getNode(nodeId);
|
||||||
|
if (node)
|
||||||
|
{
|
||||||
|
node->addChildIds(nodeIds);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nodeIds->push_back(nodeId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void HierarchyCache::addFirstVisibleChildIdsForNodeId(Id nodeId, std::vector<Id>* nodeIds) const
|
void HierarchyCache::addFirstVisibleChildIdsForNodeId(Id nodeId, std::vector<Id>* nodeIds) const
|
||||||
{
|
{
|
||||||
HierarchyNode* node = getNode(nodeId);
|
HierarchyNode* node = getNode(nodeId);
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public:
|
|||||||
Id getLastVisibleParentNodeId(Id nodeId) const;
|
Id getLastVisibleParentNodeId(Id nodeId) const;
|
||||||
|
|
||||||
void addAllChildIdsForNodeId(Id nodeId, std::vector<Id>* nodeIds, std::vector<Id>* edgeIds) const;
|
void addAllChildIdsForNodeId(Id nodeId, std::vector<Id>* nodeIds, std::vector<Id>* edgeIds) const;
|
||||||
|
void addFirstChildIdsForNodeId(Id nodeId, std::vector<Id>* nodeIds) const;
|
||||||
void addFirstVisibleChildIdsForNodeId(Id nodeId, std::vector<Id>* nodeIds) const;
|
void addFirstVisibleChildIdsForNodeId(Id nodeId, std::vector<Id>* nodeIds) const;
|
||||||
|
|
||||||
bool isChildOfVisibleNodeOrInvisible(Id nodeId) const;
|
bool isChildOfVisibleNodeOrInvisible(Id nodeId) const;
|
||||||
@@ -38,6 +39,7 @@ private:
|
|||||||
void addChild(HierarchyNode* child);
|
void addChild(HierarchyNode* child);
|
||||||
const std::vector<HierarchyNode*>& getChildren() const;
|
const std::vector<HierarchyNode*>& getChildren() const;
|
||||||
|
|
||||||
|
void addChildIds(std::vector<Id>* nodeIds) const;
|
||||||
void addChildIdsRecursive(std::vector<Id>* nodeIds, std::vector<Id>* edgeIds) const;
|
void addChildIdsRecursive(std::vector<Id>* nodeIds, std::vector<Id>* edgeIds) const;
|
||||||
void addVisibleNodeIdsRecursive(std::vector<Id>* nodeIds) const;
|
void addVisibleNodeIdsRecursive(std::vector<Id>* nodeIds) const;
|
||||||
|
|
||||||
|
|||||||
@@ -347,7 +347,7 @@ std::shared_ptr<Graph> Storage::getGraphForActiveTokenIds(const std::vector<Id>&
|
|||||||
if (Node::intToType(node.type) == Node::NODE_NAMESPACE)
|
if (Node::intToType(node.type) == Node::NODE_NAMESPACE)
|
||||||
{
|
{
|
||||||
ids.clear();
|
ids.clear();
|
||||||
m_hierarchyCache.addFirstVisibleChildIdsForNodeId(elementId, &ids);
|
m_hierarchyCache.addFirstChildIdsForNodeId(elementId, &ids);
|
||||||
|
|
||||||
isNamespace = true;
|
isNamespace = true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user