现在的位置: 首页 > 综合 > 正文

SharpDevelop的AddInTree View 插件

2013年08月02日 ⁄ 综合 ⁄ 共 3976字 ⁄ 字号 评论关闭
自从SharpDevelop 源码分析的系列文章发出来之后,很多朋友给了不错的评价,在这里先感谢各位朋友的鼓励。另外,评论中有位朋友想看看我在文章中提到的AddInTreeView插件,其实这个是个很简单的小东西,因此单独发在这里了(好像没有找到那里能上传文件,因此直接贴代码了)。
如果要查看其他的文章可以在这里找到(或者在我的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";
            }

        }


    }

}

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 )
       

抱歉!评论已关闭.