【问题标题】:Eclipse 4 RCP - how to change what is showed in specific area?Eclipse 4 RCP - 如何更改特定区域中显示的内容?
【发布时间】:2014-10-28 00:43:17
【问题描述】:

我已将我的申请分为两个主要领域。

  • 部分(A)
  • PartStashContainer(B)

A的内容应该根据用户的需要来设置。

所以基本上我可以有 1..N 个类,它们可以在应用程序模型中 Part 的 Class URI 中使用。

我不知道我是否应该用具有我想要的内容的新动态创建的 Part(C) 替换整个 Part(A),或者我应该以某种方式修改现有的 Part(调用 setContributionURI 或 Part 上的 setObject 方法对象?)。

修改现有部分对我来说确实更有意义,因为它是在应用程序模型中定义的,因此已经描述了内容应该在的位置。

可能的解决方案:

  • 修改 Part 对象,使其根据新设置“重新加载”其内容(但是如何?setContributionURI 或 setObject 方法有帮助吗?)
  • 删除旧部件并在应用程序模型的同一位置动态添加新部件(使用 EModelService 和 EPartService)。
  • 其他解决方案??

【问题讨论】:

    标签: eclipse eclipse-rcp


    【解决方案1】:

    如果您想重复使用该部分,请执行以下操作:

    MPart part = find or inject your part
    
    MyClass myClass = (MyClass)part.getObject();
    
    ... call a method of MyClass to change the contents
    

    MyClass 是您为应用程序模型中的对象指定的类。你应该添加一个方法来让你改变内容。

    不要尝试调用setObject,这实际上仅供Eclipse 使用。我认为setContributionURI 在创建零件后不会做任何事情(但我不确定)。

    如果你想对不同的数据使用不同的类,那么你真的应该使用不同的部分。

    【讨论】:

    • 是的,它甚至应该适用于不同的数据。有些插件可能想要显示 TreeView,有些可能想要显示其他小部件。
    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 2015-05-06
    • 2017-12-12
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多