创建Eclipse游戏插件,第1部分: 入门 - 编程入门网
urcesPlugin 是一个代表 Resources 插件的单体 —— 也就是说,是一个可以访问运行时资源(包括当前工作区)的插件。
getWorkspace 调用返回当前工作区,然后 getRoot 调用返回这个工作区的根。从这儿开始,就能够检查当前环境了。 对 findMarkers 的调用询问当前工作区的根,查找当前所有类型为 IMarker.TASK(这是个预定义常量,代表 Task 类型的标记器的类型字符串)的标记器。下一个参数 true 告诉 findMarkers 包含 Task 类型的子类型(通常没有)。最后一个参数告诉方法从任何直接或间接的资源中检索任务标记器,这应当包含整个工作台。findMarkers 会返回与这些参数匹配的标记器的数组。 创建Eclipse游戏插件,第1部分: 入门(14)时间:2011-02-10 IBM Trebor Fenstermaker让 TableViewer 能够查看任务 接下来,请修改 ViewContentProvider 以及与它相关的类,把默认的 “one, two, three” 替换成来自任务视图的任务。请把下面这些行添加到 ViewContentProvider 内部类,如清单 6 所示。 清单 6. 修改 ViewContentProvider 类
然后修改 getElements 方法,检索这个新属性:
这将修改插件的 TableViewer 使用的模型。通过把 tasks 属性初始化为空而不是 null,可以避免收到运行时错误 “Unable to create view: null argument”。 这个代码现在并不显示列出的任务的名称。相反,将看到一个典型的 toString 输出(类名和哈希码)。在这种情况下,是容纳任务的标记器类的实例的 toString。当然,我们想得到的是任务的文本。 为了让视图看到任务的文本,需要修改向导生成并由 TableViewer 使用的另一个内部类:ViewLabelProvider。ViewLabelProvider 扩展了 LabelProvider 类并实现了 ILabelProvider 接口。这个接口定义了一个叫作 getText 的方法,它的作用就是通过编写这个方法,从 ContentProvider 持有的对象中检索对应的属性。 LabelProvider 类返回对象的 toString,实现了这个方法的默认行为,这就是在 TableViewer 中看到这样的任务标记器标签的原因。要把这个方法改成返回合适的值,应该覆盖这个方法,添加下面这些代码到 ViewLabelProvider 类中,如清单 7 所示。 清单 7. 覆盖 getText 方法
如前所述,实现 IMarker 接口的类的实例只是到对象的句柄,对象实际容纳构成标记器的属性。为了访问属性,IMarker 接口包含许多字符串,代表许多预定义标记器类型的公共属性。在这个示例中,想看到的是任务标记器的 MESSAGE 属性。这个属性容纳用户输入的字符串。 编写按钮,装入 TableViewer 最后,想让这个代码在按下 Load Bugs 时全部执行。要把动作加到按钮上,请通过 addSelectionListener 方法把 SelectionListener 添加到按钮部件。这个方法需要 SelectionListener 类的实例。对于简单侦听器,可以用匿名内部类扩展 SelectionAdapter, 如清单 8 所示。 清单 8. 添加选择侦听器到 loadBugsButton
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |