Bevisuali.UX.MainWindow.OnModelGraphLayoutUpdated C# (CSharp) Method

OnModelGraphLayoutUpdated() private method

private OnModelGraphLayoutUpdated ( IWorkbench workbench ) : void
workbench IWorkbench
return void
        void OnModelGraphLayoutUpdated(IWorkbench workbench)
        {
            // Grab values.
            var network = workbench.BayesianNetwork;
            var positions = workbench.NetworkLayout.Positions;
            var abbreviations = workbench.BayesianNetworkVariableAbbreviations;
            var options = workbench.NetworkLayoutOptions;

            // Init graph inspector.
            Dispatcher.Invoke(delegate
            {
                // Update graph inspector.
                xGraphInspector.SetLayoutOptions(options);
                xGraphInspector.SetGraphLayout(positions);

                // Update network inspector.
                {
                    var variablesOrderedVertically
                        = positions
                        .OrderBy(kvp => kvp.Value.Y)
                        .ThenBy(kvp => kvp.Value.X)
                        .Select(kvp => network.GetVariable(kvp.Key))
                        .ToList();
                    xVariablesInspector.SetVariables(variablesOrderedVertically, abbreviations);
                }
            });
        }