From 3950da7999f1b3746ea33f8b7021deee5017a719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eberhard=20Gr=C3=A4ther?= Date: Mon, 29 Jun 2020 19:41:12 +0200 Subject: [PATCH] src: Rename aggregation edge to bundled edges (#1051) The term aggregation is misleading. Bundled edges is a better definition for this type of edge. closes #962 --- bin/app/data/color_scheme_template.xml | 2 +- bin/app/data/color_schemes/bad_rainbow.xml | 2 +- bin/app/data/color_schemes/bright.xml | 2 +- bin/app/data/color_schemes/dark.xml | 2 +- ...aggregation.png => edge_bundled_edges.png} | Bin docs/documentation/index.html | 6 +- src/lib/CMakeLists.txt | 4 +- .../controller/ActivationController.cpp | 6 +- .../controller/BookmarkController.cpp | 8 +- .../component/controller/CodeController.cpp | 2 +- .../component/controller/GraphController.cpp | 70 +++++++++--------- .../controller/UndoRedoController.cpp | 4 +- .../controller/helper/BucketLayouter.cpp | 4 +- .../component/controller/helper/DummyEdge.h | 28 +++---- src/lib/component/view/GraphViewStyle.cpp | 2 +- src/lib/data/graph/Edge.cpp | 16 ++-- src/lib/data/graph/Edge.h | 2 +- .../TokenComponentAggregation.h | 42 ----------- ...ion.cpp => TokenComponentBundledEdges.cpp} | 22 +++--- .../TokenComponentBundledEdges.h | 42 +++++++++++ src/lib/data/storage/PersistentStorage.cpp | 50 ++++++------- src/lib/data/storage/PersistentStorage.h | 4 +- .../type/activation/MessageActivateTokens.h | 8 +- .../type/graph/MessageActivateEdge.h | 8 +- src/lib_gui/qt/graphics/GraphFocusHandler.cpp | 2 +- src/lib_gui/qt/graphics/graph/QtGraphEdge.cpp | 37 +++++---- src/lib_gui/qt/graphics/graph/QtGraphEdge.h | 9 +-- src/lib_gui/qt/view/QtCustomTrailView.cpp | 2 +- src/lib_gui/qt/view/QtGraphView.cpp | 14 ++-- src/lib_gui/qt/view/QtGraphView.h | 2 +- testing/graph_view/data/interaction_tests.cpp | 4 +- .../keyboard_controls/data/graph_tests.cpp | 6 +- .../keyboard_controls/data/history_tests.cpp | 6 +- 33 files changed, 208 insertions(+), 210 deletions(-) rename docs/documentation/img/{edge_aggregation.png => edge_bundled_edges.png} (100%) delete mode 100644 src/lib/data/graph/token_component/TokenComponentAggregation.h rename src/lib/data/graph/token_component/{TokenComponentAggregation.cpp => TokenComponentBundledEdges.cpp} (52%) create mode 100644 src/lib/data/graph/token_component/TokenComponentBundledEdges.h diff --git a/bin/app/data/color_scheme_template.xml b/bin/app/data/color_scheme_template.xml index 4da0167f..cb18c96f 100644 --- a/bin/app/data/color_scheme_template.xml +++ b/bin/app/data/color_scheme_template.xml @@ -234,7 +234,7 @@ - + diff --git a/bin/app/data/color_schemes/bad_rainbow.xml b/bin/app/data/color_schemes/bad_rainbow.xml index c741ac5e..0cf61a5b 100644 --- a/bin/app/data/color_schemes/bad_rainbow.xml +++ b/bin/app/data/color_schemes/bad_rainbow.xml @@ -499,7 +499,7 @@ #4E82F6 #4E82F6 - #666666 + #666666 diff --git a/bin/app/data/color_schemes/bright.xml b/bin/app/data/color_schemes/bright.xml index 95adc1ad..556b9d07 100644 --- a/bin/app/data/color_schemes/bright.xml +++ b/bin/app/data/color_schemes/bright.xml @@ -467,7 +467,7 @@ #719660 #719660 - #CCC + #CCC diff --git a/bin/app/data/color_schemes/dark.xml b/bin/app/data/color_schemes/dark.xml index bc77ef45..56257050 100644 --- a/bin/app/data/color_schemes/dark.xml +++ b/bin/app/data/color_schemes/dark.xml @@ -470,7 +470,7 @@ #247368 #247368 - #4D4D4D + #4D4D4D diff --git a/docs/documentation/img/edge_aggregation.png b/docs/documentation/img/edge_bundled_edges.png similarity index 100% rename from docs/documentation/img/edge_aggregation.png rename to docs/documentation/img/edge_bundled_edges.png diff --git a/docs/documentation/index.html b/docs/documentation/index.html index 295b00eb..4b4b8634 100644 --- a/docs/documentation/index.html +++ b/docs/documentation/index.html @@ -354,7 +354,7 @@
@@ -1565,13 +1565,13 @@ Method Override Template Specialization & Template Argument Use Template Member Specialization - Aggregation: Bundles multiple edges between the child nodes of the 2 nodes. The thickness gives an impression of how many edges are bundled. Hover the edge to get the number of bundled edges. + Bundled Edges: Bundles multiple edges between the child nodes of the 2 nodes. The thickness gives an impression of how many edges are bundled. Hover the edge to get the number of bundled edges. Interactions: diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 1be99114..38d225b7 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -147,8 +147,8 @@ add_files( data/graph/token_component/TokenComponentAbstraction.h data/graph/token_component/TokenComponentAccess.cpp data/graph/token_component/TokenComponentAccess.h - data/graph/token_component/TokenComponentAggregation.cpp - data/graph/token_component/TokenComponentAggregation.h + data/graph/token_component/TokenComponentBundledEdges.cpp + data/graph/token_component/TokenComponentBundledEdges.h data/graph/token_component/TokenComponentConst.cpp data/graph/token_component/TokenComponentConst.h data/graph/token_component/TokenComponentFilePath.cpp diff --git a/src/lib/component/controller/ActivationController.cpp b/src/lib/component/controller/ActivationController.cpp index b3bd2587..a4ddac6f 100644 --- a/src/lib/component/controller/ActivationController.cpp +++ b/src/lib/component/controller/ActivationController.cpp @@ -24,12 +24,12 @@ void ActivationController::clear() {} void ActivationController::handleMessage(MessageActivateEdge* message) { - if (message->isAggregation()) + if (message->isBundledEdges()) { MessageActivateTokens m(message); - m.tokenIds = message->aggregationIds; + m.tokenIds = message->bundledEdgesIds; m.setKeepContent(false); - m.isAggregation = true; + m.isBundledEdges = true; m.dispatchImmediately(); } else diff --git a/src/lib/component/controller/BookmarkController.cpp b/src/lib/component/controller/BookmarkController.cpp index 1ecbd6d6..12ec1397 100644 --- a/src/lib/component/controller/BookmarkController.cpp +++ b/src/lib/component/controller/BookmarkController.cpp @@ -209,10 +209,10 @@ void BookmarkController::activateBookmark(const std::shared_ptr bookma else { MessageActivateEdge activateEdge( - 0, Edge::EdgeType::EDGE_AGGREGATION, sourceName, targetName); - for (const Id aggregatedEdgeId: edgeBookmark->getEdgeIds()) + 0, Edge::EdgeType::EDGE_BUNDLED_EDGES, sourceName, targetName); + for (const Id bundledEdgeId: edgeBookmark->getEdgeIds()) { - activateEdge.aggregationIds.push_back(aggregatedEdgeId); + activateEdge.bundledEdgesIds.push_back(bundledEdgeId); } activateEdge.dispatch(); } @@ -318,7 +318,7 @@ void BookmarkController::handleMessage(MessageActivateTokens* message) Id tabId = message->getSchedulerId(); m_activeEdgeIds[tabId].clear(); - if (message->isEdge || message->isAggregation) + if (message->isEdge || message->isBundledEdges) { m_activeEdgeIds[tabId] = message->tokenIds; diff --git a/src/lib/component/controller/CodeController.cpp b/src/lib/component/controller/CodeController.cpp index b43f2ba1..9266fa49 100644 --- a/src/lib/component/controller/CodeController.cpp +++ b/src/lib/component/controller/CodeController.cpp @@ -199,7 +199,7 @@ void CodeController::handleMessage(MessageActivateTokens* message) params.clearSnippets = true; Id declarationId = 0; // 0 means that no token is found. - if (!message->isAggregation) + if (!message->isBundledEdges) { std::vector activeTokenIds; for (Id tokenId: params.activeTokenIds) diff --git a/src/lib/component/controller/GraphController.cpp b/src/lib/component/controller/GraphController.cpp index 05a9e99b..3f4d0cf7 100644 --- a/src/lib/component/controller/GraphController.cpp +++ b/src/lib/component/controller/GraphController.cpp @@ -98,7 +98,7 @@ void GraphController::handleMessage(MessageActivateTokens* message) if (message->isEdge || message->keepContent()) { m_activeEdgeIds = message->tokenIds; - if (message->isAggregation) // only on redo + if (message->isBundledEdges) // only on redo { m_activeEdgeIds.clear(); } @@ -119,7 +119,7 @@ void GraphController::handleMessage(MessageActivateTokens* message) getView()->activateEdge(edgeId); return; } - else if (message->isAggregation) + else if (message->isBundledEdges) { m_activeNodeIds.clear(); m_activeEdgeIds = message->tokenIds; @@ -166,7 +166,7 @@ void GraphController::handleMessage(MessageActivateTokens* message) { bundleNodes(); } - else if (message->isAggregation) + else if (message->isBundledEdges) { bool isInheritanceChain = true; for (const auto& edge: m_dummyEdges) @@ -489,22 +489,22 @@ void GraphController::handleMessage(MessageGraphNodeExpand* message) { std::shared_ptr edge = m_dummyEdges[i]; - if (edge && edge->data && edge->data->isType(Edge::EDGE_AGGREGATION) && + if (edge && edge->data && edge->data->isType(Edge::EDGE_BUNDLED_EDGES) && (edge->targetId == dummyNode->tokenId || edge->ownerId == dummyNode->tokenId)) { - std::vector aggregationIds = utility::toVector( - edge->data->getComponent()->getAggregationIds()); + std::vector bundledEdgesIds = utility::toVector( + edge->data->getComponent()->getBundledEdgesIds()); - if (m_graph->getEdgeById(aggregationIds[0]) != nullptr) + if (m_graph->getEdgeById(bundledEdgesIds[0]) != nullptr) { break; } - std::shared_ptr aggregationGraph = + std::shared_ptr bundledEdgesGraph = m_storageAccess->getGraphForActiveTokenIds( - aggregationIds, std::vector()); + bundledEdgesIds, std::vector()); - aggregationGraph->forEachEdge([this](Edge* e) { + bundledEdgesGraph->forEachEdge([this](Edge* e) { if (!e->isType(Edge::EDGE_MEMBER)) { m_dummyEdges.push_back(std::make_shared( @@ -1085,25 +1085,25 @@ void GraphController::bundleNodes() bundleInfo->isReferencing = false; } - if (e->isType(Edge::EDGE_AGGREGATION)) + if (e->isType(Edge::EDGE_BUNDLED_EDGES)) { - TokenComponentAggregation::Direction dir = - e->getComponent()->getDirection(); + TokenComponentBundledEdges::Direction dir = + e->getComponent()->getDirection(); - if (dir == TokenComponentAggregation::DIRECTION_NONE) + if (dir == TokenComponentBundledEdges::DIRECTION_NONE) { bundleInfo->isReferenced = true; bundleInfo->isReferencing = true; } else if ( - (dir == TokenComponentAggregation::DIRECTION_FORWARD && e->getFrom() == n) || - (dir == TokenComponentAggregation::DIRECTION_BACKWARD && e->getTo() == n)) + (dir == TokenComponentBundledEdges::DIRECTION_FORWARD && e->getFrom() == n) || + (dir == TokenComponentBundledEdges::DIRECTION_BACKWARD && e->getTo() == n)) { bundleInfo->isReferencing = true; } else if ( - (dir == TokenComponentAggregation::DIRECTION_FORWARD && e->getTo() == n) || - (dir == TokenComponentAggregation::DIRECTION_BACKWARD && e->getFrom() == n)) + (dir == TokenComponentBundledEdges::DIRECTION_FORWARD && e->getTo() == n) || + (dir == TokenComponentBundledEdges::DIRECTION_BACKWARD && e->getFrom() == n)) { bundleInfo->isReferenced = true; } @@ -2041,7 +2041,7 @@ Vec4i GraphController::layoutNestingRecursive(DummyNode* node, int relayoutAcces break; case GroupLayout::BUCKET: - if (node->hasActiveSubNode() || !m_activeNodeIds.size() /* aggregations */) + if (node->hasActiveSubNode() || !m_activeNodeIds.size() /* bundled edges */) { BucketLayouter grid(viewSize); grid.createBuckets(node->subNodes, m_dummyEdges); @@ -2446,25 +2446,25 @@ void GraphController::createLegendGraph() addEdge(Edge::EDGE_INHERITANCE, derived, main); { - Edge* edge = addEdge(Edge::EDGE_AGGREGATION, user, main); - std::shared_ptr aggregationComp = - std::make_shared(); + Edge* edge = addEdge(Edge::EDGE_BUNDLED_EDGES, user, main); + std::shared_ptr bundledEdgesComp = + std::make_shared(); for (size_t i = 0; i < 10; i++) { - aggregationComp->addAggregationId(++id, true); + bundledEdgesComp->addBundledEdgesId(++id, true); } - edge->addComponent(aggregationComp); + edge->addComponent(bundledEdgesComp); } { - Edge* edge = addEdge(Edge::EDGE_AGGREGATION, main, usee); - std::shared_ptr aggregationComp = - std::make_shared(); + Edge* edge = addEdge(Edge::EDGE_BUNDLED_EDGES, main, usee); + std::shared_ptr bundledEdgesComp = + std::make_shared(); for (size_t i = 0; i < 10; i++) { - aggregationComp->addAggregationId(++id, true); + bundledEdgesComp->addBundledEdgesId(++id, true); } - edge->addComponent(aggregationComp); + edge->addComponent(bundledEdgesComp); } Node* publicMethod = addNode(NODE_METHOD, L"public method", Vec2i()); @@ -2622,17 +2622,17 @@ void GraphController::createLegendGraph() } { - addText(L"aggregation", 0, Vec2i(x, y + dy * ++i)); + addText(L"bundled edges", 0, Vec2i(x, y + dy * ++i)); Node* typeA = addNode(NODE_TYPE, L"Type A", Vec2i(x, y + dy * ++i)); Node* typeB = addNode(NODE_TYPE, L"Type B", Vec2i(x + dx, y + dy * i)); - Edge* edge = addEdge(Edge::EDGE_AGGREGATION, typeA, typeB); - std::shared_ptr aggregationComp = - std::make_shared(); + Edge* edge = addEdge(Edge::EDGE_BUNDLED_EDGES, typeA, typeB); + std::shared_ptr bundledEdgesComp = + std::make_shared(); for (size_t i = 0; i < 10; i++) { - aggregationComp->addAggregationId(++id, true); + bundledEdgesComp->addBundledEdgesId(++id, true); } - edge->addComponent(aggregationComp); + edge->addComponent(bundledEdgesComp); } { diff --git a/src/lib/component/controller/UndoRedoController.cpp b/src/lib/component/controller/UndoRedoController.cpp index 29406e8d..e3bb295d 100644 --- a/src/lib/component/controller/UndoRedoController.cpp +++ b/src/lib/component/controller/UndoRedoController.cpp @@ -349,7 +349,7 @@ void UndoRedoController::handleMessage(MessageIndexingFinished* message) MessageActivateTokens* msg = dynamic_cast(command.message.get()); if (msg) { - if (msg->isAggregation) + if (msg->isBundledEdges) { continue; } @@ -498,7 +498,7 @@ void UndoRedoController::replayCommand(std::list::iterator it) { MessageActivateTokens* msg = dynamic_cast(m.get()); - if (!msg->isEdge && !msg->isAggregation) + if (!msg->isEdge && !msg->isBundledEdges) { std::vector matches = msg->getSearchMatches(); msg->searchMatches.clear(); diff --git a/src/lib/component/controller/helper/BucketLayouter.cpp b/src/lib/component/controller/helper/BucketLayouter.cpp index 022db39d..94e5e26f 100644 --- a/src/lib/component/controller/helper/BucketLayouter.cpp +++ b/src/lib/component/controller/helper/BucketLayouter.cpp @@ -310,9 +310,9 @@ void BucketLayouter::createBuckets( } } else if ( - edge->getDirection() == TokenComponentAggregation::DIRECTION_BACKWARD || + edge->getDirection() == TokenComponentBundledEdges::DIRECTION_BACKWARD || // put nodes with bidirectional edges on the left - (edge->getDirection() == TokenComponentAggregation::DIRECTION_NONE && + (edge->getDirection() == TokenComponentBundledEdges::DIRECTION_NONE && !target->bundleInfo.isReferencing && !target->bundleInfo.isReferenced)) { std::swap(owner, target); diff --git a/src/lib/component/controller/helper/DummyEdge.h b/src/lib/component/controller/helper/DummyEdge.h index 33c56bc8..ad27e286 100644 --- a/src/lib/component/controller/helper/DummyEdge.h +++ b/src/lib/component/controller/helper/DummyEdge.h @@ -5,7 +5,7 @@ #include "types.h" #include "Edge.h" -#include "TokenComponentAggregation.h" +#include "TokenComponentBundledEdges.h" class Edge; @@ -21,7 +21,7 @@ struct DummyEdge , active(false) , layoutHorizontal(true) , weight(0) - , direction(TokenComponentAggregation::DIRECTION_INVALID) + , direction(TokenComponentBundledEdges::DIRECTION_INVALID) { } @@ -34,7 +34,7 @@ struct DummyEdge , active(false) , layoutHorizontal(true) , weight(0) - , direction(TokenComponentAggregation::DIRECTION_INVALID) + , direction(TokenComponentBundledEdges::DIRECTION_INVALID) { } @@ -44,43 +44,43 @@ struct DummyEdge { return weight; } - else if (data->isType(Edge::EDGE_AGGREGATION)) + else if (data->isType(Edge::EDGE_BUNDLED_EDGES)) { - return data->getComponent()->getAggregationCount(); + return data->getComponent()->getBundledEdgesCount(); } return 1; } - void updateDirection(TokenComponentAggregation::Direction dir, bool invert) + void updateDirection(TokenComponentBundledEdges::Direction dir, bool invert) { if (invert) { - dir = TokenComponentAggregation::opposite(dir); + dir = TokenComponentBundledEdges::opposite(dir); } - if (direction == TokenComponentAggregation::DIRECTION_INVALID) + if (direction == TokenComponentBundledEdges::DIRECTION_INVALID) { direction = dir; } else if (direction != dir) { - direction = TokenComponentAggregation::DIRECTION_NONE; + direction = TokenComponentBundledEdges::DIRECTION_NONE; } } - TokenComponentAggregation::Direction getDirection() const + TokenComponentBundledEdges::Direction getDirection() const { if (!data) { return direction; } - else if (data->isType(Edge::EDGE_AGGREGATION)) + else if (data->isType(Edge::EDGE_BUNDLED_EDGES)) { - return data->getComponent()->getDirection(); + return data->getComponent()->getDirection(); } - return TokenComponentAggregation::DIRECTION_FORWARD; + return TokenComponentBundledEdges::DIRECTION_FORWARD; } Id ownerId; @@ -98,7 +98,7 @@ struct DummyEdge // BundleEdge int weight; - TokenComponentAggregation::Direction direction; + TokenComponentBundledEdges::Direction direction; }; #endif // DUMMY_EDGE_H diff --git a/src/lib/component/view/GraphViewStyle.cpp b/src/lib/component/view/GraphViewStyle.cpp index fa13cb2b..50cf59f1 100644 --- a/src/lib/component/view/GraphViewStyle.cpp +++ b/src/lib/component/view/GraphViewStyle.cpp @@ -671,7 +671,7 @@ GraphViewStyle::EdgeStyle GraphViewStyle::getStyleForEdgeType( switch (type) { - case Edge::EDGE_AGGREGATION: + case Edge::EDGE_BUNDLED_EDGES: style.width = 3; style.arrowLength = 7; style.arrowWidth = 10; diff --git a/src/lib/data/graph/Edge.cpp b/src/lib/data/graph/Edge.cpp index 3521ac1b..edb004c1 100644 --- a/src/lib/data/graph/Edge.cpp +++ b/src/lib/data/graph/Edge.cpp @@ -3,7 +3,7 @@ #include #include "Node.h" -#include "TokenComponentAggregation.h" +#include "TokenComponentBundledEdges.h" #include "logging.h" #include "utilityString.h" @@ -36,8 +36,8 @@ Edge::EdgeType Edge::intToType(int value) return EDGE_INCLUDE; case EDGE_IMPORT: return EDGE_IMPORT; - case EDGE_AGGREGATION: - return EDGE_AGGREGATION; + case EDGE_BUNDLED_EDGES: + return EDGE_BUNDLED_EDGES; case EDGE_MACRO_USAGE: return EDGE_MACRO_USAGE; case EDGE_ANNOTATION_USAGE: @@ -139,8 +139,8 @@ std::wstring Edge::getReadableTypeString(EdgeType type) return L"include"; case EDGE_IMPORT: return L"import"; - case EDGE_AGGREGATION: - return L"aggregation"; + case EDGE_BUNDLED_EDGES: + return L"bundled edges"; case EDGE_MACRO_USAGE: return L"macro use"; case EDGE_ANNOTATION_USAGE: @@ -175,10 +175,10 @@ std::wstring Edge::getAsString() const str << L"[" << getId() << L"] " << getReadableTypeString(); str << L": \"" << m_from->getName() << L"\" -> \"" + m_to->getName() << L"\""; - TokenComponentAggregation* aggregation = getComponent(); - if (aggregation) + TokenComponentBundledEdges* bundledEdges = getComponent(); + if (bundledEdges) { - str << L" " << aggregation->getAggregationCount(); + str << L" " << bundledEdges->getBundledEdgesCount(); } return str.str(); diff --git a/src/lib/data/graph/Edge.h b/src/lib/data/graph/Edge.h index 9b718fb1..0622aab5 100644 --- a/src/lib/data/graph/Edge.h +++ b/src/lib/data/graph/Edge.h @@ -25,7 +25,7 @@ public: EDGE_TEMPLATE_SPECIALIZATION = 1 << 7, EDGE_INCLUDE = 1 << 8, EDGE_IMPORT = 1 << 9, - EDGE_AGGREGATION = 1 << 10, + EDGE_BUNDLED_EDGES = 1 << 10, EDGE_MACRO_USAGE = 1 << 11, EDGE_ANNOTATION_USAGE = 1 << 12, diff --git a/src/lib/data/graph/token_component/TokenComponentAggregation.h b/src/lib/data/graph/token_component/TokenComponentAggregation.h deleted file mode 100644 index 9219c477..00000000 --- a/src/lib/data/graph/token_component/TokenComponentAggregation.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef TOKEN_COMPONENT_AGGREGATION_H -#define TOKEN_COMPONENT_AGGREGATION_H - -#include -#include - -#include "types.h" - -#include "TokenComponent.h" - -class TokenComponentAggregation: public TokenComponent -{ -public: - enum Direction - { - DIRECTION_NONE, - DIRECTION_FORWARD, - DIRECTION_BACKWARD, - DIRECTION_INVALID - }; - - static Direction opposite(Direction direction); - - TokenComponentAggregation(); - virtual ~TokenComponentAggregation(); - - virtual std::shared_ptr copy() const; - - int getAggregationCount() const; - std::set getAggregationIds() const; - - void addAggregationId(Id id, bool forward); - void removeAggregationId(Id id); - - Direction getDirection(); - -private: - std::map m_ids; - Direction m_direction; -}; - -#endif // TOKEN_COMPONENT_AGGREGATION_H diff --git a/src/lib/data/graph/token_component/TokenComponentAggregation.cpp b/src/lib/data/graph/token_component/TokenComponentBundledEdges.cpp similarity index 52% rename from src/lib/data/graph/token_component/TokenComponentAggregation.cpp rename to src/lib/data/graph/token_component/TokenComponentBundledEdges.cpp index ebd16e3b..5a4582ac 100644 --- a/src/lib/data/graph/token_component/TokenComponentAggregation.cpp +++ b/src/lib/data/graph/token_component/TokenComponentBundledEdges.cpp @@ -1,6 +1,6 @@ -#include "TokenComponentAggregation.h" +#include "TokenComponentBundledEdges.h" -TokenComponentAggregation::Direction TokenComponentAggregation::opposite(Direction direction) +TokenComponentBundledEdges::Direction TokenComponentBundledEdges::opposite(Direction direction) { if (direction == DIRECTION_FORWARD) { @@ -14,21 +14,21 @@ TokenComponentAggregation::Direction TokenComponentAggregation::opposite(Directi return direction; } -TokenComponentAggregation::TokenComponentAggregation(): m_direction(DIRECTION_INVALID) {} +TokenComponentBundledEdges::TokenComponentBundledEdges(): m_direction(DIRECTION_INVALID) {} -TokenComponentAggregation::~TokenComponentAggregation() {} +TokenComponentBundledEdges::~TokenComponentBundledEdges() {} -std::shared_ptr TokenComponentAggregation::copy() const +std::shared_ptr TokenComponentBundledEdges::copy() const { - return std::make_shared(*this); + return std::make_shared(*this); } -int TokenComponentAggregation::getAggregationCount() const +int TokenComponentBundledEdges::getBundledEdgesCount() const { return static_cast(m_ids.size()); } -std::set TokenComponentAggregation::getAggregationIds() const +std::set TokenComponentBundledEdges::getBundledEdgesIds() const { std::set ids; @@ -40,21 +40,21 @@ std::set TokenComponentAggregation::getAggregationIds() const return ids; } -void TokenComponentAggregation::addAggregationId(Id id, bool forward) +void TokenComponentBundledEdges::addBundledEdgesId(Id id, bool forward) { m_ids.emplace(id, forward ? DIRECTION_FORWARD : DIRECTION_BACKWARD); m_direction = DIRECTION_INVALID; } -void TokenComponentAggregation::removeAggregationId(Id id) +void TokenComponentBundledEdges::removeBundledEdgesId(Id id) { m_ids.erase(id); m_direction = DIRECTION_INVALID; } -TokenComponentAggregation::Direction TokenComponentAggregation::getDirection() +TokenComponentBundledEdges::Direction TokenComponentBundledEdges::getDirection() { if (m_direction != DIRECTION_INVALID) { diff --git a/src/lib/data/graph/token_component/TokenComponentBundledEdges.h b/src/lib/data/graph/token_component/TokenComponentBundledEdges.h new file mode 100644 index 00000000..326e2cd3 --- /dev/null +++ b/src/lib/data/graph/token_component/TokenComponentBundledEdges.h @@ -0,0 +1,42 @@ +#ifndef TOKEN_COMPONENT_BUNDLED_EDGES_H +#define TOKEN_COMPONENT_BUNDLED_EDGES_H + +#include +#include + +#include "types.h" + +#include "TokenComponent.h" + +class TokenComponentBundledEdges: public TokenComponent +{ +public: + enum Direction + { + DIRECTION_NONE, + DIRECTION_FORWARD, + DIRECTION_BACKWARD, + DIRECTION_INVALID + }; + + static Direction opposite(Direction direction); + + TokenComponentBundledEdges(); + virtual ~TokenComponentBundledEdges(); + + virtual std::shared_ptr copy() const; + + int getBundledEdgesCount() const; + std::set getBundledEdgesIds() const; + + void addBundledEdgesId(Id id, bool forward); + void removeBundledEdgesId(Id id); + + Direction getDirection(); + +private: + std::map m_ids; + Direction m_direction; +}; + +#endif // TOKEN_COMPONENT_BUNDLED_EDGES_H diff --git a/src/lib/data/storage/PersistentStorage.cpp b/src/lib/data/storage/PersistentStorage.cpp index c987ea2c..aff01dbb 100644 --- a/src/lib/data/storage/PersistentStorage.cpp +++ b/src/lib/data/storage/PersistentStorage.cpp @@ -19,7 +19,7 @@ #include "TextCodec.h" #include "TimeStamp.h" #include "TokenComponentAccess.h" -#include "TokenComponentAggregation.h" +#include "TokenComponentBundledEdges.h" #include "TokenComponentFilePath.h" #include "TokenComponentInheritanceChain.h" #include "TokenComponentIsAmbiguous.h" @@ -1102,8 +1102,8 @@ std::shared_ptr PersistentStorage::getGraphForActiveTokenIds( std::vector nodeIds; std::vector edgeIds; - bool addAggregations = false; - std::vector edgesToAggregate; + bool addBundledEdges = false; + std::vector edgesToBundle; bool addFileContents = false; @@ -1150,7 +1150,7 @@ std::shared_ptr PersistentStorage::getGraphForActiveTokenIds( (m_hierarchyCache.getLastVisibleParentNodeId(edge.targetNodeId) != m_hierarchyCache.getLastVisibleParentNodeId(edge.sourceNodeId))) { - edgesToAggregate.push_back(edge); + edgesToBundle.push_back(edge); } else { @@ -1164,7 +1164,7 @@ std::shared_ptr PersistentStorage::getGraphForActiveTokenIds( } else { - addAggregations = true; + addBundledEdges = true; } } } @@ -1221,9 +1221,9 @@ std::shared_ptr PersistentStorage::getGraphForActiveTokenIds( addNodesWithParentsAndEdgesToGraph(nodeIds, edgeIds, graph, true); } - if (addAggregations) + if (addBundledEdges) { - addAggregationEdgesToGraph(tokenIds[0], edgesToAggregate, graph); + addBundledEdgesToGraph(tokenIds[0], edgesToBundle, graph); } else if (addFileContents) { @@ -2968,8 +2968,8 @@ void PersistentStorage::addNodesWithParentsAndEdgesToGraph( addEdgesToGraph(utility::toVector(allEdgeIds), graph); } -void PersistentStorage::addAggregationEdgesToGraph( - Id nodeId, const std::vector& edgesToAggregate, Graph* graph) const +void PersistentStorage::addBundledEdgesToGraph( + Id nodeId, const std::vector& edgesToBundle, Graph* graph) const { TRACE(); @@ -2979,19 +2979,19 @@ void PersistentStorage::addAggregationEdgesToGraph( bool forward; }; - // build aggregation edges: + // build bundled edges: // get all children of the active node std::set childNodeIdsSet, edgeIdsSet; m_hierarchyCache.addAllChildIdsForNodeId(nodeId, &childNodeIdsSet, &edgeIdsSet); const std::vector childNodeIds = utility::toVector(childNodeIdsSet); - if (childNodeIds.size() == 0 && edgesToAggregate.size() == 0) + if (childNodeIds.size() == 0 && edgesToBundle.size() == 0) { return; } // get all edges of the children std::map> connectedNodeIds; - for (const StorageEdge& edge: edgesToAggregate) + for (const StorageEdge& edge: edgesToBundle) { bool isSource = nodeId == edge.sourceNodeId; EdgeInfo edgeInfo; @@ -3038,38 +3038,38 @@ void PersistentStorage::addAggregationEdgesToGraph( std::vector nodeIdsToAdd; for (const std::pair>& p: connectedParentNodeIds) { - const Id aggregationTargetNodeId = p.first; - if (!graph->getNodeById(aggregationTargetNodeId)) + const Id bundledEdgesTargetNodeId = p.first; + if (!graph->getNodeById(bundledEdgesTargetNodeId)) { - nodeIdsToAdd.push_back(aggregationTargetNodeId); + nodeIdsToAdd.push_back(bundledEdgesTargetNodeId); } } addNodesWithParentsAndEdgesToGraph(nodeIdsToAdd, std::vector(), graph, true); - // create aggregation edges between parents and active node + // create bundled edges between parents and active node Node* sourceNode = graph->getNodeById(nodeId); for (const std::pair>& p: connectedParentNodeIds) { - const Id aggregationTargetNodeId = p.first; + const Id bundledEdgesTargetNodeId = p.first; - Node* targetNode = graph->getNodeById(aggregationTargetNodeId); + Node* targetNode = graph->getNodeById(bundledEdgesTargetNodeId); if (!targetNode) { - LOG_ERROR("Aggregation target node not present."); + LOG_ERROR("Bundled edges target node not present."); } - std::shared_ptr componentAggregation = - std::make_shared(); + std::shared_ptr componentBundledEdges = + std::make_shared(); for (const EdgeInfo& edgeInfo: p.second) { - componentAggregation->addAggregationId(edgeInfo.edgeId, edgeInfo.forward); + componentBundledEdges->addBundledEdgesId(edgeInfo.edgeId, edgeInfo.forward); } // Set first bit to 1 to avoid collisions - const Id aggregationId = ~(~Id(0) >> 1) + *componentAggregation->getAggregationIds().begin(); + const Id bundledEdgesId = ~(~Id(0) >> 1) + *componentBundledEdges->getBundledEdgesIds().begin(); - Edge* edge = graph->createEdge(aggregationId, Edge::EDGE_AGGREGATION, sourceNode, targetNode); - edge->addComponent(componentAggregation); + Edge* edge = graph->createEdge(bundledEdgesId, Edge::EDGE_BUNDLED_EDGES, sourceNode, targetNode); + edge->addComponent(componentBundledEdges); } } diff --git a/src/lib/data/storage/PersistentStorage.h b/src/lib/data/storage/PersistentStorage.h index bf95681c..2153baba 100644 --- a/src/lib/data/storage/PersistentStorage.h +++ b/src/lib/data/storage/PersistentStorage.h @@ -246,8 +246,8 @@ private: inline void addFileNodeToGraph(const StorageNode& storageNode, Graph* const graph) const; void addNodeToGraph( const StorageNode& newNode, const NodeType& type, Graph* graph, bool addChildCount) const; - void addAggregationEdgesToGraph( - Id nodeId, const std::vector& edgesToAggregate, Graph* graph) const; + void addBundledEdgesToGraph( + Id nodeId, const std::vector& edgesToBundle, Graph* graph) const; void addFileContentsToGraph(Id fileId, Graph* graph) const; void addComponentAccessToGraph(Graph* graph) const; void addComponentIsAmbiguousToGraph(Graph* graph) const; diff --git a/src/lib/utility/messaging/type/activation/MessageActivateTokens.h b/src/lib/utility/messaging/type/activation/MessageActivateTokens.h index eb607366..2f184912 100644 --- a/src/lib/utility/messaging/type/activation/MessageActivateTokens.h +++ b/src/lib/utility/messaging/type/activation/MessageActivateTokens.h @@ -18,7 +18,7 @@ public: } MessageActivateTokens(const MessageBase* other) - : isEdge(false), isAggregation(false), isFromSearch(false) + : isEdge(false), isBundledEdges(false), isFromSearch(false) { setIsParallel(true); setKeepContent(other->keepContent()); @@ -43,10 +43,10 @@ public: std::vector getSearchMatches() const override { - if (isAggregation) + if (isBundledEdges) { SearchMatch match; - match.name = match.text = L"aggregation"; // TODO: show aggregation source and target + match.name = match.text = L"bundled edges"; // TODO: show bundled edges source and target match.searchType = SearchMatch::SEARCH_TOKEN; match.nodeType = NodeType(NODE_TYPE); return {match}; @@ -59,7 +59,7 @@ public: std::vector searchMatches; bool isEdge; - bool isAggregation; + bool isBundledEdges; bool isFromSearch; }; diff --git a/src/lib/utility/messaging/type/graph/MessageActivateEdge.h b/src/lib/utility/messaging/type/graph/MessageActivateEdge.h index 14f010ef..9600f02e 100644 --- a/src/lib/utility/messaging/type/graph/MessageActivateEdge.h +++ b/src/lib/utility/messaging/type/graph/MessageActivateEdge.h @@ -22,7 +22,7 @@ public: , sourceNameHierarchy(sourceNameHierarchy) , targetNameHierarchy(targetNameHierarchy) { - if (!isAggregation()) + if (!isBundledEdges()) { setKeepContent(true); } @@ -35,9 +35,9 @@ public: return "MessageActivateEdge"; } - bool isAggregation() const + bool isBundledEdges() const { - return type == Edge::EDGE_AGGREGATION; + return type == Edge::EDGE_BUNDLED_EDGES; } std::wstring getFullName() const @@ -58,7 +58,7 @@ public: const NameHierarchy sourceNameHierarchy; const NameHierarchy targetNameHierarchy; - std::vector aggregationIds; + std::vector bundledEdgesIds; }; #endif // MESSAGE_ACTIVATE_EDGE_H diff --git a/src/lib_gui/qt/graphics/GraphFocusHandler.cpp b/src/lib_gui/qt/graphics/GraphFocusHandler.cpp index 05a12858..25c2ccc9 100644 --- a/src/lib_gui/qt/graphics/GraphFocusHandler.cpp +++ b/src/lib_gui/qt/graphics/GraphFocusHandler.cpp @@ -406,7 +406,7 @@ QtGraphEdge* GraphFocusHandler::findNextEdge(QPointF pos, Direction direction, Q qreal distXMult = vertical ? 2.0 : 1.0; qreal distYMult = vertical ? 1.0 : 2.0; - // only use one dimension for distance calculation in aggregation graphs to not miss + // only use one dimension for distance calculation in bundled edges graphs to not miss // certain edges if (edge->isBezierEdge() && m_client->getGraphNodes().size() == 2) { diff --git a/src/lib_gui/qt/graphics/graph/QtGraphEdge.cpp b/src/lib_gui/qt/graphics/graph/QtGraphEdge.cpp index bbef2f2e..78134474 100644 --- a/src/lib_gui/qt/graphics/graph/QtGraphEdge.cpp +++ b/src/lib_gui/qt/graphics/graph/QtGraphEdge.cpp @@ -19,7 +19,6 @@ #include "QtLineItemAngled.h" #include "QtLineItemBezier.h" #include "QtLineItemStraight.h" -#include "TokenComponentAggregation.h" #include "TokenComponentInheritanceChain.h" #include "TokenComponentIsAmbiguous.h" #include "utility.h" @@ -51,7 +50,7 @@ QtGraphEdge::QtGraphEdge( bool isActive, bool isInteractive, bool horizontal, - TokenComponentAggregation::Direction direction) + TokenComponentBundledEdges::Direction direction) : m_focusHandler(focusHandler) , m_data(data) , m_owner(owner) @@ -64,7 +63,7 @@ QtGraphEdge::QtGraphEdge( { this->setCursor(Qt::PointingHandCursor); - if (m_direction == TokenComponentAggregation::DIRECTION_BACKWARD) + if (m_direction == TokenComponentBundledEdges::DIRECTION_BACKWARD) { QtGraphNode* temp = m_owner; m_owner = m_target; @@ -104,7 +103,7 @@ void QtGraphEdge::updateLine() const QtGraphNode* owner = m_owner; const QtGraphNode* target = m_target; - Edge::EdgeType type = (getData() ? getData()->getType() : Edge::EDGE_AGGREGATION); + Edge::EdgeType type = (getData() ? getData()->getType() : Edge::EDGE_BUNDLED_EDGES); GraphViewStyle::EdgeStyle style = GraphViewStyle::getStyleForEdgeType( type, m_isActive | m_isCoFocused, m_isFocused, m_isTrailEdge, isAmbiguous()); @@ -171,7 +170,7 @@ void QtGraphEdge::updateLine() ownerParentRect = rect; } - bool showArrow = m_direction != TokenComponentAggregation::DIRECTION_NONE; + bool showArrow = m_direction != TokenComponentBundledEdges::DIRECTION_NONE; QtLineItemBezier* bezier = new QtLineItemBezier(this); m_child = bezier; @@ -260,7 +259,7 @@ void QtGraphEdge::updateLine() child->setEarlyBend(true); } } - else if (type != Edge::EDGE_AGGREGATION || owner != ownerNonGroupParent || target != targetNonGroupParent) + else if (type != Edge::EDGE_BUNDLED_EDGES || owner != ownerNonGroupParent || target != targetNonGroupParent) { route = QtLineItemBase::ROUTE_HORIZONTAL; } @@ -268,9 +267,9 @@ void QtGraphEdge::updateLine() child->setRoute(route); bool showArrow = true; - if (type == Edge::EDGE_AGGREGATION) + if (type == Edge::EDGE_BUNDLED_EDGES) { - showArrow = m_direction != TokenComponentAggregation::DIRECTION_NONE; + showArrow = m_direction != TokenComponentBundledEdges::DIRECTION_NONE; } if (getData()) @@ -332,7 +331,7 @@ void QtGraphEdge::onClick() if (isExpandable()) { QtGraphNode* node = - (m_direction == TokenComponentAggregation::DIRECTION_BACKWARD ? m_owner : m_target); + (m_direction == TokenComponentBundledEdges::DIRECTION_BACKWARD ? m_owner : m_target); if (m_owner->isGroupNode()) { node = m_owner; @@ -360,18 +359,18 @@ void QtGraphEdge::onClick() MessageActivateEdge msg( getData()->getId(), - componentInheritance ? Edge::EDGE_AGGREGATION : getData()->getType(), + componentInheritance ? Edge::EDGE_BUNDLED_EDGES : getData()->getType(), getData()->getFrom()->getNameHierarchy(), getData()->getTo()->getNameHierarchy()); - if (getData()->getType() == Edge::EDGE_AGGREGATION) + if (getData()->getType() == Edge::EDGE_BUNDLED_EDGES) { - msg.aggregationIds = utility::toVector( - getData()->getComponent()->getAggregationIds()); + msg.bundledEdgesIds = utility::toVector( + getData()->getComponent()->getBundledEdgesIds()); } else if (componentInheritance) { - msg.aggregationIds = componentInheritance->inheritanceEdgeIds; + msg.bundledEdgesIds = componentInheritance->inheritanceEdgeIds; } msg.dispatch(); @@ -397,7 +396,7 @@ void QtGraphEdge::coFocusIn() if (s_focusedEdge == this) { - Edge::EdgeType type = (getData() ? getData()->getType() : Edge::EDGE_AGGREGATION); + Edge::EdgeType type = (getData() ? getData()->getType() : Edge::EDGE_BUNDLED_EDGES); TooltipInfo info; info.title = Edge::getReadableTypeString(type); @@ -407,13 +406,13 @@ void QtGraphEdge::coFocusIn() info.title = L"ambiguous " + info.title; } - if (type == Edge::EDGE_AGGREGATION && - m_direction == TokenComponentAggregation::DIRECTION_NONE) + if (type == Edge::EDGE_BUNDLED_EDGES && + m_direction == TokenComponentBundledEdges::DIRECTION_NONE) { info.title = L"bidirectional " + info.title; } - if (type == Edge::EDGE_AGGREGATION) + if (type == Edge::EDGE_BUNDLED_EDGES) { info.count = static_cast(m_weight); info.countText = "edge"; @@ -526,7 +525,7 @@ void QtGraphEdge::hoverLeaveEvent(QGraphicsSceneHoverEvent* event) s_focusedEdge = nullptr; } -void QtGraphEdge::setDirection(TokenComponentAggregation::Direction direction) +void QtGraphEdge::setDirection(TokenComponentBundledEdges::Direction direction) { if (m_direction != direction) { diff --git a/src/lib_gui/qt/graphics/graph/QtGraphEdge.h b/src/lib_gui/qt/graphics/graph/QtGraphEdge.h index b1291101..a008130c 100644 --- a/src/lib_gui/qt/graphics/graph/QtGraphEdge.h +++ b/src/lib_gui/qt/graphics/graph/QtGraphEdge.h @@ -5,11 +5,10 @@ #include +#include "TokenComponentBundledEdges.h" #include "Vector2.h" #include "Vector4.h" -#include "TokenComponentAggregation.h" - class Edge; class GraphFocusHandler; class QtGraphNode; @@ -34,7 +33,7 @@ public: bool isActive, bool isInteractive, bool horizontal, - TokenComponentAggregation::Direction direction); + TokenComponentBundledEdges::Direction direction); virtual ~QtGraphEdge(); const Edge* getData() const; @@ -60,7 +59,7 @@ public: void coFocusIn(); void coFocusOut(); - void setDirection(TokenComponentAggregation::Direction direction); + void setDirection(TokenComponentBundledEdges::Direction direction); bool isHorizontal() const; bool isExpandable() const; @@ -108,7 +107,7 @@ private: bool m_isHorizontal = false; size_t m_weight = 0; - TokenComponentAggregation::Direction m_direction; + TokenComponentBundledEdges::Direction m_direction; bool m_isTrailEdge = false; std::vector m_path; diff --git a/src/lib_gui/qt/view/QtCustomTrailView.cpp b/src/lib_gui/qt/view/QtCustomTrailView.cpp index 71bf2ca5..6d7d7a16 100644 --- a/src/lib_gui/qt/view/QtCustomTrailView.cpp +++ b/src/lib_gui/qt/view/QtCustomTrailView.cpp @@ -243,7 +243,7 @@ QtCustomTrailView::QtCustomTrailView(ViewLayout* viewLayout) Edge::EDGE_TYPE_ARGUMENT, Edge::EDGE_INCLUDE, Edge::EDGE_IMPORT, - // Edge::EDGE_AGGREGATION, + // Edge::EDGE_BUNDLED_EDGES, Edge::EDGE_MACRO_USAGE, Edge::EDGE_ANNOTATION_USAGE // Edge::EDGE_MEMBER // has separate checkbox diff --git a/src/lib_gui/qt/view/QtGraphView.cpp b/src/lib_gui/qt/view/QtGraphView.cpp index 93d8b6ce..27d40a1b 100644 --- a/src/lib_gui/qt/view/QtGraphView.cpp +++ b/src/lib_gui/qt/view/QtGraphView.cpp @@ -390,7 +390,7 @@ void QtGraphView::rebuildGraph( std::set visibleEdgeIds; for (const std::shared_ptr& edge: edges) { - if (!edge->data || !edge->data->isType(Edge::EDGE_AGGREGATION)) + if (!edge->data || !edge->data->isType(Edge::EDGE_BUNDLED_EDGES)) { createEdge( view, @@ -404,9 +404,9 @@ void QtGraphView::rebuildGraph( } for (const std::shared_ptr& edge: edges) { - if (edge->data && edge->data->isType(Edge::EDGE_AGGREGATION)) + if (edge->data && edge->data->isType(Edge::EDGE_BUNDLED_EDGES)) { - createAggregationEdge(view, edge.get(), &visibleEdgeIds, !params.disableInteraction); + createBundledEdgesEdge(view, edge.get(), &visibleEdgeIds, !params.disableInteraction); } } @@ -1203,7 +1203,7 @@ QtGraphEdge* QtGraphView::createEdge( return nullptr; } -QtGraphEdge* QtGraphView::createAggregationEdge( +QtGraphEdge* QtGraphView::createBundledEdgesEdge( QGraphicsView* view, const DummyEdge* edge, std::set* visibleEdgeIds, bool interactive) { if (!edge->visible) @@ -1212,9 +1212,9 @@ QtGraphEdge* QtGraphView::createAggregationEdge( } bool allVisible = true; - std::set aggregationIds = - edge->data->getComponent()->getAggregationIds(); - for (Id edgeId: aggregationIds) + std::set bundledEdgesIds = + edge->data->getComponent()->getBundledEdgesIds(); + for (Id edgeId: bundledEdgesIds) { if (visibleEdgeIds->find(edgeId) == visibleEdgeIds->end()) { diff --git a/src/lib_gui/qt/view/QtGraphView.h b/src/lib_gui/qt/view/QtGraphView.h index 14b7be91..10610595 100644 --- a/src/lib_gui/qt/view/QtGraphView.h +++ b/src/lib_gui/qt/view/QtGraphView.h @@ -128,7 +128,7 @@ private: QPointF pathOffset, bool useBezier, bool interactive); - QtGraphEdge* createAggregationEdge( + QtGraphEdge* createBundledEdgesEdge( QGraphicsView* view, const DummyEdge* edge, std::set* visibleEdgeIds, bool interactive); QRectF itemsBoundingRect(const std::list& items) const; diff --git a/testing/graph_view/data/interaction_tests.cpp b/testing/graph_view/data/interaction_tests.cpp index 53026658..e799e841 100644 --- a/testing/graph_view/data/interaction_tests.cpp +++ b/testing/graph_view/data/interaction_tests.cpp @@ -225,10 +225,10 @@ namespace interaction -// TEST: aggregation expand +// TEST: bundled edges expand // START ---------------------------------------------------------------------- -// ACTION 1: Click on aggregation between 'BundleBase -> ExpandedClass' +// ACTION 1: Click on bundled edges between 'BundleBase -> ExpandedClass' // RESULTS 1: // - graph shows 6 edges: 4 call, 1 use, 1 type use // - edges are displayed as bezier curves diff --git a/testing/keyboard_controls/data/graph_tests.cpp b/testing/keyboard_controls/data/graph_tests.cpp index 17ed5c20..2ca85c94 100644 --- a/testing/keyboard_controls/data/graph_tests.cpp +++ b/testing/keyboard_controls/data/graph_tests.cpp @@ -134,12 +134,12 @@ B b; // <- ACTION: activate 'B' -// TEST: Activate aggregation edge +// TEST: Activate bundled edges edge // START ---------------------------------------------------------------------- -// ACTION: Move focus on aggregation 'D -> B' +// ACTION: Move focus on bundled edges 'D -> B' // ACTION: Press Enter/E -// RESULT: aggregation edge is activated +// RESULT: bundled edges edge is activated // END ------------------------------------------------------------------------ diff --git a/testing/keyboard_controls/data/history_tests.cpp b/testing/keyboard_controls/data/history_tests.cpp index 53c40b35..ad4bcf7c 100644 --- a/testing/keyboard_controls/data/history_tests.cpp +++ b/testing/keyboard_controls/data/history_tests.cpp @@ -25,7 +25,7 @@ int func() -// TEST: Graph aggregation focus restored on back +// TEST: Graph bundled edges focus restored on back // START ---------------------------------------------------------------------- class HistoryTestUser @@ -40,9 +40,9 @@ public: HistoryTest h; }; -// ACTION: Focus and activate aggregation 'HistoryTestUser -> HistoryTest' +// ACTION: Focus and activate bundled edges 'HistoryTestUser -> HistoryTest' // ACTION: Navigate 'back' in history -// RESULT: The graph for 'HistoryTest' is restored with focus at aggregation edge +// RESULT: The graph for 'HistoryTest' is restored with focus at bundled edges edge // END ------------------------------------------------------------------------