Hi Team,
Is there any way to skip the call to TableLayout.prototype.doLayout = function(coll) on a particular commit transaction of matrix.
In my code below it automatically calls this function which creates issue
else if(nodeType == "MainHeader"){
foundNode = $scope.diagramOptions.getRowDefinition($scope.model.nodeDataArray[index].row);
$scope.model.startTransaction("resize Column");
minSize = $scope.model.nodeDataArray[index].minSize.split(" ");
$scope.model.setDataProperty(foundNode, 'height', parseInt(minSize[1]));
$scope.model.commitTransaction('resize Column');
}
simon
September 25, 2017, 8:52am
#2
Well, you could disable the layout temporarily, or change the layout conditions, depending on what you really want.
You could set layout.isOngoing
to false temporarily.
If you never want the layout to re-layout when certain Parts are changed, try setting: Part | GoJS API
I have tried setting below
var lay = $scope.diagramOptions.getDiagramLayout();
lay.isOngoing = false;
lay.isLayoutPositioned = false;
for(index = 0; index < $scope.model.nodeDataArray.length; index++){
...
...
...
}
else if(nodeType == "MainHeader"){
foundNode = $scope.diagramOptions.getRowDefinition($scope.model.nodeDataArray[index].row);
$scope.model.startTransaction("resize Column");
minSize = $scope.model.nodeDataArray[index].minSize.split(" ");
$scope.model.setDataProperty(foundNode, 'height', parseInt(minSize[1]));
$scope.model.commitTransaction('resize Column');
}
}
But not working. Call is going to dolayout.
walter
September 25, 2017, 12:09pm
#4
There is no Layout.isLayoutPositioned property. That property is on Part , to prevent changes to particular Node s or Link s from invalidating any Layout .
But setting Layout.isOngoing to false should have prevented that Layout from being invalidated through the normal mechanisms. However, explicit settings of Layout.isValidLayout or calling Diagram.layoutDiagram would cause the layout to happen again.