【问题标题】:Many viewers, one or several content providers / domain model in eclipse RCPeclipse RCP中的许多查看者,一个或多个内容提供者/域模型
【发布时间】:2012-09-19 06:26:40
【问题描述】:

我对在 Eclipse RCP 中使用模型、内容提供程序和表查看器有疑问。

我找不到任何适合该主题的教程或示例。

设计应该在多个表格查看器中显示的数据模型的正确方法是什么。我必须为每个查看器创建内容提供程序,还是只为显示相同数据的多个查看器创建一个内容提供程序实例?

另一个问题。如果我必须创建许多内容提供者的实例,我必须为每个内容提供者创建一个域模型实例还是多个实例?

如果模型已更改(添加元素/删除元素/更新元素)以向用户更新视图,我想通知每个查看者?互联网上有许多教程和示例,但它们仅基于一种查看器场景。有人可以对这个话题进行更多说明。谢谢。

【问题讨论】:

    标签: java eclipse-rcp jface tableviewer


    【解决方案1】:

    请在下面找到答案

    1. 每个查看器都需要一个内容提供程序实例。这可以是所有查看器使用的一个类,也可以为每个查看器创建新的内容提供程序实现。内容提供者的作用是将您的数据模型转换为观众可以理解的形式。如果您在所有查看器中显示相同的数据,我建议您使用一个内容提供程序实现并为每个查看器创建多个实例。您可以将相同的实例分配给所有查看器,但我不建议这样做。

    2. 您不必创建数据模型的多个实例。您可以重复使用相同的实例。

    3. 理想情况下,适用于一位观众的内容也适用于多人。我不知道你指的是什么教程,如果你可以发布链接,那么也许我可以建议。

    【讨论】:

    • 谢谢。我刚刚发现每个观众都需要单独的内容提供者。在处理期间,查看器通过调用它的方法 inputChange 来关闭它的内容提供程序,然后进行处理。如果您在单独的视图或对话框中有查看器,则应为每个查看器提供内容提供程序。模型或 inputElement 应该是单例的,模型的任何变化都应该通知所有使用这个模型的内容提供者。
    • 如果您查看 inputChange 方法,它会将查看器作为参数,因此从技术上讲,内容提供者不应受此影响。除非你声明了一些类变量...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    相关资源
    最近更新 更多