diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.addin b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.addin index 646be89dae..e6ef2df692 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.addin +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.addin @@ -153,10 +153,18 @@ - + + + + + + diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.csproj b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.csproj index c9cb830659..3c14dc9d30 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.csproj +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.csproj @@ -146,7 +146,6 @@ EditBreakpointScriptForm.cs - Configuration\GlobalAssemblyInfo.cs @@ -200,8 +199,17 @@ - + + + GridVisualizerWindow.xaml + Code + + + + + + @@ -275,6 +283,7 @@ + {3A9AE6AA-BC07-4A2F-972C-581E3AE2F195} NRefactory @@ -296,6 +305,7 @@ + diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/Layout/PositionedNode.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/Layout/PositionedNode.cs index 0199f60f14..35f5d63f93 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/Layout/PositionedNode.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/Layout/PositionedNode.cs @@ -37,7 +37,7 @@ namespace Debugger.AddIn.Visualizers.Graph.Layout } } - public PositionedNodeProperty AddProperty(ObjectProperty objectProperty, bool isExpanded) + public PositionedNodeProperty AddProperty(ObjectGraphProperty objectProperty, bool isExpanded) { var newProperty = new PositionedNodeProperty(objectProperty, this); newProperty.IsExpanded = isExpanded; diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/Layout/PositionedNodeProperty.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/Layout/PositionedNodeProperty.cs index 596b4087e1..9851258ac6 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/Layout/PositionedNodeProperty.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/Layout/PositionedNodeProperty.cs @@ -17,7 +17,7 @@ namespace Debugger.AddIn.Visualizers.Graph.Layout /// Creates new PositionedNodeProperty. /// /// Underlying - public PositionedNodeProperty(ObjectProperty objectProperty, PositionedNode containingNode) + public PositionedNodeProperty(ObjectGraphProperty objectProperty, PositionedNode containingNode) { this.objectProperty = objectProperty; this.containingNode = containingNode; @@ -25,11 +25,11 @@ namespace Debugger.AddIn.Visualizers.Graph.Layout public bool IsExpanded { get; set; } - private ObjectProperty objectProperty; + private ObjectGraphProperty objectProperty; /// /// Underlying . /// - public ObjectProperty ObjectProperty + public ObjectGraphProperty ObjectProperty { get { return this.objectProperty; } } diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/Layout/Tree/TreeLayouter.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/Layout/Tree/TreeLayouter.cs index c5f943fc97..d2f022e550 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/Layout/Tree/TreeLayouter.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/Layout/Tree/TreeLayouter.cs @@ -64,7 +64,7 @@ namespace Debugger.AddIn.Visualizers.Graph.Layout treeNodeFor[objectGraphNode] = newTreeNode; double subtreeSize = 0; - foreach (ObjectProperty property in objectGraphNode.Properties) + foreach (ObjectGraphProperty property in objectGraphNode.Properties) { if (property.TargetNode != null) { diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectGraphBuilder.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectGraphBuilder.cs index 74a111a1aa..834a55afb6 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectGraphBuilder.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectGraphBuilder.cs @@ -168,7 +168,7 @@ namespace Debugger.AddIn.Visualizers.Graph /// private void loadChildrenRecursive(ObjectNode thisNode, ExpandedNodes expandedNodes) { - foreach(ObjectProperty complexProperty in thisNode.ComplexProperties) + foreach(ObjectGraphProperty complexProperty in thisNode.ComplexProperties) { Expression memberExpr = complexProperty.Expression; ObjectNode targetNode = null; diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectGraphProperty.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectGraphProperty.cs new file mode 100644 index 0000000000..9224ce40b1 --- /dev/null +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectGraphProperty.cs @@ -0,0 +1,23 @@ +// +// +// +// +// $Revision$ +// +using System; +using System.Collections.Generic; +using System.Text; + +namespace Debugger.AddIn.Visualizers.Graph +{ + /// + /// ObjectProperty used in ObjectGraph. Has TargetNode. + /// + public class ObjectGraphProperty : ObjectProperty + { + /// + /// Node that this property points to. Can be null. Always null if is true. + /// + public ObjectNode TargetNode { get; set; } + } +} diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectNode.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectNode.cs index 562fad418c..34d6d25c83 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectNode.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectNode.cs @@ -46,9 +46,9 @@ namespace Debugger.AddIn.Visualizers.Graph _edges.Add(new ObjectEdge { Name = edgeName, SourceNode = this, TargetNode = targetNode }); }*/ - class PropertyComparer : IComparer + class PropertyComparer : IComparer { - public int Compare(ObjectProperty prop1, ObjectProperty prop2) + public int Compare(ObjectGraphProperty prop1, ObjectGraphProperty prop2) { // order by IsAtomic, Name int atomic = prop2.IsAtomic.CompareTo(prop1.IsAtomic); @@ -67,11 +67,11 @@ namespace Debugger.AddIn.Visualizers.Graph private bool sorted = false; - private List properties = new List(); + private List properties = new List(); /// /// Properties (either atomic or complex) of the object this node represents. /// - public List Properties + public List Properties { get { @@ -86,7 +86,7 @@ namespace Debugger.AddIn.Visualizers.Graph /// /// Only complex properties filtered out of /// - public IEnumerable ComplexProperties + public IEnumerable ComplexProperties { get { @@ -103,7 +103,7 @@ namespace Debugger.AddIn.Visualizers.Graph /// internal void AddAtomicProperty(string name, string value, Expression expression) { - properties.Add(new ObjectProperty + properties.Add(new ObjectGraphProperty { Name = name, Value = value, Expression = expression, IsAtomic = true, TargetNode = null }); } @@ -112,7 +112,7 @@ namespace Debugger.AddIn.Visualizers.Graph /// internal void AddComplexProperty(string name, string value, Expression expression, ObjectNode targetNode, bool isNull) { - properties.Add(new ObjectProperty + properties.Add(new ObjectGraphProperty { Name = name, Value = value, Expression = expression, IsAtomic = false, TargetNode = targetNode, IsNull = isNull }); } } diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ShowObjectGraphVisualizerCommand.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ShowObjectGraphVisualizerCommand.cs index 81394c3116..e62b4a0412 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ShowObjectGraphVisualizerCommand.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ShowObjectGraphVisualizerCommand.cs @@ -6,7 +6,6 @@ // using System; using System.Text; -using System.Windows.Forms; using ICSharpCode.Core; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/WinFormsControl.resx b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/WinFormsControl.resx deleted file mode 100644 index 7080a7d118..0000000000 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/WinFormsControl.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/GridVisualizerWindow.xaml b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/GridVisualizerWindow.xaml new file mode 100644 index 0000000000..a4e01adea4 --- /dev/null +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/GridVisualizerWindow.xaml @@ -0,0 +1,40 @@ + + + + + + + + + + + + Expression: + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/GridVisualizerWindow.xaml.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/GridVisualizerWindow.xaml.cs new file mode 100644 index 0000000000..49e1719aef --- /dev/null +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/GridVisualizerWindow.xaml.cs @@ -0,0 +1,29 @@ +// +// +// +// +// $Revision$ +// +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; + +namespace Debugger.AddIn.Visualizers.GridVisualizer +{ + /// + /// Interaction logic for GridVisualizerWindow.xaml + /// + public partial class GridVisualizerWindow : Window + { + public GridVisualizerWindow() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ObjectValue.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ObjectValue.cs new file mode 100644 index 0000000000..f523b2d270 --- /dev/null +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ObjectValue.cs @@ -0,0 +1,32 @@ +// +// +// +// +// $Revision$ +// +using System; +using System.Collections.Generic; +using Debugger.AddIn.Visualizers.Utils; + +namespace Debugger.AddIn.Visualizers.GridVisualizer +{ + /// + /// Description of ObjectValue. + /// + public class ObjectValue + { + private Dictionary properties = new Dictionary(); + + public ObjectProperty this[string key] + { + get + { + return properties.GetValue(key); + } + set + { + properties[key] = value; + } + } + } +} diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ShowGridVisualizerCommand.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ShowGridVisualizerCommand.cs new file mode 100644 index 0000000000..a8f0da22dc --- /dev/null +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ShowGridVisualizerCommand.cs @@ -0,0 +1,24 @@ +// +// +// +// +// $Revision$ +// +using ICSharpCode.Core; +using System; + +namespace Debugger.AddIn.Visualizers.GridVisualizer +{ + /// + /// Description of ShowGridVisualizerCommand. + /// + public class ShowGridVisualizerCommand : AbstractMenuCommand + { + public override void Run() + { + GridVisualizerWindow window = new GridVisualizerWindow(); + window.Topmost = true; + window.Show(); + } + } +} diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/EnumerableValuesProvider.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/EnumerableValuesProvider.cs new file mode 100644 index 0000000000..5b8b6a3c5b --- /dev/null +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/EnumerableValuesProvider.cs @@ -0,0 +1,38 @@ +// +// +// +// +// $Revision$ +// +using System; +using Debugger.Expressions; +using ICSharpCode.SharpDevelop.Services; +using System.Collections.Generic; + +namespace Debugger.AddIn.Visualizers.GridVisualizer.ValueProviders +{ + /// + /// Provides s for debugee objects implementing IEnumerable. + /// + public class EnumerableValuesProvider + { + private WindowsDebugger debugger; + + public EnumerableValuesProvider(WindowsDebugger debuggerService, Expression targetObject) + { + this.debugger = debuggerService; + this.itemsSource = enumerateItems(targetObject); + } + + private IEnumerable itemsSource; + public IEnumerable ItemsSource + { + get { return this.itemsSource; } + } + + private IEnumerable enumerateItems(Expression targetObject) + { + return null; + } + } +} diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/ListValuesProvider.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/ListValuesProvider.cs new file mode 100644 index 0000000000..c515302594 --- /dev/null +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/ListValuesProvider.cs @@ -0,0 +1,37 @@ +// +// +// +// +// $Revision$ +// +using System; +using ICSharpCode.SharpDevelop.Services; +using Debugger.Expressions; + +namespace Debugger.AddIn.Visualizers.GridVisualizer.ValueProviders +{ + /// + /// Provides s for debugee objects implementing IList. + /// + public class ListValuesProvider + { + private WindowsDebugger debugger; + private Expression targetObject; + + public ListValuesProvider(WindowsDebugger debuggerService, Expression targetObject) + { + this.debugger = debuggerService; + this.targetObject = targetObject; + } + + public int GetCount() + { + return -1; + } + + public ObjectValue GetItemAt(int index) + { + return null; + } + } +} diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectProperty.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/ObjectProperty.cs similarity index 67% rename from src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectProperty.cs rename to src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/ObjectProperty.cs index b6416bf0e2..14e8117708 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Graph/ObjectGraph/ObjectProperty.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/ObjectProperty.cs @@ -5,17 +5,15 @@ // $Revision$ // using System; -using System.Collections.Generic; -using System.Text; -namespace Debugger.AddIn.Visualizers.Graph +namespace Debugger.AddIn.Visualizers { - /// - /// Primitive property of an object, in string form. - /// - public class ObjectProperty - { - /// + /// + /// Property of an object, in string form. + /// + public class ObjectProperty + { + /// /// e.g. "Age" /// public string Name { get; set; } @@ -35,14 +33,9 @@ namespace Debugger.AddIn.Visualizers.Graph /// public bool IsAtomic { get; set; } - /// - /// Node that this property points to. Can be null. Always null if is true. - /// - public ObjectNode TargetNode { get; set; } - /// /// Is this property value null? Only meaningful if is false. /// public bool IsNull { get; set; } - } + } }