Eclipse插件开发,Treeviewer 绑定数据

问题描述

Eclipse插件开发,Treeviewer 怎么绑定数据,怎么和DataModelProvider相结合,使用DataModelProvider 有绑定其他控件的方法:如Text文本控件synchHelper.synchText(tp, SampleProjectCreationDataModelProvider.PACKAGE, null); 但是没有绑定直接绑定Treeviewer 的方法。怎么用DataModelProvider绑定Treeviewer中数据?

解决方案

TreeViewer tv = new TreeViewer(c, SWT.BORDER);tv.setContentProvider(new MyContentProvider());tv.setLabelProvider(new MyLableProvider());使用TreeViewer的ContentProvider、LabelProvider设置来解决。不过需要自己实现这两个provider,就类似数据、标签的数据提供者
解决方案二:
找了个别人写的例子,供你参考/** * 内容提供器。由它决定那些对象应该输出在TreeViewer里显示 */ private static final class MyContentProvider implements ITreeContentProvider { /** * 由这个方法决定树的顶级显示那些对象。在此方法里生成了三个Country对象 * @param inputElement 用tv.setInput()方法输入的那个对象,在这里没有使用这个对象 */ public Object[] getElements(Object inputElement) { String[] obj = new String[3]; obj[0] = "中国"; obj[1] = "美国"; obj[2] = "英国"; return obj; } /** * 由这个方法决定结点应该显示那些子结点。在这里也不管父结点是什么,每个结点都统一有三个字结点 * @param parentElement 被点击的结点(父结点) */ public Object[] getChildren(Object parentElement) { String[] obj = new String[4]; obj[0] = "桂林"; obj[1] = "北京"; obj[2] = "纽约"; obj[3] = "伦敦"; return obj; } /** * 判断某结点是否有子结点。在这里不管3721,全返回真,即都有子结点。这时结点前都有一个“+”号图标 * @param element 需要判断是否有子的结点 */ public boolean hasChildren(Object element) { return true; } /** * 取得某结点的父结点。极少需要实现此方法 */ public Object getParent(Object element) { return null; } /** * 当TreeViewer被销毁时将执行这个方法。极少需要实现此方法 */ public void dispose() {} /** * 当tv.setInput()发生变化时调用此方法。极少需要实现此方法 */ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {} } /** * 标签提供器。主要负责每一单个对象在TreeViewer中的显示(文字、图象) */ private static final class MyLableProvider implements ILabelProvider { /** * 显示什么图片 * @param 结点 * @return 可以为null值 */ public Image getImage(Object element) { // ISharedImages sharedImages = PlatformUI.getWorkbench().getSharedImages(); // return sharedImages.getImage(ISharedImages.IMG_OBJS_WARN_TSK); return null; } /** * 显示什么文字 * @param 结点 * @return 不能为null值 */ public String getText(Object element) { return (String) element; } public void addListener(ILabelProviderListener listener) {} public void dispose() {} public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) {} } /** * 标签提供器。如果你赚上面的MyLableProvider那些没用的方法碍眼, * Eclipse中有一个ILabelProvider的缺省实现LabelProvider,继承它也行 */ // private static final class MyLableProvider extends LabelProvider { // public String getText(Object element) { // return (String)element; // } // }}
解决方案三:
用的 jface?http://www.rcp-vision.com/?p=948&lang=enhttp://aquariusm.iteye.com/blog/1208354

时间: 2024-11-16 16:20:16

Eclipse插件开发,Treeviewer 绑定数据的相关文章

eclipse插件开发, java TreeViewer节点如何删除

问题描述 eclipse插件开发, java TreeViewer节点如何删除 TreeViewer怎么对给定得节点进行删除,有个move(Object)方法,但是object是什么,谁做过啊

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(四)

Strucutured Document分析视图 在上一篇中,我们详细阐述了WTP中最重要的数据模型之一IStructuredDocument(我们就称之为WTP Document吧,和另外一个核心数据模型WTP Model----IStructuredModel对应),本节中我们将自己开发 一个工具来分析IStrucutredDocument. PS:千万别着急,后面的文章会对WTP StructuredTextEditor进行功能特征定制的,在真正定制之前 一定要搞清楚WTP Documen

web-关于不用控件绑定数据的问题

问题描述 关于不用控件绑定数据的问题 各位大神 我是一名在校计算机系大学生 想请教一下现在企业里做web是不是不用vs里面自带的控件 如果不用控件 这个gridview绑定数据库的数据应该如何实现 能说详细点或者给个链接教程吗 先不说 mvc架构 我想先用代码去实现 再去学mvc 谢谢 求大神指点 解决方案 很难的 怎么有点看不到是什么啊 解决方案二: 对WEB来说.其实很简单.WEB中表格的本质是 <table><tr><td></td></tr&g

排序-asp.net repeater 绑定数据后 怎么改变显示的顺序

问题描述 asp.net repeater 绑定数据后 怎么改变显示的顺序 <ul style=" margin-left:20px"> <asp:Repeater ID="rep_data" runat="server"> <ItemTemplate> <li ><p ><span><%# Eval("data").ToString()%>:

急求-2010水晶报表代码绑定数据怎么搞

问题描述 2010水晶报表代码绑定数据怎么搞 我现在做的Form里面放了个crystalReportViewer怎么通过代码绑定数据 解决方案 http://tech.ddvip.com/2009-01/1232570606106799.html

【Eclipse插件开发】基于WTP开发自定义的JSP编辑器(八)

定制StructuredTextEditor自动提示 前面介绍的内容集中在两点:StructuredTextEditor框架和WTP数据模型,在本节中就可以定制一个我 们最常用的WTP StructuredTextEditor的功能,那就是自动提示. [WTP StructuredTextEditor提示功能实现分析] 有关Eclipse文本编辑器框架.JFace Text Framework和WTP StructuredTextEditor的简要知识,参见: [Eclipse插件开发]基于WT

WPF and Silverlight学习笔记(二十二):使用代码实现绑定、绑定数据的验证

一.通过代码实现数据绑定 通过代码实现数据绑定,使用的是 System.Windows.Data命名空间的Binding类,主要使用Binding类的如下的属性 : Source属性:绑定到的数据源 Mode属性:绑定的模式 (OneTime.OneWay.TwoWay.OneWayToSource或Default) Path属性: 绑定到的数据源的属性 Converter属性:绑定时所使用的类型转换器 在绑定目标控件上使用SetBinding方法添加数据绑定.例如将MyData的 Name属性

【Eclipse插件开发】在什么情况下创建扩展点

我想绝大部分Eclipse插件开发人员对扩展点这个概念应该都比较熟悉了,那 么什么时候决定创建自己的扩展点呢?简单的说一下俺的看法,错了不要笑话. 为什么说这个问题呢?亲眼看到一些插件开发刚入门的人,不怎么懂得扩展 点相关的东西,也谈不上理解扩展点机制,所以这个时候从来不自己定义新的扩 展点:过了一段时间之后,感觉使用Eclipse扩展点有点经验了(尤其是 workbench相关的扩展点肯定经常使用),开始定义自己的扩展点了,....,灾 难发生了,乱定义扩展点,各种想法的扩展点都出来了....

Eclipse插件开发中实现刷新和重编译

在做eclipse插件开发中,特别是自动生成代码或者uml->代码的插件中,有时需要刷新一下文件夹或者重新编译一下.那如何实现这两个操作呢. 一.实现刷新 1.一个关键的接口是org.eclipse.core.resources.IResource 调用这个接口的refreshLocal方法即可.例如refreshLocal(IResource.DEPTH_INFINITE, null) 2.到底有哪些类实现了这个接口呢? 来看一下继承结构 首先继承自IResource的接口有IContaine