自从SharpDevelop 源码分析的系列文章发出来之后,很多朋友给了不错的评价,在这里先感谢各位朋友的鼓励。另外,评论中有位朋友想看看我在文章中提到的AddInTreeView插件,其实这个是个很简单的小东西,因此单独发在这里了(好像没有找到那里能上传文件,因此直接贴代码了)。
如果要查看其他的文章可以在这里找到(或者在我的BLOG列表中):
SharpDevelop源码分析 (一、序+基本概念)
SharpDevelop源码分析 (二、主程序+隐藏的初始化)
SharpDevelop源码分析 (三、插件系统)
如果要查看其他的文章可以在这里找到(或者在我的BLOG列表中):
SharpDevelop源码分析 (一、序+基本概念)
SharpDevelop源码分析 (二、主程序+隐藏的初始化)
SharpDevelop源码分析 (三、插件系统)
AddinTreeViewCommand.cs
/**//*
* Created by SharpDevelop.
* User: Administrator
* Date: 2004-10-4
* Time: 4:12
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Windows.Forms;
using System.CodeDom.Compiler;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.Pads;
using ICSharpCode.Core.AddIns;
using ICSharpCode.Core.AddIns.Codons;
using ICSharpCode.SharpDevelop.Services;
namespace Addins.AddinTreeView
{
/**//// <summary>
/// Description of MyClass.
/// </summary>
public class AddinTreeViewCommand: AbstractMenuCommand
{
public override void Run()
{
using (AddinTreeViewContent viewContent = new AddinTreeViewContent() )
{
WorkbenchSingleton.Workbench.ShowView(viewContent);
}
}
}
public class AddinTreeViewContent: AbstractViewContent
{
AddinTreeViewControl viewControl = new AddinTreeViewControl();
public override Control Control
{
get
{
return viewControl;
}
}
public override bool IsDirty
{
get
{
return false;
}
set
{
}
}
IWorkbenchWindow workbenchWindow;
public override IWorkbenchWindow WorkbenchWindow
{
get
{
return workbenchWindow;
}
set
{
workbenchWindow = value;
workbenchWindow.Title = "AddInTreeView";
}
}
public AddinTreeViewContent()
{
TitleName = "AddinTree View";
}
public override bool IsViewOnly
{
get
{
return true;
}
}
public void SaveFile(){}
public void Undo(){}
public void Redo(){}
public override void Save(){}
public override void Save(string filename){}
public override void Load(string filename)
{
}
public override string TabPageText
{
get
{
return "AddInTree";
}
}
}
}
* Created by SharpDevelop.
* User: Administrator
* Date: 2004-10-4
* Time: 4:12
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Windows.Forms;
using System.CodeDom.Compiler;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Gui.Pads;
using ICSharpCode.Core.AddIns;
using ICSharpCode.Core.AddIns.Codons;
using ICSharpCode.SharpDevelop.Services;
namespace Addins.AddinTreeView
{
/**//// <summary>
/// Description of MyClass.
/// </summary>
public class AddinTreeViewCommand: AbstractMenuCommand
{
public override void Run()
{
using (AddinTreeViewContent viewContent = new AddinTreeViewContent() )
{
WorkbenchSingleton.Workbench.ShowView(viewContent);
}
}
}
public class AddinTreeViewContent: AbstractViewContent
{
AddinTreeViewControl viewControl = new AddinTreeViewControl();
public override Control Control
{
get
{
return viewControl;
}
}
public override bool IsDirty
{
get
{
return false;
}
set
{
}
}
IWorkbenchWindow workbenchWindow;
public override IWorkbenchWindow WorkbenchWindow
{
get
{
return workbenchWindow;
}
set
{
workbenchWindow = value;
workbenchWindow.Title = "AddInTreeView";
}
}
public AddinTreeViewContent()
{
TitleName = "AddinTree View";
}
public override bool IsViewOnly
{
get
{
return true;
}
}
public void SaveFile(){}
public void Undo(){}
public void Redo(){}
public override void Save(){}
public override void Save(string filename){}
public override void Load(string filename)
{
}
public override string TabPageText
{
get
{
return "AddInTree";
}
}
}
}
AddinTreeViewControl.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.Core.AddIns;
using ICSharpCode.Core.AddIns.Codons;
namespace Addins.AddinTreeView
{
/**//// <summary>
/// AddinTreeViewControl 的摘要说明。
/// </summary>
public class AddinTreeViewControl : System.Windows.Forms.UserControl
{
private System.Windows.Forms.ColumnHeader chName;
private System.Windows.Forms.ListView lvAddin;
private System.Windows.Forms.ColumnHeader chInfo;
private System.Windows.Forms.CheckBox cbShowAddinInfo;
private System.Windows.Forms.Splitter splitter2;
private System.Windows.Forms.ListView lvDebug;
private System.Windows.Forms.Splitter splitter1;
private System.Windows.Forms.TreeView tvAddin;
private System.Windows.Forms.ColumnHeader chValue;
/**//// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
public AddinTreeViewControl()
{
// 该调用是 Windows.Forms 窗体设计器所必需的。
InitializeComponent();
// TODO: 在 InitializeComponent 调用后添加任何初始化
InitAddinTreeView();
}
/**//// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.Core.AddIns;
using ICSharpCode.Core.AddIns.Codons;
namespace Addins.AddinTreeView
{
/**//// <summary>
/// AddinTreeViewControl 的摘要说明。
/// </summary>
public class AddinTreeViewControl : System.Windows.Forms.UserControl
{
private System.Windows.Forms.ColumnHeader chName;
private System.Windows.Forms.ListView lvAddin;
private System.Windows.Forms.ColumnHeader chInfo;
private System.Windows.Forms.CheckBox cbShowAddinInfo;
private System.Windows.Forms.Splitter splitter2;
private System.Windows.Forms.ListView lvDebug;
private System.Windows.Forms.Splitter splitter1;
private System.Windows.Forms.TreeView tvAddin;
private System.Windows.Forms.ColumnHeader chValue;
/**//// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;
public AddinTreeViewControl()
{
// 该调用是 Windows.Forms 窗体设计器所必需的。
InitializeComponent();
// TODO: 在 InitializeComponent 调用后添加任何初始化
InitAddinTreeView();
}
/**//// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )