void OutlineSelected(NSCmisTree cmis, int selected) {
InvokeOnMainThread(delegate {
RootFolder selectedRoot = null;
foreach (RootFolder root in Repositories) {
Node node = cmis.GetNode(root);
if (node != null) {
if (node.Parent == null && node.Selected == false) {
selectedRoot = root;
}
node.Selected = selected != 0;
DataSource.UpdateCmisTree(root);
}
}
if (selectedRoot != null) {
foreach (RootFolder root in Repositories) {
if (root != selectedRoot) {
root.Selected = false;
DataSource.UpdateCmisTree(root);
}
}
Outline.ReloadData();
} else {
for (int i = 0; i < Outline.RowCount; ++i) {
Outline.ReloadItem(Outline.ItemAtRow(i));
}
}
});
}