当前位置: 首页 > 知识库问答 >
问题:

viewerSupport.bind()可以与图像一起使用吗?

丁嘉庆
2023-03-14

在我的Eclipse RCP视图中,我使用JFace数据绑定将模型数据绑定到org.Eclipse.JFace.viewers.treeviewer。我使用viewersupport.bind()绑定数据,如代码片段所示,它工作得很好。

ViewerSupport.bind(viewer, model, BeanProperties.list("children",
          ModelObject.class), BeanProperties.value(ModelObject.class, "name"));

现在我真的想在节点上显示一个图像和文本。如果没有数据绑定,我只需要重写LabelProvidergetimage(对象元素)方法,但是content+label provider方法和ViewerSupport不能协同工作。我还没有在viewersupportAPI中找到问题的解决方案。是否有一个解决方案,也许使用org.eclipse.core.databinding.property.value.ivaluePropertys?

共有1个答案

秦建元
2023-03-14

ViewerSupport使用ObservableMaplabelProvider作为标签提供程序。不幸的是,getimage方法只返回null

您也许可以使用ObservableMaplabelProvider的子类来提供图像。您不能使用viewersupport来执行此操作,因此必须复制一些代码。

以下是viewersupport.bind设置树的方式:

public static void bind(AbstractTreeViewer viewer, Object input,
        IListProperty childrenProperty, IValueProperty[] labelProperties) {
  Realm realm = DisplayRealm.getRealm(viewer.getControl().getDisplay());

  ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(
            childrenProperty.listFactory(realm), null);

  if (viewer.getInput() != null)
    viewer.setInput(null);

  viewer.setContentProvider(contentProvider);

  viewer.setLabelProvider(new ObservableMapLabelProvider(Properties
            .observeEach(contentProvider.getKnownElements(),
                    labelProperties)));

  if (input != null)
    viewer.setInput(input);
}
 类似资料:
  • 问题内容: 我想在我的node.js脚本中使用phantomjs。有一个phantomjs- node 库。.但是不幸的是,作者使用了这个奇怪的coffee脚本代码来解释他在做什么: 现在,如果我直接将phantomjs与javascript一起使用,它将看起来像这样: 所以基本上我想用普通的javascript编写上面代码的第一段代码(通过阅读coffee脚本文档 ..这就是我所做的: 不幸的是

  • 描述 (Description) 使用图像交换,您可以根据屏幕大小设置图像大小,即大,中或小。 图像在小屏幕设备上显示得更小。 要确定要为其提供图像的用户设备,请使用CSS媒体查询。 例子 (Example) 以下示例演示了在Foundation中使用交换图像的方法 - <!DOCTYPE html> <html> <head> <title>Foundation Templat

  • 问题内容: 是否可以使用Node.js在服务器端使用jQuery选择器/ DOM操作? 问题答案: 似乎有一个重大更新,导致原来的答案不再起作用。我找到了这个答案,解释了现在如何使用。我已经在下面复制了相关代码。 注意:原始答案没有提及你还需要使用安装

  • 我需要一些目前在JavaFX中找不到的功能。比如机器人或托盘图标。 我知道这些工具确实适用于JavaFx应用程序。但是可以使用它们吗?有什么需要我考虑的吗?

  • 问题内容: 我查看了Google Cloud SQL的文档和各种搜索,但无法确定是否可以将SQLAlchemy与Google Cloud SQL一起使用,如果可以,则连接URI应该是什么。 我正在寻找使用Flask-SQLAlchemy扩展,并且需要这样的连接字符串: 我看到了Django示例,但看起来配置使用的样式与连接字符串不同。 https://developers.google.com/c

  • 假设没有访问MongoDB服务器,使用Meteor开发没有多大意义,我是否正确? Meteor是一个构建、打包和部署应用程序和网站的优秀框架。从开发角度来看,模板和响应性数据库工作使原型制作比大多数MVC容易得多。 我知道在幕后,WebSocket和DDP提供了实时同步的魔力,这意味着你需要访问MongoDB服务器,这是你在GoogleAppEngine、Parse或Kinvey等PaaS解决方案