【问题标题】:Get SWT element's parent Part获取 SWT 元素的父 Part
【发布时间】:2013-04-04 13:44:01
【问题描述】:

我需要引用创建 SWT 元素的 Part 对象。 PartPart@PostConstruct 中创建一个Label,就像这样(e4):

public class SomePart {
    @PostConstruct
    public void postConstruct(Composite parent) {
        ...
        Label someLabel = new Label(parent);
        ...
    }
}

需要像这样获取创建someLabel 的部分:

(SomePart) someLabel.getMyParentPartPlease()

还需要在 RCP 3.x 中获得此类参考,但我很乐意在任何 RCP 版本上获得帮助。

【问题讨论】:

    标签: java swt eclipse-rcp


    【解决方案1】:

    为什么不在Widget 的数据字段中设置Part,这样客户可以在对象上设置任意数据?

    public class SomePart {
        @PostConstruct
        public void postConstruct(Composite parent) {
            ...
            Label someLabel = new Label(parent);
            someLabel.setData(this);
            ...
        }
    }
    

    然后:

    SomePart part = (SomePart) someLabel.getData();
    

    【讨论】:

    • 感谢您的帮助。但是,实际上,我不管理 Part 的代码。我正在尝试从我的 SWT 侦听器中引用 Part。你有什么想法吗?
    • @Oroboros102 不幸的是,我不知道。我稍微编辑了你的问题以澄清这一点。我会进一步考虑,但希望其他人也有一些想法。
    • 哦,对我来说,所有 RCP 中最糟糕的部分是尝试将 SWT 对象与 RCP 连接(传递数据、获取数据等)。每次都以大量使用.setData(...) 结束,这看起来很丑陋。现在我想,我只是没有掌握 RCP 的架构。
    • setData() 方法是丑陋的设计。首先,为什么需要从Label()中引用Part?我只是想了解用例。
    • @sambireddy “丑陋的设计”?想澄清一下吗?
    猜你喜欢
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 2013-08-28
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    相关资源
    最近更新 更多