Author: mkrueger
Date: 2008-02-06 23:55:22 -0500 (Wed, 06 Feb 2008)
New Revision: 95113

Added:
   
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs
Modified:
   trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/ChangeLog
   
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.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
   
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NamespaceBuilder.cs
Log:
* MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs,
  MonoDevelop.AssemblyBrowser.mdp,
  MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs,
  MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs,
  MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs,
  MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs,
  MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs,
  MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs,
  MonoDevelop.AssemblyBrowser/NamespaceBuilder.cs,
  MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs: Worked
  on assembly browser.

Modified: 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/ChangeLog     
2008-02-07 04:54:57 UTC (rev 95112)
+++ trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/ChangeLog     
2008-02-07 04:55:22 UTC (rev 95113)
@@ -1,6 +1,20 @@
 2008-02-07  Mike Krüger <[EMAIL PROTECTED]> 
 
        * MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs,
+         MonoDevelop.AssemblyBrowser.mdp,
+         MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs,
+         MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs,
+         MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs,
+         MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs,
+         MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs,
+         MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs,
+         MonoDevelop.AssemblyBrowser/NamespaceBuilder.cs,
+         MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs: Worked on
+         assembly browser.
+
+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,

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 04:54:57 UTC (rev 95112)
+++ 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
  2008-02-07 04:55:22 UTC (rev 95113)
@@ -28,6 +28,7 @@
 
 using System;
 
+using Gtk;
 using Mono.Cecil;
 
 using MonoDevelop.Ide.Gui;
@@ -44,7 +45,7 @@
                                return treeView;
                        }
                }
-                       
+               
                public AssemblyBrowserWidget ()
                {
                        this.Build();
@@ -67,6 +68,22 @@
                                }, new TreePadOption [] {});
                        scrolledwindow2.Add (treeView);
                        scrolledwindow2.ShowAll ();
+                       this.label2.Style.Font = Gdk.Font.FromDescription 
(Pango.FontDescription.FromString ("Monospace 12"));
+                       
+                       treeView.Tree.CursorChanged += delegate {
+                               ITreeNavigator nav = treeView.GetSelectedNode 
();
+                               if (nav != null) {
+                                       
System.Console.WriteLine(nav.TypeNodeBuilder);
+                                       IAssemblyBrowserNodeBuilder builder = 
nav.TypeNodeBuilder as IAssemblyBrowserNodeBuilder;
+                                       
+                                       if (builder != null) {
+                                               this.label2.Markup              
      = builder.GetDescription (nav.DataItem);
+                                               
this.disassemblerTextview.Buffer.Text = builder.GetDisassembly (nav.DataItem);
+                                       } else {
+                                               this.label2.Markup =  
this.disassemblerTextview.Buffer.Text = "";
+                                       }
+                               }
+                       };
                }
 
                public void AddReference (string fileName)

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 04:54:57 UTC (rev 95112)
+++ 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomEventNodeBuilder.cs
    2008-02-07 04:55:22 UTC (rev 95113)
@@ -32,12 +32,13 @@
 
 using MonoDevelop.Core.Gui;
 using MonoDevelop.Ide.Dom;
+using MonoDevelop.Ide.Dom.Output;
 using MonoDevelop.Ide.Gui;
 using MonoDevelop.Ide.Gui.Pads;
 
 namespace MonoDevelop.AssemblyBrowser
 {
-       public class DomEventNodeBuilder : TypeNodeBuilder
+       public class DomEventNodeBuilder : TypeNodeBuilder, 
IAssemblyBrowserNodeBuilder
        {
                static readonly string[] iconTable = {Stock.Event, 
Stock.PrivateEvent, Stock.ProtectedEvent, Stock.InternalEvent};
                
@@ -65,5 +66,15 @@
                        return 1;
                }
                
+               public string GetDescription (object dataObject)
+               {
+                       IEvent evt = (IEvent)dataObject;
+                       return AmbienceService.Default.GetString (evt, 
OutputFlags.AssemblyBrowserDescription);
+               }
+               public string GetDisassembly (object dataObject)
+               {
+                       return "TODO";
+               }
+               
        }
 }
\ No newline at end of file

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 04:54:57 UTC (rev 95112)
+++ 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomFieldNodeBuilder.cs
    2008-02-07 04:55:22 UTC (rev 95113)
@@ -38,7 +38,7 @@
 
 namespace MonoDevelop.AssemblyBrowser
 {
-       public class DomFieldNodeBuilder : TypeNodeBuilder
+       public class DomFieldNodeBuilder : TypeNodeBuilder, 
IAssemblyBrowserNodeBuilder
        {
                static readonly string[] iconTable = {Stock.Field, 
Stock.PrivateField, Stock.ProtectedField, Stock.InternalField};
                
@@ -71,5 +71,16 @@
                                return 
((IField)thisNode.DataItem).Name.CompareTo (((IField)otherNode.DataItem).Name);
                        return -1;
                }
+               
+               public string GetDescription (object dataObject)
+               {
+                       IField field = (IField)dataObject;
+                       return AmbienceService.Default.GetString (field, 
OutputFlags.AssemblyBrowserDescription);
+               }
+               
+               public string GetDisassembly (object dataObject)
+               {
+                       return "TODO";
+               }
        }
 }

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 04:54:57 UTC (rev 95112)
+++ 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomMethodNodeBuilder.cs
   2008-02-07 04:55:22 UTC (rev 95113)
@@ -27,18 +27,21 @@
 //
 
 using System;
+using System.Text;
 
 using Mono.Cecil;
+using Mono.Cecil.Cil;
 
 using MonoDevelop.Core.Gui;
 using MonoDevelop.Ide.Dom;
 using MonoDevelop.Ide.Dom.Output;
 using MonoDevelop.Ide.Gui;
 using MonoDevelop.Ide.Gui.Pads;
+using MonoDevelop.AssemblyBrowser.Dom;
 
 namespace MonoDevelop.AssemblyBrowser
 {
-       public class DomMethodNodeBuilder : TypeNodeBuilder
+       public class DomMethodNodeBuilder : TypeNodeBuilder, 
IAssemblyBrowserNodeBuilder
        {
                static readonly string[] iconTable = {Stock.Method, 
Stock.PrivateMethod, Stock.ProtectedMethod, Stock.InternalMethod};
                
@@ -68,5 +71,34 @@
                        
                        return -1;
                }
+               
+               public string GetDescription (object dataObject)
+               {
+                       IMethod method = (IMethod)dataObject;
+                       return AmbienceService.Default.GetString (method, 
OutputFlags.AssemblyBrowserDescription);
+               }
+               
+               public string GetDisassembly (object dataObject)
+               {
+                       DomCecilMethod method = dataObject as DomCecilMethod;
+                       if (method == null)
+                               return "";
+                       if (method.MethodDefinition.IsPInvokeImpl)
+                               return "Method is P/Invoke";
+                       if (method.MethodDefinition.Body == null)
+                               return "Interface method";
+                       StringBuilder result = new StringBuilder ();
+                       foreach (Instruction instruction in 
method.MethodDefinition.Body.Instructions ) {
+                           result.Append (String.Format ("IL_{0:X4} {1} ", 
+                                                             
instruction.Offset,
+                                                             
instruction.OpCode));
+                               if (instruction.Operand != null)
+                                       result.Append 
(instruction.Operand.GetType() == typeof(string) ? String.Format( "\"{0}\"", 
instruction.Operand ) :instruction.Operand.ToString());
+                               result.AppendLine ();
+                       }
+                                       
+                       return result.ToString ();
+               }
+
        }
 }

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 04:54:57 UTC (rev 95112)
+++ 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomPropertyNodeBuilder.cs
 2008-02-07 04:55:22 UTC (rev 95113)
@@ -38,7 +38,7 @@
 
 namespace MonoDevelop.AssemblyBrowser
 {
-       public class DomPropertyNodeBuilder : TypeNodeBuilder
+       public class DomPropertyNodeBuilder : TypeNodeBuilder, 
IAssemblyBrowserNodeBuilder
        {
                static readonly string[] iconTable = {Stock.Property, 
Stock.PrivateProperty, Stock.ProtectedProperty, Stock.InternalProperty};
                
@@ -69,5 +69,15 @@
                        return -1;
                }
                
+               public string GetDescription (object dataObject)
+               {
+                       IProperty property = (IProperty)dataObject;
+                       return AmbienceService.Default.GetString (property, 
OutputFlags.AssemblyBrowserDescription);
+               }
+               public string GetDisassembly (object dataObject)
+               {
+                       return "TODO";
+               }
+
        }
 }

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 04:54:57 UTC (rev 95112)
+++ 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/DomTypeNodeBuilder.cs
     2008-02-07 04:55:22 UTC (rev 95113)
@@ -32,12 +32,13 @@
 
 using MonoDevelop.Core.Gui;
 using MonoDevelop.Ide.Dom;
+using MonoDevelop.Ide.Dom.Output;
 using MonoDevelop.Ide.Gui;
 using MonoDevelop.Ide.Gui.Pads;
 
 namespace MonoDevelop.AssemblyBrowser
 {
-       public class DomTypeNodeBuilder : TypeNodeBuilder
+       public class DomTypeNodeBuilder : TypeNodeBuilder, 
IAssemblyBrowserNodeBuilder
        {
                public override Type NodeDataType {
                        get { return typeof(IType); }
@@ -96,5 +97,16 @@
                {
                        return true;
                }
+               
+               public string GetDescription (object dataObject)
+               {
+                       IType type = (IType)dataObject;
+                       return AmbienceService.Default.GetString (type, 
OutputFlags.AssemblyBrowserDescription);
+               }
+               public string GetDisassembly (object dataObject)
+               {
+                       return "TODO";
+               }
+               
        }
 }

Added: 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs
===================================================================
--- 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs
    2008-02-07 04:54:57 UTC (rev 95112)
+++ 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs
    2008-02-07 04:55:22 UTC (rev 95113)
@@ -0,0 +1,38 @@
+//
+// IAssemblyBrowserNodeBuilder.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;
+
+namespace MonoDevelop.AssemblyBrowser
+{
+       public interface IAssemblyBrowserNodeBuilder
+       {
+               string GetDescription (object dataObject);
+               string GetDisassembly (object dataObject);
+       }
+}

Modified: 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NamespaceBuilder.cs
===================================================================
--- 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NamespaceBuilder.cs
       2008-02-07 04:54:57 UTC (rev 95112)
+++ 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NamespaceBuilder.cs
       2008-02-07 04:55:22 UTC (rev 95113)
@@ -28,18 +28,20 @@
 
 using System;
 using System.Collections.Generic;
+using System.Text;
 
 using Mono.Cecil;
 
 using MonoDevelop.Core.Gui;
 using MonoDevelop.Ide.Gui;
 using MonoDevelop.Ide.Dom;
+using MonoDevelop.Ide.Dom.Output;
 using MonoDevelop.Ide.Gui.Pads;
 using MonoDevelop.AssemblyBrowser.Dom;
 
 namespace MonoDevelop.AssemblyBrowser
 {
-       public class NamespaceBuilder : TypeNodeBuilder
+       public class NamespaceBuilder : TypeNodeBuilder, 
IAssemblyBrowserNodeBuilder
        {
                public override Type NodeDataType {
                        get { return typeof(Namespace); }
@@ -70,5 +72,16 @@
                {
                        return true;
                }
+               
+               public string GetDescription (object dataObject)
+               {
+                       Namespace ns = (Namespace)dataObject;
+                       return AmbienceService.Default.GetString (ns.Name, 
OutputFlags.AssemblyBrowserDescription);
+               }
+               
+               public string GetDisassembly (object dataObject)
+               {
+                       return "TODO";
+               }
        }
 }

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 04:54:57 UTC (rev 95112)
+++ 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.Dom/DomCecilMethod.cs
     2008-02-07 04:55:22 UTC (rev 95113)
@@ -35,6 +35,12 @@
        {
                MethodDefinition methodDefinition;
                
+               public MethodDefinition MethodDefinition {
+                       get {
+                               return methodDefinition;
+                       }
+               }
+               
                public DomCecilMethod (MethodDefinition methodDefinition)
                {
                        this.methodDefinition = methodDefinition;

Modified: 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.mdp
===================================================================
--- 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.mdp
       2008-02-07 04:54:57 UTC (rev 95112)
+++ 
trunk/monodevelop/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.mdp
       2008-02-07 04:55:22 UTC (rev 95113)
@@ -53,6 +53,7 @@
     <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" />
+    <File name="MonoDevelop.AssemblyBrowser/IAssemblyBrowserNodeBuilder.cs" 
subtype="Code" buildaction="Compile" />
   </Contents>
   <References>
     <ProjectReference type="Project" localcopy="True" refto="MonoDevelop.Core" 
/>
@@ -66,6 +67,7 @@
     <ProjectReference type="Project" localcopy="True" refto="Mono.Cecil" />
     <ProjectReference type="Gac" localcopy="True" refto="System, 
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
     <ProjectReference type="Gac" localcopy="True" refto="Mono.Posix, 
Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756" />
+    <ProjectReference type="Gac" localcopy="True" refto="pango-sharp, 
Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
   </References>
   <GtkDesignInfo isWidgetLibrary="True" gtkVersion="2.10.2">
     <ExportedWidgets>

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to