ui: Pan graph view to name of active symbol after activation

bug id = 80
This commit is contained in:
Eberhard Graether
2016-07-22 13:57:58 +02:00
parent b2cb95de1b
commit f4677a902d
7 changed files with 103 additions and 29 deletions
@@ -36,7 +36,7 @@ void GraphController::handleMessage(MessageActivateAll* message)
layoutNesting();
layoutGraph();
buildGraph(message);
buildGraph(message, false);
}
void GraphController::handleMessage(MessageActivateTokens* message)
@@ -47,7 +47,7 @@ void GraphController::handleMessage(MessageActivateTokens* message)
{
m_activeEdgeIds = message->tokenIds;
setActiveAndVisibility(utility::concat(m_activeNodeIds, m_activeEdgeIds));
buildGraph(message);
buildGraph(message, false);
return;
}
else if (message->isAggregation)
@@ -81,12 +81,12 @@ void GraphController::handleMessage(MessageActivateTokens* message)
layoutNesting();
layoutGraph(true);
buildGraph(message);
buildGraph(message, true);
}
void GraphController::handleMessage(MessageFlushUpdates* message)
{
buildGraph(message);
buildGraph(message, true);
}
void GraphController::handleMessage(MessageSearchFullText* message)
@@ -133,7 +133,7 @@ void GraphController::handleMessage(MessageGraphNodeBundleSplit* message)
layoutNesting();
layoutGraph(tokenIds.size() > 0);
buildGraph(message);
buildGraph(message, false);
}
void GraphController::handleMessage(MessageGraphNodeExpand* message)
@@ -148,7 +148,7 @@ void GraphController::handleMessage(MessageGraphNodeExpand* message)
layoutNesting();
layoutGraph();
buildGraph(message);
buildGraph(message, false);
}
}
@@ -161,7 +161,7 @@ void GraphController::handleMessage(MessageGraphNodeMove* message)
if (message->isReplayed())
{
buildGraph(message);
buildGraph(message, false);
}
else
{
@@ -1148,11 +1148,15 @@ DummyNode* GraphController::getDummyGraphNodeById(Id tokenId) const
return nullptr;
}
void GraphController::buildGraph(MessageBase* message, bool animated)
void GraphController::buildGraph(MessageBase* message, bool centerActiveNode, bool animatedTransition)
{
if (!message->isReplayed())
{
getView()->rebuildGraph(m_graph, m_dummyNodes, m_dummyEdges, animated);
GraphView::GraphParams params;
params.centerActiveNode = centerActiveNode;
params.animatedTransition = animatedTransition;
getView()->rebuildGraph(m_graph, m_dummyNodes, m_dummyEdges, params);
}
}
@@ -93,7 +93,7 @@ private:
DummyNode* getDummyGraphNodeById(Id tokenId) const;
void buildGraph(MessageBase* message, bool animated = true);
void buildGraph(MessageBase* message, bool centerActiveNode, bool animatedTransition = true);
void forEachDummyNodeRecursive(std::function<void(DummyNode*)> func);
void forEachDummyEdge(std::function<void(DummyEdge*)> func);
+9 -2
View File
@@ -9,9 +9,16 @@ struct DummyEdge;
struct DummyNode;
class Graph;
class GraphView : public View
class GraphView
: public View
{
public:
struct GraphParams
{
bool animatedTransition;
bool centerActiveNode;
};
GraphView(ViewLayout* viewLayout);
virtual ~GraphView();
@@ -21,7 +28,7 @@ public:
std::shared_ptr<Graph> graph,
const std::vector<std::shared_ptr<DummyNode>>& nodes,
const std::vector<std::shared_ptr<DummyEdge>>& edges,
bool animated) = 0;
const GraphParams params) = 0;
virtual void clear() = 0;
virtual void focusTokenIds(const std::vector<Id>& focusedTokenIds) = 0;