ui: GraphView can set active tokenId on node clicked
By now the graph displays the active node, without neighbours or anything, and clicking a node sets the active token id to the clicked nodes id. fortune cookie message = Be prepared to accept an exciting opportunity in the future.
This commit is contained in:
@@ -6,6 +6,8 @@
|
||||
|
||||
#include "component/view/View.h"
|
||||
|
||||
struct DummyEdge;
|
||||
struct DummyNode;
|
||||
class GraphEdge;
|
||||
class GraphNode;
|
||||
|
||||
@@ -17,8 +19,9 @@ public:
|
||||
|
||||
virtual std::string getName() const;
|
||||
|
||||
virtual std::weak_ptr<GraphNode> addNode(const Vec2i& position, const std::string& name) = 0;
|
||||
virtual void addEdge(const std::weak_ptr<GraphNode>& owner, const std::weak_ptr<GraphNode>& target) = 0;
|
||||
virtual void rebuildGraph(const std::vector<DummyNode>& nodes, const std::vector<DummyEdge>& edges) = 0;
|
||||
|
||||
virtual void clear() = 0;
|
||||
|
||||
protected:
|
||||
std::list<std::shared_ptr<GraphNode> > m_nodes;
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
#ifndef GRAPH_EDGE_H
|
||||
#define GRAPH_EDGE_H
|
||||
|
||||
#include <memory>
|
||||
|
||||
class GraphNode;
|
||||
|
||||
class GraphEdge
|
||||
{
|
||||
public:
|
||||
@@ -11,4 +15,18 @@ public:
|
||||
virtual void targetMoved() = 0;
|
||||
};
|
||||
|
||||
// temporary data structure for (visual) graph creation process
|
||||
struct DummyEdge
|
||||
{
|
||||
public:
|
||||
DummyEdge(const std::weak_ptr<GraphNode> o, const std::weak_ptr<GraphNode> t)
|
||||
: owner(o)
|
||||
, target(t)
|
||||
{
|
||||
}
|
||||
|
||||
std::weak_ptr<GraphNode> owner;
|
||||
std::weak_ptr<GraphNode> target;
|
||||
};
|
||||
|
||||
#endif // GRAPH_EDGE_H
|
||||
@@ -1,9 +1,15 @@
|
||||
#include "component/view/graphElements/GraphNode.h"
|
||||
|
||||
GraphNode::GraphNode()
|
||||
GraphNode::GraphNode(const Id tokenId)
|
||||
: m_tokenId(tokenId)
|
||||
{
|
||||
}
|
||||
|
||||
GraphNode::~GraphNode()
|
||||
{
|
||||
}
|
||||
|
||||
Id GraphNode::getTokenId()
|
||||
{
|
||||
return m_tokenId;
|
||||
}
|
||||
|
||||
@@ -1,22 +1,47 @@
|
||||
#ifndef GRAPH_NODE_H
|
||||
#define GRAPH_NODE_H
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "utility/math/Vector2.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
class GraphEdge;
|
||||
|
||||
class GraphNode
|
||||
{
|
||||
public:
|
||||
GraphNode();
|
||||
GraphNode(const Id tokenId);
|
||||
virtual ~GraphNode();
|
||||
|
||||
virtual std::string getName() = 0;
|
||||
Id getTokenId();
|
||||
virtual Vec2i getPosition() = 0;
|
||||
|
||||
virtual void addOutEdge(const std::shared_ptr<GraphEdge>& edge) = 0;
|
||||
virtual void addInEdge(const std::weak_ptr<GraphEdge>& edge) = 0;
|
||||
|
||||
virtual void removeOutEdge(const std::shared_ptr<GraphEdge>& edge) = 0;
|
||||
|
||||
protected:
|
||||
Id m_tokenId;
|
||||
};
|
||||
|
||||
struct DummyNode
|
||||
{
|
||||
public:
|
||||
DummyNode(const std::string& n, const Id tId, const Vec2i& p)
|
||||
: name(n)
|
||||
, tokenId(tId)
|
||||
, position(p)
|
||||
{
|
||||
}
|
||||
|
||||
std::string name;
|
||||
Id tokenId;
|
||||
Vec2i position;
|
||||
|
||||
std::weak_ptr<GraphNode> actualNode;
|
||||
};
|
||||
|
||||
#endif // GRAPH_NODE_H
|
||||
|
||||
Reference in New Issue
Block a user