public TreeNodeMouseClickEventParams() { mTreeView = null; mContain = null; mX = -1; mY = -1; }
/// <summary> /// Constructor</summary> /// <param name="treeView">Data context of ITreeView to apply a filter</param> /// <param name="filterFunc">Callback to determine if an item in the tree is filtered in (return true) or out</param> public FilteredTreeView(ITreeView treeView, Predicate<object> filterFunc) { m_treeView = treeView; m_itemView = treeView.As<IItemView>(); if (filterFunc == null) throw new ArgumentNullException("filterFunc cannot be null"); m_filterFunc = filterFunc; }
public FileTreeViewWindowContent(ITreeView treeView) { this.treeView = treeView; var control = treeView.UIObject as Control; Debug.Assert(control != null); if (control != null) control.Padding = new Thickness(0, 2, 0, 0); }
/// <summary> /// Constructs a SceneGraphBuilder that builds only the specified type of /// IRenderObjects and uses the given ITreeView to find children</summary> /// <param name="type">The render object type to use</param> /// <param name="treeView">Scene's tree view</param> public SceneGraphBuilder(Type type, ITreeView treeView) { if (!typeof(IRenderObject).IsAssignableFrom(type)) throw new InvalidOperationException("Must be an IRenderObject"); m_treeView = treeView; m_type = type; }
/// <summary> /// Constructor /// </summary> /// <param name="text">Text to classify</param> /// <param name="treeView">Treeview</param> /// <param name="node">Node to classify</param> /// <param name="isToolTip">true if the content will be shown in a tooltip</param> /// <param name="colorize">true if it should be colorized</param> /// <param name="colors">Default colors or null. It doesn't have to be sorted and elements can overlap. The colors /// must be <see cref="IClassificationType"/>s or <see cref="TextColor"/>s</param> public TreeViewNodeClassifierContext(string text, ITreeView treeView, TreeNodeData node, bool isToolTip, bool colorize, IReadOnlyCollection<SpanData<object>> colors = null) : base(text, string.Empty, colorize, colors) { if (treeView == null) throw new ArgumentNullException(nameof(treeView)); if (node == null) throw new ArgumentNullException(nameof(node)); TreeView = treeView; Node = node; IsToolTip = isToolTip; }
/// <summary> /// Indicates whether two ITreeView instances are equal</summary> /// <param name="first">First ITreeView to compare</param> /// <param name="second">Second ITreeView to compare</param> /// <returns>True iff ITreeView instances are equal</returns> public static bool Equals(ITreeView first, ITreeView second) { FilteredTreeView f1 = first.As<FilteredTreeView>(); if (f1 != null) first = f1.m_treeView; FilteredTreeView f2 = second.As<FilteredTreeView>(); if (f2 != null) second = f2.m_treeView; return first == second; }
public ProjectBrowserService(IServiceProvider services, ITreeView treeView) { this.Services = services; this.tree = treeView; this.mpitemToDesigner = new Dictionary<object, TreeNodeDesigner>(); this.tree.AfterSelect += tree_AfterSelect; this.tree.DragEnter += tree_DragEnter; this.tree.DragOver += tree_DragOver; this.tree.DragDrop += tree_DragDrop; this.tree.DragLeave += tree_DragLeave; this.tree.MouseWheel += tree_MouseWheel; }
private void TraverseVisible(ITreeView iTreeView, Action<MyTreeViewItem> action) { for (int i = 0; i < iTreeView.GetItemCount(); i++) { var item = iTreeView.GetItem(i); if (item.Visible) { action(item); if (item.IsExpanded) { TraverseVisible(item, action); } } } }
///<summary> /// Constrcutor for the <see cref="StaticDataEditorManager"/> ///</summary> ///<param name="staticDataEditor"></param> ///<param name="controlFactory"></param> public StaticDataEditorManager(IStaticDataEditor staticDataEditor, IControlFactory controlFactory) { _staticDataEditor = staticDataEditor; this._controlFactory = controlFactory; _items = new Dictionary<string, IClassDef>(); _treeView = _controlFactory.CreateTreeView("TreeView"); _treeView.Width = 200; _gridControl = _controlFactory.CreateEditableGridControl(); BorderLayoutManager layoutManager = _controlFactory.CreateBorderLayoutManager(_staticDataEditor); layoutManager.AddControl(_gridControl, BorderLayoutManager.Position.Centre); layoutManager.AddControl(_treeView, BorderLayoutManager.Position.West); _treeView.AfterSelect += ((sender, e) => SelectItem(e.Node.Text)); _treeView.BeforeSelect += _treeView_OnBeforeSelect; _gridControl.Enabled = false; _gridControl.FilterControl.Visible = false; }
private MyTreeViewItem NextVisible(ITreeView iTreeView, MyTreeViewItem focused) { bool found = false; TraverseVisible(m_body, a => { if (a == focused) { found = true; } else if (found) { focused = a; found = false; } } ); return focused; }
private void SetMocks() { Moq.Mock<ICategoryPropertyPresenter> mockCategoryProperty = new Moq.Mock<ICategoryPropertyPresenter>(); Moq.Mock<IMultiView> mockMultiView = new Moq.Mock<IMultiView>(); Moq.Mock<ITreeView> mockTreeView = new Moq.Mock<ITreeView>(); mockCategoryProperty.SetupAllProperties(); mockMultiView.SetupAllProperties(); mockTreeView.SetupAllProperties(); MockCategoryProperty = mockCategoryProperty.Object; MockMultiView = mockMultiView.Object; MockTreeView = mockTreeView.Object; MockCategoryProperty.ErrorLabel = new Label(); MockCategoryProperty.NameTextBox = new TextBox(); MockCategoryProperty.DescriptionTextBox = new TextBox(); MockCategoryProperty.NewSerie = new Button(); MockCategoryProperty.NewCategory = new Button(); MockCategoryProperty.Cancel = new Button(); MockCategoryProperty.Delete = new Button(); MockCategoryProperty.Update = new Button(); MockMultiView.MultiViewCategory = new MultiView(); MockMultiView.MultiViewFigur = new MultiView(); MockMultiView.MultiViewSerie = new MultiView(); MockMultiView.ViewCategoryProperty = new View(); MockMultiView.ViewFigurProperty = new View(); MockMultiView.ViewFigurStore = new View(); MockMultiView.ViewSerieProperty = new View(); MockMultiView.ViewSerieStore = new View(); MockMultiView.MultiViewCategory.Views.Add(MockMultiView.ViewCategoryProperty); MockMultiView.MultiViewSerie.Views.Add(MockMultiView.ViewSerieProperty); MockMultiView.MultiViewSerie.Views.Add(MockMultiView.ViewSerieStore); MockMultiView.MultiViewFigur.Views.Add(MockMultiView.ViewFigurProperty); MockMultiView.MultiViewFigur.Views.Add(MockMultiView.ViewFigurStore); MockTreeView.Menu = new Menu(); MockTreeView.OverviewTreeView = new TreeView(); MockTreeView.Menu.Items.Add(new MenuItem("Eigenschaft", "1")); MockTreeView.Menu.Items.Add(new MenuItem("Lager", "2")); }
static IEnumerable<Tuple<int, TreeNodeData>> GetNodes(ITreeView treeView, IEnumerable<TreeNodeData> nodes) { var hash = new HashSet<TreeNodeData>(nodes); var stack = new Stack<State>(); stack.Push(new State(treeView.Root, 0)); while (stack.Count > 0) { var state = stack.Pop(); if (state.Index >= state.Nodes.Count) continue; var child = state.Nodes[state.Index++]; if (hash.Contains(child.Data)) yield return Tuple.Create(state.Level, child.Data); stack.Push(state); stack.Push(new State(child, state.Level + 1)); } }
public AppSettingsTreeViewNodeClassifierContext(SearchMatcher searchMatcher, string text, ITreeView treeView, TreeNodeData node, bool isToolTip, bool colorize, IReadOnlyCollection<SpanData<object>> colors = null) : base(text, treeView, node, isToolTip, colorize, colors) { if (searchMatcher == null) throw new ArgumentNullException(nameof(searchMatcher)); SearchMatcher = searchMatcher; }
public GuidObjectsProvider(ITreeView treeView) { this.treeView = treeView; }
AnalyzerService(IWpfCommandService wpfCommandService, IDocumentTabService documentTabService, ITreeViewService treeViewService, IMenuService menuService, IAnalyzerSettings analyzerSettings, IDotNetImageService dotNetImageService, IDecompilerService decompilerService, ITreeViewNodeTextElementProvider treeViewNodeTextElementProvider) { this.documentTabService = documentTabService; context = new AnalyzerTreeNodeDataContext { DotNetImageService = dotNetImageService, Decompiler = decompilerService.Decompiler, TreeViewNodeTextElementProvider = treeViewNodeTextElementProvider, DocumentService = documentTabService.DocumentTreeView.DocumentService, ShowToken = analyzerSettings.ShowToken, SingleClickExpandsChildren = analyzerSettings.SingleClickExpandsChildren, SyntaxHighlight = analyzerSettings.SyntaxHighlight, UseNewRenderer = analyzerSettings.UseNewRenderer, AnalyzerService = this, }; var options = new TreeViewOptions { CanDragAndDrop = false, TreeViewListener = this, }; TreeView = treeViewService.Create(ANALYZER_TREEVIEW_GUID, options); context.TreeView = TreeView; documentTabService.DocumentTreeView.DocumentService.CollectionChanged += DocumentService_CollectionChanged; documentTabService.DocumentModified += DocumentTabService_FileModified; decompilerService.DecompilerChanged += DecompilerService_DecompilerChanged; analyzerSettings.PropertyChanged += AnalyzerSettings_PropertyChanged; menuService.InitializeContextMenu(TreeView.UIObject, new Guid(MenuConstants.GUIDOBJ_ANALYZER_TREEVIEW_GUID), new GuidObjectsProvider(TreeView)); wpfCommandService.Add(ControlConstants.GUID_ANALYZER_TREEVIEW, TreeView.UIObject); var cmds = wpfCommandService.GetCommands(ControlConstants.GUID_ANALYZER_TREEVIEW); var command = new RelayCommand(a => ActivateNode()); cmds.Add(command, ModifierKeys.Control, Key.Enter); cmds.Add(command, ModifierKeys.Shift, Key.Enter); }
public ProjectBrowserService(IServiceProvider services, ITabPage tabPage, ITreeView treeView) : base(treeView, services) { this.tabPage = tabPage; this.tree = treeView; }
/// <summary> /// Constructs the TreeViewController. /// </summary> /// <param name="treeView">The <see cref="ITreeView"/> to control/map to</param> public TreeViewController(ITreeView treeView) { _preventSelectionChanged = false; ObjectNodes = new Dictionary<IBusinessObject, NodeState>(20); RelationshipNodes = new Dictionary<IRelationship, NodeState>(5); ChildCollectionNodes = new Dictionary<IBusinessObjectCollection, NodeState>(5); TreeView = treeView; TreeView.HideSelection = false; TreeView.AfterSelect += TreeView_AfterSelect; TreeView.BeforeExpand += TreeView_BeforeExpand; _levelsToDisplay = -1; }
void ITreeViewItem.SetTools(ITreeView TV) { // there is not tools needed at this stage }
/// <summary> /// Constructor</summary> /// <param name="treeView">Data context of ITreeView to apply a filter</param> /// <param name="filterFunc">Callback to determine if an item in the tree is filtered in (return true) or out</param> public FilteredTreeView(ITreeView treeView, Predicate <object> filterFunc) { m_treeView = treeView; m_filterFunc = filterFunc; }
public FileTreeView(bool isGlobal, IFileTreeNodeFilter filter, IThemeManager themeManager, ITreeViewManager treeViewManager, ILanguageManager languageManager, IFileManager fileManager, IFileTreeViewSettings fileTreeViewSettings, IMenuManager menuManager, IDotNetImageManager dotNetImageManager, IWpfCommandManager wpfCommandManager, IResourceNodeFactory resourceNodeFactory, IAppSettings appSettings, [ImportMany] IEnumerable <Lazy <IDnSpyFileNodeCreator, IDnSpyFileNodeCreatorMetadata> > dnSpyFileNodeCreators, [ImportMany] IEnumerable <Lazy <IFileTreeNodeDataFinder, IFileTreeNodeDataFinderMetadata> > mefFinders) { this.languageManager = languageManager; this.themeManager = themeManager; this.fileTreeViewSettings = fileTreeViewSettings; this.appSettings = appSettings; this.context = new FileTreeNodeDataContext(this, resourceNodeFactory, filter ?? FilterNothingFileTreeNodeFilter.Instance) { SyntaxHighlight = fileTreeViewSettings.SyntaxHighlight, SingleClickExpandsChildren = fileTreeViewSettings.SingleClickExpandsTreeViewChildren, ShowAssemblyVersion = fileTreeViewSettings.ShowAssemblyVersion, ShowAssemblyPublicKeyToken = fileTreeViewSettings.ShowAssemblyPublicKeyToken, ShowToken = fileTreeViewSettings.ShowToken, Language = languageManager.SelectedLanguage, UseNewRenderer = appSettings.UseNewRenderer_FileTreeView, DeserializeResources = fileTreeViewSettings.DeserializeResources, CanDragAndDrop = isGlobal, }; var options = new TreeViewOptions { AllowDrop = true, IsVirtualizing = true, VirtualizationMode = VirtualizationMode.Recycling, TreeViewListener = this, RootNode = new RootNode { DropNodes = OnDropNodes, DropFiles = OnDropFiles, }, }; this.fileTreeNodeGroups = new FileTreeNodeGroups(); this.dnSpyFileNodeCreators = dnSpyFileNodeCreators.OrderBy(a => a.Metadata.Order).ToArray(); this.treeView = treeViewManager.Create(new Guid(TVConstants.FILE_TREEVIEW_GUID), options); this.fileManager = fileManager; this.dotNetImageManager = dotNetImageManager; var dispatcher = Dispatcher.CurrentDispatcher; this.fileManager.SetDispatcher(a => { if (!dispatcher.HasShutdownFinished && !dispatcher.HasShutdownStarted) { bool callInvoke; lock (actionsToCall) { actionsToCall.Add(a); callInvoke = actionsToCall.Count == 1; } if (callInvoke) { // Always notify with a delay because adding stuff to the tree view could // cause some problems with the tree view or the list box it derives from. dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(CallActions)); } } }); fileManager.CollectionChanged += FileManager_CollectionChanged; languageManager.LanguageChanged += LanguageManager_LanguageChanged; themeManager.ThemeChanged += ThemeManager_ThemeChanged; fileTreeViewSettings.PropertyChanged += FileTreeViewSettings_PropertyChanged; appSettings.PropertyChanged += AppSettings_PropertyChanged; this.wpfCommands = wpfCommandManager.GetCommands(CommandConstants.GUID_FILE_TREEVIEW); if (isGlobal) { menuManager.InitializeContextMenu((FrameworkElement)this.treeView.UIObject, new Guid(MenuConstants.GUIDOBJ_FILES_TREEVIEW_GUID), new GuidObjectsCreator(this.treeView)); wpfCommandManager.Add(CommandConstants.GUID_FILE_TREEVIEW, (UIElement)treeView.UIObject); } this.nodeFinders = mefFinders.OrderBy(a => a.Metadata.Order).ToArray(); InitializeFileTreeNodeGroups(); }
public GuidObjectsCreator(ITreeView treeView) { this.treeView = treeView; }
void ITreeViewItem.SetTools(ITreeView TV) { mTreeView = TV; mContextMenu = new ContextMenu(); AddItemNodeBasicManipulationsOptions(mContextMenu, allowSave: false, allowCopy: false, allowCut: false, allowDuplicate: false, allowDelete: true); }
public CommandHistory(ITreeView tree) => this.tree = tree;
public TreeViewPresenter(ITreeView treeView) { m_TreeView = treeView; }
public static MvcHtmlString TreeView(this HtmlHelper helper, ITreeView treeView, string controller) { return(DrawTree(treeView, controller)); }
public IProjectBrowserService CreateProjectBrowserService(ITreeView treeView) { return(new ProjectBrowserService(services, treeView)); }
public DocumentTreeViewWindowContent(ITreeView treeView) { this.treeView = treeView; treeView.UIObject.Padding = new Thickness(0, 2, 0, 0); }
void ITreeViewItem.SetTools(ITreeView TV) { mTreeView = TV; mContextMenu = new ContextMenu(); AddSourceControlOptions(mContextMenu, false, false); }
public void add(ITreeView objTreeView) { view = objTreeView; dataManager.InitializeDataSet(Application.UserAppDataPath); //dataManager.GetNodeParent("{C9CE6368-C9FD-4878-A9B1-AC197404C1BC}{1}{B0}"); }
public AppSettingsTreeViewNodeClassifierContext(SearchMatcher searchMatcher, string text, ITreeView treeView, TreeNodeData node, bool isToolTip, bool colorize, IReadOnlyCollection <SpanData <object> > colors = null) : base(text, treeView, node, isToolTip, colorize, colors) => SearchMatcher = searchMatcher ?? throw new ArgumentNullException(nameof(searchMatcher));
public void _setTreeView(ITreeView nTreeView) { mTreeView = nTreeView; }
/// <summary> /// Constructor</summary> /// <param name="treeView">Data context of ITreeView to apply a filter</param> /// <param name="filterFunc">Callback to determine if an item in the tree is filtered in (return true) or out</param> public FilteredTreeView(ITreeView treeView, Predicate<object> filterFunc) { m_treeView = treeView; m_filterFunc = filterFunc; }
void ITreeViewItem.SetTools(ITreeView TV) { TV.AddToolbarTool("@Save_16x16.png", "Save", Save); }
public static bool FilterTree(ITreeView treeView, Predicate<MyTreeViewItem> itemFilter) { int visibleCount = 0; for (int i = 0; i < treeView.GetItemCount(); i++) { var item = treeView.GetItem(i); if (FilterTree(item, itemFilter) || (item.GetItemCount() == 0 && itemFilter(item))) { item.Visible = true; ++visibleCount; } else { item.Visible = false; } } return visibleCount > 0; }
void ITreeViewListener.OnEvent(ITreeView treeView, TreeViewListenerEventArgs e) { if (e.Event == TreeViewListenerEvent.NodeCreated) { Debug.Assert(context != null); var node = (ITreeNode)e.Argument; var d = node.Data as AnalyzerTreeNodeData; if (d != null) d.Context = context; return; } }
/// <summary> /// 树形控件数据绑定。 /// </summary> /// <param name="treeView">treeView。</param> /// <param name="listControlsDataSource">数据源接口。</param> public void ListControlsDataSourceBind(ITreeView treeView, IListControlsData listControlsDataSource) { if (treeView != null && listControlsDataSource != null) { treeView.DataSource = listControlsDataSource.DataSource; treeView.IDField = listControlsDataSource.DataValueField; treeView.TitleField = listControlsDataSource.DataTextField; string orderNoField = listControlsDataSource.OrderNoField; if (!string.IsNullOrEmpty(orderNoField)) treeView.OrderNoField = orderNoField; treeView.BuildTree(); } }
public PlaylistFileManager(ITreeView TreeViewInterface) { _view = TreeViewInterface; editDirectoriesGUIdelegate = new ListGUICallBack(EditDirectoriesCallback); }
public WindowsProjectBrowserService(IServiceProvider services, ITabPage tabPage, ITreeView treeView) : base(services, tabPage, treeView) { this.tree.DragEnter += tree_DragEnter; this.tree.DragOver += tree_DragOver; this.tree.DragDrop += tree_DragDrop; this.tree.DragLeave += tree_DragLeave; this.tree.MouseWheel += tree_MouseWheel; }
/// <summary>Perform the command</summary> /// <param name="tree">A tree view to which the changes will be applied.</param> /// <param name="modelChanged">Action to be performed if/when a model is changed.</param> public void Do(ITreeView tree, Action <object> modelChanged) { tree.Delete(this.modelToDelete.FullPath); Pos = this.parent.Children.IndexOf(this.modelToDelete as Model); modelWasRemoved = Structure.Delete(this.modelToDelete as Model); }
void ITreeViewItem.SetTools(ITreeView TV) { //Set Context Menu mContextMenu = new ContextMenu(); }
public void SetTools(ITreeView TV) { return; }
void ITreeViewItem.SetTools(ITreeView TV) { AddItemNodeBasicManipulationsOptions(mContextMenu); AddSourceControlOptions(mContextMenu); }
public void SetTools(ITreeView TV) { }
public IProjectBrowserService CreateProjectBrowserService(ITreeView treeView) { return new ProjectBrowserService(services, treeView); }
private void CleanMocks() { MockCategoryProperty = null; MockMultiView = null; MockTreeView = null; }
///// <summary> ///// 列表类型控件数据绑定。 ///// </summary> ///// <param name="dropDownListEx">DropDownListEx。</param> ///// <param name="listControlsDataSource">数据源接口。</param> //public void ListControlsDataSourceBind(IDataDropDownList dropDownListEx, IListControlsData listControlsDataSource) //{ // if (dropDownListEx != null && listControlsDataSource != null) // { // dropDownListEx.DataTextField = listControlsDataSource.DataTextField; // if (!string.IsNullOrEmpty(listControlsDataSource.DataTextFormatString)) // dropDownListEx.DataTextFormatString = listControlsDataSource.DataTextFormatString; // dropDownListEx.DataValueField = listControlsDataSource.DataValueField; // dropDownListEx.DataSource = listControlsDataSource.DataSource; // dropDownListEx.DataBind(); // } //} /// <summary> /// 树形控件数据绑定。 /// </summary> /// <param name="treeView">treeView。</param> /// <param name="listControlsTreeViewDataSource">数据源接口。</param> public void ListControlsDataSourceBind(ITreeView treeView, IListControlsTreeViewData listControlsTreeViewDataSource) { if (treeView != null && listControlsTreeViewDataSource != null) { treeView.DataSource = listControlsTreeViewDataSource.DataSource; treeView.IDField = listControlsTreeViewDataSource.DataValueField; treeView.PIDField = listControlsTreeViewDataSource.ParentDataValueField; treeView.TitleField = listControlsTreeViewDataSource.DataTextField; treeView.OrderNoField = listControlsTreeViewDataSource.OrderNoField; treeView.BuildTree(); } }
private MyTreeViewItem PrevVisible(ITreeView iTreeView, MyTreeViewItem focused) { MyTreeViewItem pred = focused; TraverseVisible(m_body, a => { if (a == focused) { focused = pred; } else { pred = a; } } ); return focused; }
void ITreeViewItem.SetTools(ITreeView TV) { TV.AddToolbarTool(eImageType.Refresh, "Refresh", TV.Tree.RefreshSelectedTreeNodeChildrens); }
AnalyzerManager(IWpfCommandManager wpfCommandManager, IFileTabManager fileTabManager, ITreeViewManager treeViewManager, IMenuManager menuManager, IThemeManager themeManager, IAnalyzerSettings analyzerSettings, IDotNetImageManager dotNetImageManager, ILanguageManager languageManager, IFileManager fileManager) { this.fileTabManager = fileTabManager; this.context = new AnalyzerTreeNodeDataContext { DotNetImageManager = dotNetImageManager, Language = languageManager.SelectedLanguage, FileManager = fileManager, ShowToken = analyzerSettings.ShowToken, SingleClickExpandsChildren = analyzerSettings.SingleClickExpandsChildren, SyntaxHighlight = analyzerSettings.SyntaxHighlight, UseNewRenderer = analyzerSettings.UseNewRenderer, AnalyzerManager = this, }; var options = new TreeViewOptions { CanDragAndDrop = false, TreeViewListener = this, }; this.treeView = treeViewManager.Create(ANALYZER_TREEVIEW_GUID, options); fileManager.CollectionChanged += FileManager_CollectionChanged; fileTabManager.FileModified += FileTabManager_FileModified; languageManager.LanguageChanged += LanguageManager_LanguageChanged; themeManager.ThemeChanged += ThemeManager_ThemeChanged; analyzerSettings.PropertyChanged += AnalyzerSettings_PropertyChanged; menuManager.InitializeContextMenu((FrameworkElement)this.treeView.UIObject, new Guid(MenuConstants.GUIDOBJ_ANALYZER_TREEVIEW_GUID), new GuidObjectsCreator(this.treeView)); wpfCommandManager.Add(CommandConstants.GUID_ANALYZER_TREEVIEW, (UIElement)this.treeView.UIObject); var cmds = wpfCommandManager.GetCommands(CommandConstants.GUID_ANALYZER_TREEVIEW); var command = new RelayCommand(a => ActivateNode()); cmds.Add(command, ModifierKeys.Control, Key.Enter); cmds.Add(command, ModifierKeys.Shift, Key.Enter); }
void ITreeViewItem.SetTools(ITreeView TV) { }
/// <summary>Undo the command</summary> /// <param name="tree">A tree view to which the changes will be applied.</param> /// <param name="modelChanged">Action to be performed if/when a model is changed.</param> public void Undo(ITreeView tree, Action <object> modelChanged) { this.parent.CurIndex = prevSuppIdx; modelChanged(this.parent); }
protected TreeView(Generator generator, Type type, bool initialize = true) : base(generator, type, initialize) { handler = (ITreeView)Handler; }