private async Task SetRootModelAsync(REnvironment env) {
_shell.AssertIsOnMainThread();
if (env.Kind != REnvironmentKind.Error) {
try {
var result = await EvaluateAndDescribeAsync(env);
var wrapper = new VariableViewModel(result, _aggregator);
_rootNode.Model = new VariableNode(_settings, wrapper);
} catch (RException ex) {
SetRootNode(VariableViewModel.Error(ex.Message));
} catch (RHostDisconnectedException ex) {
SetRootNode(VariableViewModel.Error(ex.Message));
}
} else {
SetRootNode(VariableViewModel.Error(env.Name));
}
// Some of the Variable Explorer tool bar buttons are depend on the R Environment (e.g., Delete all Variables button).
// This will give those UI elements a chance to update state.
_shell.UpdateCommandStatus();
}