public void SetGraph(
BayesianNetwork network,
IDictionary<string, string> variableAbbreviations)
{
bool isNewNetwork = _network != network;
// Remove nodes and edges.
foreach (var node in _nodes.ToList())
{
RemoveNode(node);
}
_nodes.Clear();
// Remember.
_network = network;
if (network == null)
{
return;
}
// Generate new nodes.
foreach (var variable in network.VariablesOrdered)
{
GraphNode node = new GraphNode();
node.Label = variableAbbreviations[variable.Name];
node.Tag = variable;
node.ColorSpace = variable.Space.Values.Select(v => variable.Space.GetColor(v)).ToArray();
var cpt = variable.Distributions;
AddNode(node);
}
UpdateEdges();
network.StructureChanged += OnBayesianNetworkStructureChanged;
}