Eclipse 3.3里新TreeViewer给EMF应用程序带来的一个问题

简介:

以前在Eclipse 3.2里做的一个EMF应用程序,到3.3里发现一些TreeViewer里标签显示的格式不对,例如原来显示“Condition true”的,在3.3下可能显示“1”。调试了一下发现这些TreeViewer在为每个节点获得标签时,若相应的XXXItemProvider实现了ITableItemLableProvider(即应用程序里有TableViewer也用到这个XXXItemProvider)时,会调用getColumnText()而不是getText()来得到文本内容。

在新闻组里搜到这个帖子讲的是同一件事(新闻组是遇到问题后第一反应),原因不在EMF,是Eclipse 3.3里对TreeViewer的实现有了变化,新的实现把原来的TreeViewer当成只有一列的特殊的TableViewer来对待,以致EMF也把TreeViewer当成了TableViewer,当然会去找getColumnText()了。解决的办法也不复杂,新闻组里那个帖子也提到了,我给帖到这方便大家参考吧。

/**
 * @Added
 * Solve a problem raised in jface 3.3 tree viewer
 * @see http://dev.eclipse.org/newslists/news.eclipse.tools.emf/msg25409.html
 *
 */
class WorkaroundAdapterFactoryLabelProvider extends AdapterFactoryLabelProvider {
    /**
    * @param adapterFactory
    */
    public WorkaroundAdapterFactoryLabelProvider(AdapterFactory adapterFactory) {
        super(adapterFactory);
    }

    @Override
    public Image getColumnImage(Object object, int columnIndex) {
        return super.getImage(object);
    }

    @Override
    public String getColumnText(Object object, int columnIndex) {
        return super.getText(object);
    }
}

有了上面这个类,然后把原来setLabelProvider()里的AdapterFactoryLabelProvider换成它就可以了。EMF以后的版本应该会解决这个问题。

本文转自博客园八进制的博客,原文链接:Eclipse 3.3里新TreeViewer给EMF应用程序带来的一个问题,如需转载请自行联系原博主。

相关文章
|
Java Android开发
脱离Eclipse环境使用EMF
一旦熟练使用EMF后,有新项目我总是习惯于先使用工具构造出数据模型,然后让EMF帮我生成java代码。当模型需要修改时,也是用工具修改模型本身,然后让EMF把改动更新到java代码,从而保证模型与代码的同步。
2690 151
|
Java 应用服务中间件 Maven
Eclipse 部署应用程序到阿里云 EDAS
在之前的一篇文章中,我们介绍了 如何将一个本地的 Java 应用程序直接部署到阿里云 ECS ,有不少读者反馈,如果目前已经在使用阿里云 EDAS 了,那该如何配合这个插件部署应用呢?在本文中,我们来介绍 部署 Java 应用程序到阿里云 EDAS。
4194 0
|
SQL XML 数据库
Eclipse开发Android应用程序入门:重装上阵
  原文:http://www.smashingmagazine.com/2011/03/28/get-started-developing-for-android-with-eclipse-reloaded/   在我们教程系列的第一部分中,我们使用Android和Eclipse开发了一个简单的饮茶计时器的应用程序。
1719 0
|
Android开发 Java API
将Eclipse插件转换为RCP应用程序(上)
有不少朋友问到如何把一个已有的Eclipse插件转换为RCP应用程序,其实这个过程并不复杂,因为RCP应用也是基于插件的结构,可以说RCP 就是精简后的Eclipse平台,只是我们要对这个平台做一些定制工作。
2210 0
|
Android开发
将Eclipse插件转换为RCP应用程序(下)
在上一篇里我们为一个普通的Eclipse插件添加了Application扩展,剩下来的工作就很简单了,甚至不需要再编写一行代码。在 Eclipse 3.1里,把具有Application的插件包装成RCP并输出的过程是通过建立产品配置文件(Product Configuration)来完成的。
1668 0
|
Java Android开发 数据格式
[Eclipse]GEF入门系列(八、使用EMF构造GEF的模型)
GEF的设计没有对模型部分做任何限制,也就是说,我们可以任意构造自己的模型,唯一须要保证的就是模型具有某种消息机制,以便在发生变化时能够通 知GEF(通过EditPart)。在以前的几个例子里,我们都是利用java.beans包中的PropertyChangeSupport和 PropertyChangeListener来实现消息机制的,这里将介绍一下如何让GEF利用EMF构造的模型(下载例子,可编辑.emfsubject文件,请对比之前功能相同的非EMF例子),假设你对EMF是什么已经有所了解。
1908 0
|
Android开发 开发工具
[Eclipse]国际化你的应用程序(上)
记得几年前汉化软件一般是用二进制编辑工具在编译后的文件中查找和替换英文单词,这个过程需要使用很多技巧,非常的麻烦。而现在,在开发时对应用程序进行国际化处理已经越来越成为一个必不可少的步骤了。例如这次我参与的项目是给台湾客户做的,他们要求英文和繁体中文两个版本,幸好我们使用的开发工具是Eclipse,利用它的国际化功能可以很方便的将写在代码里的字符串提出到独立的资源文件中,这里用一个简单的例子说明一下这个过程。
1414 0
|
Android开发 Java
[Eclipse]国际化你的应用程序(下)
在本文的上篇里,介绍了使用Eclipse的国际化工具对程序中的字符串进行外向化处理(Extenalize),可以看出步骤是十分简单的。实在是很喜欢Eclipse这样的工具,它可以为你做很多事情,干净漂亮,但绝不会在未经你同意的情况下做任何动作,所谓“利器”也! 现在说说在资源中含有参数的情况怎样处理。
1624 0

推荐镜像

更多