gpt4 book ai didi

java - 数据绑定(bind)到未知类型的容器

转载 作者:行者123 更新时间:2023-11-30 07:26:18 24 4
gpt4 key购买 nike

我有一个以下类型的简单 EMF 模型:

EClass FooGroup {
EString name;
@Properties(containment=true, upper=-1)
List<Node> nodes;
}
EClass BarGroup {
EString name;
@Properties(containment=true, upper=-1)
List<Node> nodes;
}
EClass Node {
EString name;
}

我想在一个简单的 TableViewer 中显示所有节点的名称,以及它们父组的名称。不幸的是,eContainer() 是一项操作,而不是一项功能。这意味着我无法使用 JFace 数据绑定(bind)框架将此属性链接到 GUI。

我该如何解决这个问题?我是否创建派生特征?有什么技巧吗?

最佳答案

我想不出在 EMF 数据绑定(bind)中使用 eContainer 的方法,但是向节点添加指定的父引用并在 eContainer 更改时以编程方式更新它并不难。

另一种解决方案是添加父级,然后更改生成的代码:

/*
* @generated NOT
*/
public Group getParent() {
if (eContainer() instanceof Group) {
return (Group) eContainer();
}
return null;
}

然后您可以像这样使用 FeaturePath 来获取 EMFProperty:

    IEMFProperty groupNameProperty = EMFProperties.value(
FeaturePath.fromList(
ModelPackage.Literals.NODE__PARENT,
ModelPackage.Literals.GROUP__NAME
)
);

关于java - 数据绑定(bind)到未知类型的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10416403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com