`
eclipsesbs
  • 浏览: 20342 次
社区版块
存档分类
最新评论

第四天:该实现个Editor玩玩了

阅读更多

作者:梁祺 (eclipsesbs@gmail.com)

 

来自:http://www.benisoft.net/day4/index.html

 

今天来看一下Editor,正如前面提到的,用户的大部分时间都会花在Editor上,Editor是用户主要完成任务的地方, 我们仍然使用Eclipse提供的模版,在创建Plug-in项目时,选择“Plug-in with an editor”模版。

这个模版实现了一个XML编辑器,我们使用向导提供的缺省值,点击“Finish”。

启动Eclipse,先创建一个项目,选择“File/New/Project”,然后选择“General/Project”, Project名为abc,点击”Finish“。然后选择“File/New/File”,在对话框里选择项目abc,文件名为abc.xml, 点击“Finish”。文件创建后,Eclipse有可能使用文本编辑器打开它,让我们先关闭abc.xml, 然后在Package Explorer View里,选中abc.xml,在右键菜单中选择“Open With/Sample XML Editor”, 这下,我们的XML Editor就工作了,我们尝试输入一段XML文本,属性值高亮为绿色,XML Editor工作正常。

我们来看一下代码。打开plugin.xml,找到Plug-in Editor的Extensions子页, 可以看到这个例子扩展了扩展点”org.eclipse.ui.editors“,定义了一个editor。

  • id:ID为“eclipse.tutorial.day4.editors.XMLEditor”
  • name:名字为“Sample XML Editor”
  • icon:图标为“sample.gif”
  • extension:关联的文件扩展名为“xml”,也就是说,当Eclipse要打开一个文件扩展名为“xml”的文件时, 它会寻找相关的Editor来打开它,但是要注意,Eclipse允许多个Editor关联到同一个文件扩展名,这个时候, Eclipse会选取一个作为缺省Editor,如果用户指定过Editor,就象我们在前面所做的,选中文件, 并在右键菜单中选择“Open With/Sample XML Editor”,Eclipse就会记住这个Editor作为缺省Editor。 Eclipse也支持一个Editor关联多个文件扩展名,只要在这里用逗号分割它们就可以了。
  • class:Editor的Java实现类。
  • contributorClass:Editor Contributor的Java实现类。 Editor Contributor负责管理Editor的菜单栏,工具栏,和状态栏,比如往菜单栏和工具栏上添加Action。

点击class,打开XMLEditor类。这个非常的简单,继承自TextEditor。 TextEditor是Eclipse提供的文本编辑器的Java实现类,它提供基本的文本编辑功能,包括剪切和粘贴。 既然XML文件也是文本文件,所以XMLEditor继承TextEditor也很自然。 这个例子的大部分代码都是和对XML文本的着色有关,这里我们就不花篇幅介绍了。

public class XMLEditor extends TextEditor {

    private ColorManager colorManager;

    public XMLEditor() {
        super();
        colorManager = new ColorManager();
        setSourceViewerConfiguration(new XMLConfiguration(colorManager));
        setDocumentProvider(new XMLDocumentProvider());
    }
    public void dispose() {
        colorManager.dispose();
        super.dispose();
    }
}

如果去看一下TextEditor的父类AbstractDecoratedTextEditor,我们就能够发现createPartControl()。 和View一样,Editor的UI控件的布局也是在这个方法里完成的。

如果希望从一个现有的Plug-in项目中新建Editor,在Plug-in Editor的Extensions页,点击”Add“按钮, 在对话框中输入”editors“,找到扩展点”org.eclipse.ui.editors“,并选中, 我们就会看到模板Editor和Multi-page Editor。同样,一般都会使用Editor来创建Editor的骨架, 删除掉不需要的代码。Multi-page Editor我们后面会介绍到,这里先略过。

到这里,我们了解了怎么创建一个Editor,创建Editor和View有一些类似,但是我们只演示了基本的步骤, 没有谈到如何为Editor和View提供输入,这需要结合更加接近实际的例子来说明。

分享到:
评论

相关推荐

    七天玩转Altera之基础篇

    ### 七天玩转Altera之基础篇 #### Altera基础概述 ...第四天则学习了如何利用Netlist Viewers来查看和分析设计。这些内容为初学者提供了一个完整的框架,帮助他们快速入门Altera FPGA的设计与开发。

    Save_Editor_2011_460_mpgh.net_DBD_

    存档编辑器“Save_Editor_2011_460”可能对应的是DBD的一个特定版本,版本号“460”可能表示该工具是针对游戏更新到460版本时设计的。这意味着它可能无法兼容游戏的最新更新,因为游戏开发商会定期发布补丁和更新,...

    angular-play-inline-editor:玩转 Angular - 内联编辑器

    "angular-play-inline-editor"项目正是这样一个专注于提供内联编辑功能的库,旨在帮助开发者更轻松地在Angular应用中实现这种交互式编辑体验。 内联编辑器的主要优点在于提高了用户体验,因为它减少了用户操作步骤...

    nhl_7 games editor081026

    【nhl_7 games editor081026】是一个专为冰球模拟游戏NHL 7设计的游戏编辑器,发布于2008年10月26日。这个编辑器允许玩家自定义和调整游戏中的多个元素,以增强游戏体验并创造个性化的比赛环境。以下将详细探讨该...

    玩透sed:探究sed原理

    4. **缓冲区(Buffer)**:`sed`有两个工作区,一个是活动缓冲区,存储当前正在处理的行;另一个是保持缓冲区,用于暂存已修改但未输出的行。`d`命令删除活动缓冲区,`n`命令读取下一行并替换活动缓冲区,`p`命令...

    RuntimeEditor2.26.txt

    在Unity3D开发过程中,为了提升游戏的可玩性和交互性,开发者们经常需要使用到运行时编辑器(Runtime Editor)。它允许用户在不重启游戏的情况下对游戏中的对象进行实时修改与调试,极大地提升了开发效率与创作灵活...

    Packt.Python.Game.Programming.By.Example.2015

    ##### 第4章:Steering Behaviors - **NumPy安装**:介绍了NumPy库的安装方法。 - **粒子系统**:使用NumPy创建了一个粒子系统。 - **行为动画**:实现了寻路、追逐、躲避等游戏AI行为。 - **障碍物避免**:通过...

    Kroniax2-Mapeditor:目前正在开发中。 Kroniax2 的地图编辑器

    4. **第三方库集成**:C++社区拥有丰富的第三方库资源,如OpenGL用于图形渲染,SDL或SFML用于跨平台的用户界面和输入处理,这些都能在Kroniax2-Mapeditor中发挥关键作用。 5. **跨平台兼容性**:由于C++的编译特性...

    通向FPGA之路---七天玩转Altera之基础篇

    ### 通向FPGA之路---七天玩转Altera之基础篇 #### 1. Altera基础 **1.1 典型设计流程** 在FPGA设计中,典型的Altera设计流程包括以下步骤: 1. **设计输入**:将设计思想转化为具体的硬件描述语言(HDL),例如...

    PerCM个人代码管理软件

    这个软件的最大的体会就是“该实现的都已经实现了”。具体以下几点: 1、代码录入模块,可以快捷键进行,其实按照“代码语言”“代码分类”和“关键字”三类就可以区分代码; 2、代码查阅模块,可以查看“最近入库”...

    SH Batch Editor-开源

    《SH Batch Editor——一款专为Silent Hunter游戏系列打造的开源编辑工具》 SH Batch Editor是一款专门为Silent...对于喜欢这款游戏系列并希望挖掘更多玩法的玩家来说,SH Batch Editor无疑是一个值得探索的宝贵工具。

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包3

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    如何编写批处理文件批处理文件批处理文件

    取得第二个符号,引用 %j 来取得第三个符号,引用 %k 来取得第三个符号后的所有剩余符号。对于带有空格的文件 名,您需要用双引号将文件名括起来。为了用这种方式来使 用双引号,您还需要使用 usebackq 选项,...

    带你玩转Excel VBA第一章

    在本教程“带你玩转Excel VBA第一章”中,作者罗刚君旨在引导初学者从零开始探索Excel的Visual Basic for Applications(VBA),这是一种强大的编程语言,允许用户自定义Excel的功能并自动化工作流程。VBA是...

    JAVA上百实例源码以及开源项目源代码

    21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持...

    java开源包1

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包2

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

Global site tag (gtag.js) - Google Analytics