SharpDevelop开发教程(二)

  第二章    View

View(视图)是SD的基础部分,View通常包含编辑器,如代码编辑器,资源编辑器。基本上,它是显示于MPI窗口选项卡页面上的面板。

    制作View要从AbstractViewContent继承下来。下面就进入我们的实战操作流程,首先新建一个类库行的项目,SDViewDemoPlug,把Class1.cs改名为Main.cs,修改为如下内容:

 1using System;
 2using ICSharpCode.Core.AddIns;
 3using ICSharpCode.Core.AddIns.Codons;
 4
 5using ICSharpCode.SharpDevelop.Gui;
 6
 7namespace SDViewDemoPlug
 8{
 9    public class ShowViewCommand : AbstractMenuCommand
10    {
11        public override void Run()
12        {            
13            WorkbenchSingleton.Workbench.ShowView(new SDViewContent());
14        }

15    }

16}

添加一个新类,SDViewContent,文件名为SDViewContent.cs,修改内容如下:

 1using System;
 2using System.Drawing;
 3using System.Windows.Forms;
 4using ICSharpCode.SharpDevelop.Gui;
 5
 6namespace SDViewDemoPlug
 7{
 8    public class SDViewContent : AbstractViewContent
 9    {
10        SDViewControl p=new SDViewControl();
11        public override Control Control 
12        {
13            get {return p;}
14        }

15        
16        public override bool IsReadOnly 
17        {
18            get {return false;}
19        }

20        
21        public override void Save(string fileName){}
22        public override void Load(string fileName){}
23        public override void RedrawContent(){}
24        
25        public override void Dispose()
26        {        
27            p.Dispose();
28        }

29        
30        public SDViewContent()
31        {
32            TitleName = "TestView";            
33        }
        
34        
35    }

36}

37

 

在项目中添加新建项à用户控件。改名为SDViewControl各位可以在SDViewControl上添加一些相关的内容。最后添加插件配置文件ViewDemoPlug.addin,内容如下:

<AddIn name        = "SharpDevelop Plug Demo"
       author      
= "SongYuanWu"
       copyright   
= "GPL"
       url         
= "http://www.cnblogs.com/CBuilder"
       description 
= "SharpDevelop"
       version     
= "1.0.0">
    
    
<Runtime>
        
<Import assembly="SDViewDemoPlug.dll"/>
    
</Runtime>

    
<Extension path = "/SharpDevelop/Workbench/MainMenu/Tools">
        
<MenuItem id = "SDViewDemo"                 
                 label 
= "ShowMyView" 
                 class 
= "SDViewDemoPlug.ShowViewCommand"/>
    
</Extension>
</AddIn>

 

还有不要忘记把ICSharpCode.Core.dllSharpDevelop.Base.dll引用进项目中来。编译后把ViewDemoPlug.addinSDViewDemoPlug.dll拷贝到SD\AddIns\目录下。运行SD,就可以看到在工具菜单下出现了ShowMyView菜单项。ClickShowMyView菜单项后显示如图,再clickShowMyView菜单项后就会又显示一个TestView。各位如果问:“需要做象“启动页”一样的View,如果已经有打开的了就会激活打开的View该如何处理呢?”。其实很简单,你可以把ShowViewCommand类中的Run函数更改为:

foreach (IViewContent view in WorkbenchSingleton.Workbench.ViewContentCollection) 
    
{
        
if (view is SDViewContent) 
        
{
            view.WorkbenchWindow.SelectWindow();                    
            
return;
        }

    }
            
    WorkbenchSingleton.Workbench.ShowView(
new SDViewContent());





Demo演示了如何在SD添加一个View,同时也演示了如何在SD中更改菜单项。每添加一个菜单项时都要继承一个AbstractMenuCommand,并且改写Run()函数,当然你的XXXCommand也可以从SDAbstractCommand继承,但要实现IMenuCommand接口。因为添加菜单项和添加工具条按钮比较简单,在以后的内容中我会一起讲,在此我就不多说了。

posted on 2005-08-06 20:16  CBuilder  阅读(7098)  评论(2)    收藏  举报

导航