Skip to content

Commit 03d1dd9

Browse files
committed
EdgeView customization patch
1 parent c363fb9 commit 03d1dd9

File tree

3 files changed

+41
-24
lines changed

3 files changed

+41
-24
lines changed

Assets/com.alelievr.NodeGraphProcessor/Editor/Utils/BaseEdgeConnector.cs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,24 @@ namespace GraphProcessor
99
{
1010
public class BaseEdgeConnector : EdgeConnector
1111
{
12-
BaseEdgeDragHelper dragHelper;
12+
protected BaseEdgeDragHelper dragHelper;
1313
Edge edgeCandidate;
14-
private bool active;
14+
protected bool active;
1515
Vector2 mouseDownPosition;
1616

1717
internal const float k_ConnectionDistanceTreshold = 10f;
1818

1919
public BaseEdgeConnector(IEdgeConnectorListener listener) : base()
2020
{
21-
dragHelper = new BaseEdgeDragHelper(listener);
2221
active = false;
22+
initEdgeConnector(listener);
23+
}
24+
25+
protected void initEdgeConnector(IEdgeConnectorListener listener)
26+
{
27+
dragHelper = new BaseEdgeDragHelper(listener);
2328
activators.Add(new ManipulatorActivationFilter { button = MouseButton.LeftMouse });
24-
}
29+
}
2530

2631
public override EdgeDragHelper edgeDragHelper => dragHelper;
2732

@@ -63,7 +68,7 @@ protected virtual void OnMouseDown(MouseDownEvent e)
6368

6469
mouseDownPosition = e.localMousePosition;
6570

66-
edgeCandidate = new EdgeView();
71+
edgeCandidate = CreateEdgeView();
6772
edgeDragHelper.draggedPort = graphElement;
6873
edgeDragHelper.edgeCandidate = edgeCandidate;
6974

@@ -81,6 +86,11 @@ protected virtual void OnMouseDown(MouseDownEvent e)
8186
}
8287
}
8388

89+
protected EdgeView CreateEdgeView()
90+
{
91+
return new EdgeView();
92+
}
93+
8494
void OnCaptureOut(MouseCaptureOutEvent e)
8595
{
8696
active = false;

Assets/com.alelievr.NodeGraphProcessor/Editor/Utils/BaseEdgeDragHelper.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ public override void HandleMouseMove(MouseMoveEvent evt)
218218
{
219219
if (ghostEdge == null)
220220
{
221-
ghostEdge = new EdgeView();
221+
ghostEdge = CreateEdgeView();
222222
ghostEdge.isGhostEdge = true;
223223
ghostEdge.pickingMode = PickingMode.Ignore;
224224
graphView.AddElement(ghostEdge);
@@ -260,6 +260,11 @@ public override void HandleMouseMove(MouseMoveEvent evt)
260260
}
261261
}
262262

263+
protected EdgeView CreateEdgeView()
264+
{
265+
return new EdgeView();
266+
}
267+
263268
private void Pan(TimerState ts)
264269
{
265270
graphView.viewTransform.position -= panDiff;

Assets/com.alelievr.NodeGraphProcessor/Editor/Views/BaseGraphView.cs

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -282,19 +282,22 @@ void UnserializeAndPasteCallback(string operationName, string serializedData)
282282

283283
if (nodeViewsPerNode.ContainsKey(oldInputNode) && nodeViewsPerNode.ContainsKey(oldOutputNode))
284284
{
285-
var edgeView = new EdgeView()
286-
{
287-
userData = newEdge,
288-
input = nodeViewsPerNode[oldInputNode].GetPortViewFromFieldName(newEdge.inputFieldName, newEdge.inputPortIdentifier),
289-
output = nodeViewsPerNode[oldOutputNode].GetPortViewFromFieldName(newEdge.outputFieldName, newEdge.outputPortIdentifier)
290-
};
285+
var edgeView = CreateEdgeView();
286+
edgeView.userData = newEdge;
287+
edgeView.input = nodeViewsPerNode[oldInputNode].GetPortViewFromFieldName(newEdge.inputFieldName, newEdge.inputPortIdentifier);
288+
edgeView.output = nodeViewsPerNode[oldOutputNode].GetPortViewFromFieldName(newEdge.outputFieldName, newEdge.outputPortIdentifier);
291289

292290
Connect(edgeView);
293291
}
294292
}
295293
}
296294

297-
GraphViewChange GraphViewChangedCallback(GraphViewChange changes)
295+
protected EdgeView CreateEdgeView()
296+
{
297+
return new EdgeView();
298+
}
299+
300+
GraphViewChange GraphViewChangedCallback(GraphViewChange changes)
298301
{
299302
if (changes.elementsToRemove != null)
300303
{
@@ -729,11 +732,11 @@ void InitializeEdgeViews()
729732
if (inputNodeView == null || outputNodeView == null)
730733
continue;
731734

732-
var edgeView = new EdgeView() {
733-
userData = serializedEdge,
734-
input = inputNodeView.GetPortViewFromFieldName(serializedEdge.inputFieldName, serializedEdge.inputPortIdentifier),
735-
output = outputNodeView.GetPortViewFromFieldName(serializedEdge.outputFieldName, serializedEdge.outputPortIdentifier)
736-
};
735+
var edgeView = CreateEdgeView();
736+
edgeView.userData = serializedEdge;
737+
edgeView.input = inputNodeView.GetPortViewFromFieldName(serializedEdge.inputFieldName, serializedEdge.inputPortIdentifier);
738+
edgeView.output = outputNodeView.GetPortViewFromFieldName(serializedEdge.outputFieldName, serializedEdge.outputPortIdentifier);
739+
737740

738741
ConnectView(edgeView);
739742
}
@@ -1050,12 +1053,11 @@ public bool Connect(PortView inputPortView, PortView outputPortView, bool autoDi
10501053

10511054
var newEdge = SerializableEdge.CreateNewEdge(graph, inputPort, outputPort);
10521055

1053-
var edgeView = new EdgeView()
1054-
{
1055-
userData = newEdge,
1056-
input = inputPortView,
1057-
output = outputPortView,
1058-
};
1056+
var edgeView = CreateEdgeView();
1057+
edgeView.userData = newEdge;
1058+
edgeView.input = inputPortView;
1059+
edgeView.output = outputPortView;
1060+
10591061

10601062
return Connect(edgeView);
10611063
}

0 commit comments

Comments
 (0)