Quantcast
Channel: GoJS - Northwoods Software
Viewing all articles
Browse latest Browse all 7069

Find links between groups?

$
0
0

@tiepna wrote:

Hi,
I'm trying to implement link of my diagram following:

1.No more than one link between 2 groups can be displayed when one of them is collapsed
2.A link is displayed between 2 groups if there is at least one link between two tables located in those groups
3.If two groups are expanded then links between tables should be displayed. (See next slide)

AND I am using this API group.findLinksConnected() to get link of Group. But result allways return count=0.

Please refer to this jsfiddle https://jsfiddle.net/tiepna/aL08ms24/4/
And click expand button of AdministeredItem group.( see in Handle Expand/Collapse Events)

var groupTempl = $(go.Group, "Auto",
{
fromSpot: go.Spot.AllSides,
toSpot: go.Spot.AllSides,
isSubGraphExpanded:false
},
new go.Binding("location", "", toLocation).makeTwoWay(go.Point.stringify),
$(go.Shape, "Rectangle", { fill: "white", stroke: "#4472C4", strokeWidth: 2 }),
$(go.Panel, go.Panel.Vertical, // title above Placeholder
$(go.Panel, go.Panel.Horizontal, // button next to
// TextBlock
{ stretch: go.GraphObject.Horizontal, margin: 1 },
$("SubGraphExpanderButton",
{ alignment: go.Spot.Right, margin: 5, click: function(e, button) {
var group = button.part;
if (group instanceof go.Adornment) group = group.adornedPart;
if (!(group instanceof go.Group)) return;
var diagram = group.diagram;
if (diagram === null) return;
var cmd = diagram.commandHandler;
if (group.isSubGraphExpanded) {
if (!cmd.canCollapseSubGraph(group)) return;
} else {
if (!cmd.canExpandSubGraph(group)) return;
}
e.handled = true;

		            	    var linksToGroupOnly = group.findLinksConnected();
		            	    var externalLinksConnected = group.findExternalLinksConnected();
		            	    var externalNodesConnected = group.findExternalNodesConnected();

		            	    diagram.startTransaction("expand-collapse");
		            	    if (group.isSubGraphExpanded) {

		            	      cmd.collapseSubGraph(group);
                                          // show link between group and hide links inside group.
		          	    	  showGroupLinkGroup(externalLinksConnected,linksToGroupOnly);

		            	    } else {
		            	      cmd.expandSubGraph(group);
		            	      //hide Groups link, show links inside group
		            	      hideGroupLinkGroup(group,externalNodesConnected,externalLinksConnected,linksToGroupOnly)
		            	    }
		            	    diagram.commitTransaction("expand-collapse");
		            	  }
		              }),
		            $(go.TextBlock,
		              {
		                alignment: go.Spot.Left,
		                margin: 5,
		                font: "bold 18px 'Open Sans'",
		                stroke: "#4472C4"
		              },
		              new go.Binding("text", "label"))
		          ),  // end Horizontal Panel



			       	$(go.Panel, go.Panel.Position,
				  	          $(go.Placeholder,{padding:5})
				       	)
		        )
);

Posts: 1

Participants: 1

Read full topic


Viewing all articles
Browse latest Browse all 7069

Trending Articles