Skip to content

Commit 8790daf

Browse files
separate out the parallel edge check and always apply it
1 parent 2112b76 commit 8790daf

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/match_ports.js

+9-7
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@ dc_graph.match_ports = function(diagram, symbolPorts) {
1717
nids.push(diagram.portNodeKey.eval(source.port));
1818
symbolPorts.animateNodes(nids);
1919
}
20+
function is_valid(sourcePort, targetPort) {
21+
return (_behavior.allowParallel() || !_wedges.some(function(e) {
22+
return sourcePort.edges.indexOf(e) >= 0 && targetPort.edges.indexOf(e) >= 0;
23+
})) && _behavior.isValid()(sourcePort, targetPort);
24+
}
2025
var _behavior = {
2126
isValid: property(function(sourcePort, targetPort) {
22-
if(!_behavior.allowParallel() && _wedges.some(function(e) {
23-
return sourcePort.edges.indexOf(e) >= 0 && targetPort.edges.indexOf(e) >= 0;
24-
})) return false;
2527
return targetPort !== sourcePort && targetPort.name === sourcePort.name;
2628
}),
2729
allowParallel: property(false).react(function(v) {
@@ -30,15 +32,15 @@ dc_graph.match_ports = function(diagram, symbolPorts) {
3032
}),
3133
hoverPort: function(port) {
3234
if(port) {
33-
_validTargets = _wports.filter(_behavior.isValid().bind(null, port));
35+
_validTargets = _wports.filter(is_valid.bind(null, port));
3436
if(_validTargets.length)
3537
return change_state(_validTargets, 'shimmer-medium');
3638
} else if(_validTargets)
3739
return change_state(_validTargets, 'small');
3840
return null;
3941
},
4042
startDragEdge: function(source) {
41-
_validTargets = _wports.filter(_behavior.isValid().bind(null, source.port));
43+
_validTargets = _wports.filter(is_valid.bind(null, source.port));
4244
var nids = change_state(_validTargets, 'shimmer');
4345
if(_validTargets.length) {
4446
symbolPorts.enableHover(false);
@@ -50,7 +52,7 @@ dc_graph.match_ports = function(diagram, symbolPorts) {
5052
return _validTargets.length !== 0;
5153
},
5254
changeDragTarget: function(source, target) {
53-
var nids, valid = target && _behavior.isValid()(source.port, target.port), before;
55+
var nids, valid = target && is_valid(source.port, target.port), before;
5456
if(valid) {
5557
nids = change_state(_validTargets, 'small');
5658
target.port.state = 'large'; // it's one of the valid
@@ -66,7 +68,7 @@ dc_graph.match_ports = function(diagram, symbolPorts) {
6668
finishDragEdge: function(source, target) {
6769
symbolPorts.enableHover(true);
6870
reset_ports(source);
69-
return _behavior.isValid()(source.port, target.port);
71+
return is_valid(source.port, target.port);
7072
},
7173
cancelDragEdge: function(source) {
7274
symbolPorts.enableHover(true);

0 commit comments

Comments
 (0)