private static void AddDrawablesToNode(NapaArrangementBrowserViewModel vm, ObjectBrowserNodeViewModel nodeViewModel, string[] names) { var method = vm.GetType().GetMethod("AddDrawablesToNode", BindingFlags.NonPublic | BindingFlags.Instance); method.Invoke(vm, new object[] { nodeViewModel, names }); }
private static ObjectBrowserNodeViewModel GetNode(IProjectVersion version, NapaArrangementBrowserViewModel vm, ObjectBrowserNodeViewModel root, IEnumerable <string> path) { if (!path.Any()) { return(root); } var children = GetChildren(root); ObjectBrowserItemViewModel node; if (children.TryGetValue(path.First(), out node)) { return(GetNode(version, vm, node as ObjectBrowserNodeViewModel, path.Skip(1))); } var arr = version.GetArrangement(root.Name); Napa.Alfred.EventProxy.WithDelayedEvents(() => { Napa.Alfred.EventProxy.WithDelayedGMEvents(() => { var subArr = GetSubArr(version, arr, path.First()); if (subArr == null) { throw new InvalidOperationException("Cannot create STR path " + string.Join(":", path)); } PopulateArrangement(vm, subArr, root); }); }); return(GetNode(version, vm, root, path)); }
private static void PopulateArrangement(NapaArrangementBrowserViewModel vm, IHierarchicalArrangement arrangement, ObjectBrowserNodeViewModel parent) { var method = vm.GetType().GetMethod("PopulateArrangement", BindingFlags.NonPublic | BindingFlags.Instance); method.Invoke(vm, new object[] { arrangement, parent }); }