public void Goto(ITabularNamedObject obj) { var node = UI.TreeView.FindNodeByTag(obj); if (node == null) { TreeModel.BeginUpdate(); TreeModel.Options = TreeModel.Options | LogicalTreeOptions.ShowHidden | LogicalTreeOptions.AllObjectTypes | LogicalTreeOptions.Columns | LogicalTreeOptions.Measures | LogicalTreeOptions.Hierarchies; InternalApplyFilter(""); UI.FormMain.UpdateTreeUIButtons(); TreeModel.EndUpdate(); node = UI.TreeView.FindNodeByTag(obj); } if (node != null) { UI.TreeView.EnsureVisible(node); UI.TreeView.SelectedNode = node; UI.FormMain.Activate(); UI.TreeView.Focus(); } }
public void Goto(ITabularNamedObject obj) { var node = UI.TreeView.FindNodeByTag(obj); if (node == null) { TreeModel.BeginUpdate(); var options = TreeModel.Options; // Adjust the LogicalTreeOptions based on the object itself. For example, if the object is hidden, // make sure the tree displays hidden objects, etc.: if ((obj is IHideableObject) && (obj as IHideableObject).IsHidden) { options = options | LogicalTreeOptions.ShowHidden; } if ((obj is Column)) { options = options | LogicalTreeOptions.Columns; } else if ((obj is Measure)) { options = options | LogicalTreeOptions.Measures; } else if ((obj is Hierarchy)) { options = options | LogicalTreeOptions.Hierarchies; } else if ((obj is Table) || (obj is Model)) /* Do nothing */ } {
public void Tree_NavigateBack() { if (!CanNavigateBack) { return; } bool firstUnknown = true; IsNavigating = true; while (Back.Count > 1) { // Transfer current to forward stack: if (firstUnknown) { Forward.Push(Back.Pop()); } else { Back.Pop(); } var nav = Back.Peek(); ApplyFilter(nav.CurrentFilter); if (nav.Object == null || nav.Object.IsRemoved) { continue; } var node = UI.TreeView.FindNodeByTag(nav.Object); if (node == null && firstUnknown) { firstUnknown = false; if (!TreeModel.VisibleInTree(nav.Object)) { TreeModel.BeginUpdate(); TreeModel.Options = LogicalTreeOptions.Default | LogicalTreeOptions.ShowHidden; UI.FormMain.UpdateTreeUIButtons(); TreeModel.EndUpdate(); } node = UI.TreeView.FindNodeByTag(nav.Object); } if (node != null) { UI.TreeView.EnsureVisible(node); UI.TreeView.SelectedNode = node; UI.FormMain.Activate(); UI.TreeView.Focus(); break; } } IsNavigating = false; }