Author: mkrueger
Date: 2008-02-06 22:07:04 -0500 (Wed, 06 Feb 2008)
New Revision: 95109
Added:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilParameter.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilReturnType.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/BaseTypeFolder.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/BaseTypeFolderNodeBuilder.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomReturnTypeNodeBuilder.cs
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/ChangeLog
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilEvent.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilField.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilProperty.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilType.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.mdp
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs
Log:
* MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs,
MonoDevelop.AssemblyBrowser.Dom/DomCecilParameter.cs,
MonoDevelop.AssemblyBrowser.Dom/DomCecilType.cs,
MonoDevelop.AssemblyBrowser.Dom/DomCecilEvent.cs,
MonoDevelop.AssemblyBrowser.Dom/DomCecilReturnType.cs,
MonoDevelop.AssemblyBrowser.Dom/DomCecilField.cs,
MonoDevelop.AssemblyBrowser.Dom/DomCecilProperty.cs,
MonoDevelop.AssemblyBrowser/BaseTypeFolderNodeBuilder.cs,
MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs,
MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs,
MonoDevelop.AssemblyBrowser/DomReturnTypeNodeBuilder.cs,
MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs,
MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs,
MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs,
MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs,
MonoDevelop.AssemblyBrowser/BaseTypeFolder.cs: Worked on assembly
browser (Now using dom output).
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/ChangeLog
2008-02-07 03:06:21 UTC (rev 95108)
+++ trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/ChangeLog
2008-02-07 03:07:04 UTC (rev 95109)
@@ -1,4 +1,24 @@
2008-02-07 Mike Krüger <[EMAIL PROTECTED]>
+ * MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs,
+ MonoDevelop.AssemblyBrowser.Dom/DomCecilParameter.cs,
+ MonoDevelop.AssemblyBrowser.Dom/DomCecilType.cs,
+ MonoDevelop.AssemblyBrowser.Dom/DomCecilEvent.cs,
+ MonoDevelop.AssemblyBrowser.Dom/DomCecilReturnType.cs,
+ MonoDevelop.AssemblyBrowser.Dom/DomCecilField.cs,
+ MonoDevelop.AssemblyBrowser.Dom/DomCecilProperty.cs,
+ MonoDevelop.AssemblyBrowser/BaseTypeFolderNodeBuilder.cs,
+ MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs,
+ MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs,
+ MonoDevelop.AssemblyBrowser/DomReturnTypeNodeBuilder.cs,
+ MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs,
+ MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs,
+ MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs,
+ MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs,
+ MonoDevelop.AssemblyBrowser/BaseTypeFolder.cs: Worked on assembly
+ browser (Now using dom output).
+
+2008-02-07 Mike Krüger <[EMAIL PROTECTED]>
+
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -61,7 +61,9 @@
new DomMethodNodeBuilder (),
new DomFieldNodeBuilder (),
new DomEventNodeBuilder (),
- new DomPropertyNodeBuilder ()
+ new DomPropertyNodeBuilder (),
+ new BaseTypeFolderNodeBuilder (),
+ new DomReturnTypeNodeBuilder ()
}, new TreePadOption [] {});
scrolledwindow2.Add (treeView);
scrolledwindow2.ShowAll ();
Added:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/BaseTypeFolder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/BaseTypeFolder.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/BaseTypeFolder.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -0,0 +1,48 @@
+//
+// BaseTypeFolder.cs
+//
+// Author:
+// Mike Krüger <[EMAIL PROTECTED]>
+//
+// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using MonoDevelop.Ide.Dom;
+namespace MonoDevelop.AssemblyBrowser
+{
+ public class BaseTypeFolder
+ {
+ IType type;
+
+ public IType Type {
+ get {
+ return type;
+ }
+ }
+
+ public BaseTypeFolder (IType type)
+ {
+ this.type = type;
+ }
+ }
+}
Added:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/BaseTypeFolderNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/BaseTypeFolderNodeBuilder.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/BaseTypeFolderNodeBuilder.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -0,0 +1,78 @@
+//
+// BaseTypeFolderNodeBuilder.cs
+//
+// Author:
+// Mike Krüger <[EMAIL PROTECTED]>
+//
+// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections.Generic;
+
+using Mono.Cecil;
+
+using MonoDevelop.Core.Gui;
+using MonoDevelop.Ide.Gui;
+using MonoDevelop.Ide.Dom;
+using MonoDevelop.Ide.Gui.Pads;
+using MonoDevelop.AssemblyBrowser.Dom;
+
+namespace MonoDevelop.AssemblyBrowser
+{
+ public class BaseTypeFolderNodeBuilder : TypeNodeBuilder
+ {
+ public override Type NodeDataType {
+ get { return typeof(BaseTypeFolder); }
+ }
+
+ public override string GetNodeName (ITreeNavigator thisNode,
object dataObject)
+ {
+ return "Base Types";
+ }
+
+ public override void BuildNode (ITreeBuilder treeBuilder,
object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf
closedIcon)
+ {
+ label = MonoDevelop.Core.GettextCatalog.GetString
("Base Types");
+ icon = Context.GetIcon (Stock.OpenFolder);
+ closedIcon = Context.GetIcon (Stock.ClosedFolder);
+ }
+
+ public override void BuildChildNodes (ITreeBuilder ctx, object
dataObject)
+ {
+ BaseTypeFolder baseTypeFolder =
(BaseTypeFolder)dataObject;
+ ctx.AddChild (baseTypeFolder.Type.BaseType);
+ foreach (IType type in
baseTypeFolder.Type.ImplementedInterfaces) {
+ ctx.AddChild (type);
+ }
+ }
+
+ public override bool HasChildNodes (ITreeBuilder builder,
object dataObject)
+ {
+ return true;
+ }
+ public override int CompareObjects (ITreeNavigator thisNode,
ITreeNavigator otherNode)
+ {
+ return -1;
+ }
+ }
+}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -39,6 +39,8 @@
{
public class DomEventNodeBuilder : TypeNodeBuilder
{
+ static readonly string[] iconTable = {Stock.Event,
Stock.PrivateEvent, Stock.ProtectedEvent, Stock.InternalEvent};
+
public override Type NodeDataType {
get { return typeof(IEvent); }
}
@@ -53,8 +55,9 @@
{
IEvent evt = (IEvent)dataObject;
label = evt.Name;
- icon = Context.GetIcon (Stock.Event);
+ icon = Context.GetIcon
(iconTable[DomTypeNodeBuilder.GetModifierOffset (evt.Modifiers)]);
}
+
public override int CompareObjects (ITreeNavigator thisNode,
ITreeNavigator otherNode)
{
if (otherNode.DataItem is IEvent)
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -32,6 +32,7 @@
using MonoDevelop.Core.Gui;
using MonoDevelop.Ide.Dom;
+using MonoDevelop.Ide.Dom.Output;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Gui.Pads;
@@ -39,6 +40,8 @@
{
public class DomFieldNodeBuilder : TypeNodeBuilder
{
+ static readonly string[] iconTable = {Stock.Field,
Stock.PrivateField, Stock.ProtectedField, Stock.InternalField};
+
public override Type NodeDataType {
get { return typeof(IField); }
}
@@ -52,19 +55,21 @@
public override void BuildNode (ITreeBuilder treeBuilder,
object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf
closedIcon)
{
IField field = (IField)dataObject;
- label = field.Name;
- icon = Context.GetIcon (Stock.Field);
+ label = AmbienceService.Default.GetString (field,
OutputFlags.ClassBrowserEntries);
+ icon = Context.GetIcon
(iconTable[DomTypeNodeBuilder.GetModifierOffset (field.Modifiers)]);
}
+
public override int CompareObjects (ITreeNavigator thisNode,
ITreeNavigator otherNode)
{
if (otherNode.DataItem is IMethod)
return 1;
if (otherNode.DataItem is IProperty)
return 1;
+ if (otherNode.DataItem is BaseTypeFolder)
+ return 1;
if (otherNode.DataItem is IField)
return
((IField)thisNode.DataItem).Name.CompareTo (((IField)otherNode.DataItem).Name);
return -1;
}
-
}
}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -32,6 +32,7 @@
using MonoDevelop.Core.Gui;
using MonoDevelop.Ide.Dom;
+using MonoDevelop.Ide.Dom.Output;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Gui.Pads;
@@ -39,6 +40,8 @@
{
public class DomMethodNodeBuilder : TypeNodeBuilder
{
+ static readonly string[] iconTable = {Stock.Method,
Stock.PrivateMethod, Stock.ProtectedMethod, Stock.InternalMethod};
+
public override Type NodeDataType {
get { return typeof(IMethod); }
}
@@ -52,12 +55,14 @@
public override void BuildNode (ITreeBuilder treeBuilder,
object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf
closedIcon)
{
IMethod method = (IMethod)dataObject;
- System.Console.WriteLine("Method" + method);
- label = method.Name;
- icon = Context.GetIcon (Stock.Method);
+ label = AmbienceService.Default.GetString (method,
OutputFlags.ClassBrowserEntries);
+ icon = Context.GetIcon
(iconTable[DomTypeNodeBuilder.GetModifierOffset (method.Modifiers)]);
}
+
public override int CompareObjects (ITreeNavigator thisNode,
ITreeNavigator otherNode)
{
+ if (otherNode.DataItem is BaseTypeFolder)
+ return 1;
if (otherNode.DataItem is IMethod)
return
((IMethod)thisNode.DataItem).Name.CompareTo
(((IMethod)otherNode.DataItem).Name);
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -32,6 +32,7 @@
using MonoDevelop.Core.Gui;
using MonoDevelop.Ide.Dom;
+using MonoDevelop.Ide.Dom.Output;
using MonoDevelop.Ide.Gui;
using MonoDevelop.Ide.Gui.Pads;
@@ -39,6 +40,8 @@
{
public class DomPropertyNodeBuilder : TypeNodeBuilder
{
+ static readonly string[] iconTable = {Stock.Property,
Stock.PrivateProperty, Stock.ProtectedProperty, Stock.InternalProperty};
+
public override Type NodeDataType {
get { return typeof(IProperty); }
}
@@ -51,14 +54,16 @@
public override void BuildNode (ITreeBuilder treeBuilder,
object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf
closedIcon)
{
- IProperty poperty = (IProperty)dataObject;
- label = poperty.Name;
- icon = Context.GetIcon (Stock.Property);
+ IProperty property = (IProperty)dataObject;
+ label = AmbienceService.Default.GetString (property,
OutputFlags.ClassBrowserEntries);
+ icon = Context.GetIcon
(iconTable[DomTypeNodeBuilder.GetModifierOffset (property.Modifiers)]);
}
public override int CompareObjects (ITreeNavigator thisNode,
ITreeNavigator otherNode)
{
if (otherNode.DataItem is IMethod)
return 1;
+ if (otherNode.DataItem is BaseTypeFolder)
+ return 1;
if (otherNode.DataItem is IProperty)
return
((IProperty)thisNode.DataItem).Name.CompareTo
(((IProperty)otherNode.DataItem).Name);
return -1;
Added:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomReturnTypeNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomReturnTypeNodeBuilder.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomReturnTypeNodeBuilder.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -0,0 +1,59 @@
+//
+// DomReturnTypeNodeBuilder.cs
+//
+// Author:
+// Mike Krüger <[EMAIL PROTECTED]>
+//
+// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+using Mono.Cecil;
+
+using MonoDevelop.Core.Gui;
+using MonoDevelop.Ide.Dom;
+using MonoDevelop.Ide.Gui;
+using MonoDevelop.Ide.Gui.Pads;
+
+namespace MonoDevelop.AssemblyBrowser
+{
+ public class DomReturnTypeNodeBuilder : TypeNodeBuilder
+ {
+ public override Type NodeDataType {
+ get { return typeof(IReturnType); }
+ }
+
+ public override string GetNodeName (ITreeNavigator thisNode,
object dataObject)
+ {
+ IReturnType returnType = (IReturnType)dataObject;
+ return returnType.FullName;
+ }
+
+ public override void BuildNode (ITreeBuilder treeBuilder,
object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf
closedIcon)
+ {
+ IReturnType returnType = (IReturnType)dataObject;
+ label = returnType.Name;
+ icon = Context.GetIcon (Stock.Class);
+ }
+ }
+}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -55,12 +55,38 @@
label = type.Name ?? "-";
label = label.Replace ("<", "<");
label = label.Replace (">", ">");
- icon = Context.GetIcon (Stock.Class);
+ icon = Context.GetIcon (GetIcon (type));
}
+ static string[,] iconTable = new string[,] {
+ {Stock.Error, Stock.Error, Stock.Error,
Stock.Error}, // unknown
+ {Stock.Class, Stock.PrivateClass,
Stock.ProtectedClass, Stock.InternalClass}, // class
+ {Stock.Enum, Stock.PrivateEnum,
Stock.ProtectedEnum, Stock.InternalEnum}, // enum
+ {Stock.Interface, Stock.PrivateInterface,
Stock.ProtectedInterface, Stock.InternalInterface}, // interface
+ {Stock.Struct, Stock.PrivateStruct,
Stock.ProtectedStruct, Stock.InternalStruct}, // struct
+ {Stock.Delegate, Stock.PrivateDelegate,
Stock.ProtectedDelegate, Stock.InternalDelegate} // delegate
+ };
+
+ public static int GetModifierOffset (Modifiers modifier)
+ {
+ if ((modifier & Modifiers.Private) == Modifiers.Private)
+ return 1;
+ if ((modifier & Modifiers.Protected) ==
Modifiers.Protected)
+ return 2;
+ if ((modifier & Modifiers.Internal) ==
Modifiers.Internal)
+ return 3;
+ return 0;
+ }
+
+ public static string GetIcon (IType type)
+ {
+ return iconTable[(int)type.ClassType, GetModifierOffset
(type.Modifiers)];
+ }
+
public override void BuildChildNodes (ITreeBuilder ctx, object
dataObject)
{
IType type = (IType)dataObject;
+ ctx.AddChild (new BaseTypeFolder (type));
foreach (object o in type.Members) {
ctx.AddChild (o);
}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilEvent.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilEvent.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilEvent.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -38,7 +38,7 @@
{
this.eventDefinition = eventDefinition;
base.name = eventDefinition.Name;
- base.modifiers = DomCecilType.GetModifiers
(eventDefinition.Attributes);
+ base.modifiers = DomCecilType.GetModifiers
(eventDefinition.AddMethod.Attributes);
}
}
}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilField.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilField.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilField.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -39,6 +39,7 @@
this.fieldDefinition = fieldDefinition;
base.name = fieldDefinition.Name;
base.modifiers = DomCecilType.GetModifiers
(fieldDefinition.Attributes);
+ base.returnType = new DomCecilReturnType
(fieldDefinition.FieldType);
}
}
}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -40,6 +40,10 @@
this.methodDefinition = methodDefinition;
base.name = methodDefinition.Name;
base.modifiers = DomCecilType.GetModifiers
(methodDefinition.Attributes);
+ base.returnType = new DomCecilReturnType
(methodDefinition.ReturnType.ReturnType);
+ foreach (ParameterDefinition paramDef in
methodDefinition.Parameters) {
+ base.parameters.Add (new DomCecilParameter
(paramDef));
+ }
}
}
}
Added:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilParameter.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilParameter.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilParameter.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -0,0 +1,46 @@
+//
+// DomCecilParameter.cs
+//
+// Author:
+// Mike Krüger <[EMAIL PROTECTED]>
+//
+// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using Mono.Cecil;
+
+namespace MonoDevelop.AssemblyBrowser.Dom
+{
+ public class DomCecilParameter : MonoDevelop.Ide.Dom.DomParameter
+ {
+ ParameterDefinition parameterDefinition;
+
+ public DomCecilParameter (ParameterDefinition
parameterDefinition)
+ {
+ this.parameterDefinition = parameterDefinition;
+ base.name = parameterDefinition.Name;
+// base.modifiers = DomCecilType.GetModifiers
(parameterDefinition..Attributes);
+ base.returnType = new DomCecilReturnType
(parameterDefinition.ParameterType);
+ }
+ }
+}
\ No newline at end of file
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilProperty.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilProperty.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilProperty.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -39,7 +39,8 @@
{
this.propertyDefinition = propertyDefinition;
base.name = propertyDefinition.Name;
- base.modifiers = DomCecilType.GetModifiers
(propertyDefinition.Attributes);
+ base.modifiers = DomCecilType.GetModifiers
((propertyDefinition.GetMethod != null ? propertyDefinition.GetMethod :
propertyDefinition.SetMethod).Attributes);
+ base.returnType = new DomCecilReturnType
(propertyDefinition.PropertyType);
}
}
}
Added:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilReturnType.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilReturnType.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilReturnType.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -0,0 +1,42 @@
+//
+// DomCecilReturnType.cs
+//
+// Author:
+// Mike Krüger <[EMAIL PROTECTED]>
+//
+// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using Mono.Cecil;
+
+namespace MonoDevelop.AssemblyBrowser
+{
+ public class DomCecilReturnType : MonoDevelop.Ide.Dom.DomReturnType
+ {
+ public DomCecilReturnType (TypeReference typeReference)
+ {
+ this.name = typeReference.Name;
+ this.nspace = typeReference.Namespace;
+ }
+ }
+}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilType.cs
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilType.cs
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilType.cs
2008-02-07 03:07:04 UTC (rev 95109)
@@ -28,6 +28,7 @@
using System;
using Mono.Cecil;
+using MonoDevelop.Ide.Dom;
namespace MonoDevelop.AssemblyBrowser.Dom
{
@@ -35,13 +36,31 @@
{
TypeDefinition typeDefinition;
+ static ClassType GetClassType (TypeDefinition typeDefinition)
+ {
+ if (typeDefinition.IsInterface)
+ return ClassType.Interface;
+ if (typeDefinition.IsEnum)
+ return ClassType.Enum;
+ if (typeDefinition.IsValueType)
+ return ClassType.Struct;
+ // Todo: Delegates
+ return ClassType.Class;
+ }
+
public DomCecilType (TypeDefinition typeDefinition)
{
this.typeDefinition = typeDefinition;
+ this.classType = GetClassType (typeDefinition);
this.name = typeDefinition.Name;
this.namesp = typeDefinition.Namespace;
this.modifiers = GetModifiers
(typeDefinition.Attributes);
+ if (typeDefinition.BaseType != null)
+ this.baseType = new DomCecilReturnType
(typeDefinition.BaseType);
+ foreach (TypeReference interfaceReference in
typeDefinition.Interfaces) {
+ this.implementedInterfaces.Add (new
DomCecilReturnType (interfaceReference));
+ }
foreach (FieldDefinition fieldDefinition in
typeDefinition.Fields)
base.members.Add (new DomCecilField
(fieldDefinition));
foreach (MethodDefinition methodDefinition in
typeDefinition.Methods)
@@ -55,30 +74,99 @@
public static MonoDevelop.Ide.Dom.Modifiers GetModifiers
(Mono.Cecil.TypeAttributes attr)
{
MonoDevelop.Ide.Dom.Modifiers result =
MonoDevelop.Ide.Dom.Modifiers.None;
+ if ((attr & TypeAttributes.Abstract) ==
TypeAttributes.Abstract)
+ result |= Modifiers.Abstract;
+ if ((attr & TypeAttributes.Sealed) ==
TypeAttributes.Sealed)
+ result |= Modifiers.Sealed;
+
+ if ((attr & TypeAttributes.Public) ==
TypeAttributes.Public) {
+ result |= Modifiers.Public;
+ } else if ((attr & TypeAttributes.NestedFamANDAssem) ==
TypeAttributes.NestedFamANDAssem) {
+ result |= Modifiers.ProtectedAndInternal;
+ } else if ((attr & TypeAttributes.NestedFamORAssem) ==
TypeAttributes.NestedFamORAssem) {
+ result |= Modifiers.ProtectedOrInternal;
+ } else if ((attr & TypeAttributes.NestedFamily) ==
TypeAttributes.NestedFamily) {
+ result |= Modifiers.Protected;
+ } else if ((attr & TypeAttributes.NestedAssembly) ==
TypeAttributes.NestedAssembly) {
+ result |= Modifiers.Internal;
+ } else {
+ result |= Modifiers.Private;
+ }
return result;
}
public static MonoDevelop.Ide.Dom.Modifiers GetModifiers
(Mono.Cecil.FieldAttributes attr)
{
MonoDevelop.Ide.Dom.Modifiers result =
MonoDevelop.Ide.Dom.Modifiers.None;
+
+ if ((attr & FieldAttributes.Literal) ==
FieldAttributes.Literal)
+ result |= Modifiers.Literal;
+ if ((attr & FieldAttributes.Static) ==
FieldAttributes.Static)
+ result |= Modifiers.Static;
+ if ((attr & FieldAttributes.SpecialName) ==
FieldAttributes.SpecialName)
+ result |= Modifiers.SpecialName;
+ if ((attr & FieldAttributes.InitOnly) ==
FieldAttributes.InitOnly)
+ result |= Modifiers.Readonly;
+
+ if ((attr & FieldAttributes.Public) ==
FieldAttributes.Public) {
+ result |= Modifiers.Public;
+ } else if ((attr & FieldAttributes.FamANDAssem) ==
FieldAttributes.FamANDAssem) {
+ result |= Modifiers.ProtectedAndInternal;
+ } else if ((attr & FieldAttributes.FamORAssem) ==
FieldAttributes.FamORAssem) {
+ result |= Modifiers.ProtectedOrInternal;
+ } else if ((attr & FieldAttributes.Family) ==
FieldAttributes.Family) {
+ result |= Modifiers.Protected;
+ } else if ((attr & FieldAttributes.Assembly) ==
FieldAttributes.Assembly) {
+ result |= Modifiers.Internal;
+ } else {
+ result |= Modifiers.Private;
+ }
return result;
}
public static MonoDevelop.Ide.Dom.Modifiers GetModifiers
(Mono.Cecil.EventAttributes attr)
{
MonoDevelop.Ide.Dom.Modifiers result =
MonoDevelop.Ide.Dom.Modifiers.None;
+ if ((attr & EventAttributes.SpecialName) ==
EventAttributes.SpecialName)
+ result |= Modifiers.SpecialName;
return result;
}
public static MonoDevelop.Ide.Dom.Modifiers GetModifiers
(Mono.Cecil.MethodAttributes attr)
{
MonoDevelop.Ide.Dom.Modifiers result =
MonoDevelop.Ide.Dom.Modifiers.None;
+
+ if ((attr & MethodAttributes.Static) ==
MethodAttributes.Static)
+ result |= Modifiers.Static;
+ if ((attr & MethodAttributes.Abstract) ==
MethodAttributes.Abstract)
+ result |= Modifiers.Static;
+ if ((attr & MethodAttributes.Virtual) ==
MethodAttributes.Virtual)
+ result |= Modifiers.Virtual;
+ if ((attr & MethodAttributes.Final) ==
MethodAttributes.Final)
+ result |= Modifiers.Final;
+
+ if ((attr & MethodAttributes.Public) ==
MethodAttributes.Public) {
+ result |= Modifiers.Public;
+ } else if ((attr & MethodAttributes.FamANDAssem) ==
MethodAttributes.FamANDAssem) {
+ result |= Modifiers.ProtectedAndInternal;
+ } else if ((attr & MethodAttributes.FamORAssem) ==
MethodAttributes.FamORAssem) {
+ result |= Modifiers.ProtectedOrInternal;
+ } else if ((attr & MethodAttributes.Family) ==
MethodAttributes.Family) {
+ result |= Modifiers.Protected;
+ } else if ((attr & MethodAttributes.Assem) ==
MethodAttributes.Assem) {
+ result |= Modifiers.Internal;
+ } else {
+ result |= Modifiers.Private;
+ }
+
return result;
}
public static MonoDevelop.Ide.Dom.Modifiers GetModifiers
(Mono.Cecil.PropertyAttributes attr)
{
MonoDevelop.Ide.Dom.Modifiers result =
MonoDevelop.Ide.Dom.Modifiers.None;
+ if ((attr & PropertyAttributes.SpecialName) ==
PropertyAttributes.SpecialName)
+ result |= Modifiers.SpecialName;
return result;
}
}
Modified:
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.mdp
===================================================================
---
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.mdp
2008-02-07 03:06:21 UTC (rev 95108)
+++
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.mdp
2008-02-07 03:07:04 UTC (rev 95109)
@@ -48,6 +48,11 @@
<File name="MonoDevelop.AssemblyBrowser/ErrorNodeBuilder.cs"
subtype="Code" buildaction="Compile" />
<File name="MonoDevelop.AssemblyBrowser/ModuleReferenceNodeBuilder.cs"
subtype="Code" buildaction="Compile" />
<File name="ChangeLog" subtype="Code" buildaction="Nothing" />
+ <File name="MonoDevelop.AssemblyBrowser/BaseTypeFolder.cs" subtype="Code"
buildaction="Compile" />
+ <File name="MonoDevelop.AssemblyBrowser/BaseTypeFolderNodeBuilder.cs"
subtype="Code" buildaction="Compile" />
+ <File name="MonoDevelop.AssemblyBrowser.Dom/DomCecilReturnType.cs"
subtype="Code" buildaction="Compile" />
+ <File name="MonoDevelop.AssemblyBrowser/DomReturnTypeNodeBuilder.cs"
subtype="Code" buildaction="Compile" />
+ <File name="MonoDevelop.AssemblyBrowser.Dom/DomCecilParameter.cs"
subtype="Code" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Project" localcopy="True" refto="MonoDevelop.Core"
/>
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches