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);
}
});
}