【问题标题】:Is there a way to customize the input element for a Faktor-IPS extension property?有没有办法为 Faktor-IPS 扩展属性自定义输入元素?
【发布时间】:2020-12-11 06:04:25
【问题描述】:

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

【问题讨论】:

    标签: ide-customization faktor-ips


    【解决方案1】:

    Faktor-IPS 允许您通过扩展点的 Eclipse 机制创建自己的 UI 贡献。您已经使用了一个来创建您的扩展属性。对于自定义编辑字段,您可以使用扩展点 'org.faktorips.devtools.core.ui.extensionPropertyEditFieldFactory',实现 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 来自定义值的显示方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      • 2018-09-08
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多