diff options
author | Greg Munn <gregm@microsoft.com> | 2019-07-25 21:29:01 +0300 |
---|---|---|
committer | Greg Munn <gregm@microsoft.com> | 2019-07-25 21:29:01 +0300 |
commit | 83e250b8430cdd8a79779c3c34d7825398f8729e (patch) | |
tree | cac2985b27e07535f4749e02b07e65a77aff49cf /main/src | |
parent | 812d2ecbd59ad1c4c978c7f0b82095b3d7574824 (diff) |
[ObjectValue] Some more refactoring to invert controller and view communication
Diffstat (limited to 'main/src')
3 files changed, 35 insertions, 13 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Gtk/GtkObjectValueTreeView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Gtk/GtkObjectValueTreeView.cs index d24cb57222..8e49c4a734 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Gtk/GtkObjectValueTreeView.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/Gtk/GtkObjectValueTreeView.cs @@ -356,6 +356,18 @@ namespace MonoDevelop.Debugger } /// <summary> + /// Triggered when the view tries to expand a node. This may trigger a load of + /// the node's children + /// </summary> + public event EventHandler<ObjectValueNodeEventArgs> NodeExpand; + + /// <summary> + /// Triggered when the view tries to collapse a node. + /// </summary> + + public event EventHandler<ObjectValueNodeEventArgs> NodeCollapse; + + /// <summary> /// Triggered when the view requests a node to fetch more of it's children /// </summary> public event EventHandler<ObjectValueNodeEventArgs> NodeLoadMoreChildren; @@ -538,6 +550,9 @@ namespace MonoDevelop.Debugger } // TODO: if we don't want the scrolling, we can probably get rid of this + /// <summary> + /// Informs the view that the node was expanded and children have been loaded. + /// </summary> public void OnNodeExpanded (ObjectValueNode node) { if (disposed) @@ -924,8 +939,6 @@ namespace MonoDevelop.Debugger return base.OnTestExpandRow (iter, path); } - public event EventHandler<ObjectValueNodeEventArgs> NodeExpanded; - protected override void OnRowExpanded (TreeIter iter, TreePath path) { var node = GetNodeAtIter (iter); @@ -937,11 +950,9 @@ namespace MonoDevelop.Debugger HideValueButton (iter); - NodeExpanded?.Invoke (this, new ObjectValueNodeEventArgs (node)); + NodeExpand?.Invoke (this, new ObjectValueNodeEventArgs (node)); } - public event EventHandler<ObjectValueNodeEventArgs> NodeCollapsed; - protected override void OnRowCollapsed (TreeIter iter, TreePath path) { var node = GetNodeAtIter (iter); @@ -951,7 +962,7 @@ namespace MonoDevelop.Debugger if (compactView) RecalculateWidth (); - NodeCollapsed?.Invoke (this, new ObjectValueNodeEventArgs (node)); + NodeCollapse?.Invoke (this, new ObjectValueNodeEventArgs (node)); // TODO: all this scrolling kind of seems awkward //ScrollToCell (path, expCol, true, 0f, 0f); diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/IObjectValueTreeView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/IObjectValueTreeView.cs index e249f6ac44..2bc96db71c 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/IObjectValueTreeView.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/IObjectValueTreeView.cs @@ -77,13 +77,21 @@ namespace MonoDevelop.Debugger void LoadEvaluatedNode (ObjectValueNode node, ObjectValueNode [] replacementNodes); /// <summary> + /// Triggered when the view tries to expand a node. This may trigger a load of + /// the node's children + /// </summary> + event EventHandler<ObjectValueNodeEventArgs> NodeExpand; + + /// <summary> + /// Triggered when the view tries to collapse a node. + /// </summary> + event EventHandler<ObjectValueNodeEventArgs> NodeCollapse; + + /// <summary> /// Triggered when the view requests a node to fetch more of it's children /// </summary> event EventHandler<ObjectValueNodeEventArgs> NodeLoadMoreChildren; - event EventHandler<ObjectValueNodeEventArgs> NodeExpanded; - event EventHandler<ObjectValueNodeEventArgs> NodeCollapsed; - /// <summary> /// Triggered when the view needs the node to be refreshed /// </summary> @@ -131,6 +139,9 @@ namespace MonoDevelop.Debugger /// </summary> event EventHandler<ObjectValueExpressionEventArgs> ExpressionEdited; + /// <summary> + /// Informs the view that the node was expanded and children have been loaded. + /// </summary> void OnNodeExpanded (ObjectValueNode node); /// <summary> diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs index f5f011b30d..0aa41ee25a 100644 --- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs +++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValue/ObjectValueTreeViewController.cs @@ -204,8 +204,8 @@ namespace MonoDevelop.Debugger }; - view.NodeExpanded += OnViewNodeExpanded; - view.NodeCollapsed += OnViewNodeCollapsed; + view.NodeExpand += OnViewNodeExpand; + view.NodeCollapse += OnViewNodeCollapse; view.NodeLoadMoreChildren += OnViewNodeLoadMoreChildren; view.ExpressionAdded += OnViewExpressionAdded; view.ExpressionEdited += OnViewExpressionEdited; @@ -543,7 +543,7 @@ namespace MonoDevelop.Debugger } #region View event handlers - void OnViewNodeExpanded (object sender, ObjectValueNodeEventArgs e) + void OnViewNodeExpand (object sender, ObjectValueNodeEventArgs e) { ExpandNodeAsync (e.Node).Ignore (); } @@ -551,7 +551,7 @@ namespace MonoDevelop.Debugger /// <summary> /// Marks a node as not expanded /// </summary> - void OnViewNodeCollapsed (object sender, ObjectValueNodeEventArgs e) + void OnViewNodeCollapse (object sender, ObjectValueNodeEventArgs e) { e.Node.IsExpanded = false; } |