我已经成功地创建了一个插件项目,它为 PolicyCmptType 定义了一个扩展属性。这个扩展属性是基于枚举的,所以我想得到一个 ComboBox 作为它的控件,此时创建了一个简单的 Text 控件。有没有简单的方法可以做到这一点?
问问题
31 次
1 回答
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 来自定义值的显示方式。
于 2020-12-11T06:19:24.177 回答