有没有办法为 Faktor-IPS 扩展 属性 自定义输入元素?

Is there a way to customize the input element for a Faktor-IPS extension property?

我已经成功创建了一个插件项目,为 PolicyCmptType 定义了一个扩展 属性。这个扩展 属性 是基于枚举的,所以我想得到一个 ComboBox 作为它的控件,目前创建了一个简单的 Text 控件。有简单的方法吗?

Faktor-IPS 允许您通过扩展点的 Eclipse 机制创建自己的 UI 贡献。您已经使用一个来创建您的扩展 属性。对于自定义编辑字段,您可以使用扩展点 'org.faktorips.devtools.core.ui.extensionPropertyEditFieldFactory', implement IExtensionPropertyEditFieldFactory 并将扩展点 属性 的 ID 设置为 'propertyId'.

要创建 EditField,首先使用 UIToolkit 创建 Combo,然后使用 ComboViewerField 配置数据绑定:

 @Override
public EditField<?> newEditField(IIpsObjectPartContainer ipsObjectPart,
        Composite extensionArea,
        UIToolkit toolkit) {
    Combo combo = toolkit.createCombo(extensionArea);
    ComboViewerField<VariationOperand> comboViewerField = new ComboViewerField<VariationOperand>(combo,
            VariationOperand.class);
    comboViewerField.setLabelProvider(new DefaultLabelProvider());
    comboViewerField.setInput(VariationOperand.values());
    return comboViewerField;
}

您还可以创建自己的 LabelProvider 来自定义值的显示方式。