ide-customization - 有没有办法为 Faktor-IPS 扩展属性自定义输入元素?
问题描述
我已经成功地创建了一个插件项目,它为 PolicyCmptType 定义了一个扩展属性。这个扩展属性是基于枚举的,所以我想得到一个 ComboBox 作为它的控件,此时创建了一个简单的 Text 控件。有没有简单的方法可以做到这一点?
解决方案
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 来自定义值的显示方式。
推荐阅读
- javascript - 来自数组和语法错误的 JSON 未定义响应
- android - 在所有屏幕上完美调整布局
- php - HTML 表单数据未通过 ajax GET 请求传递给 php 文件
- javascript - 使用本地存储在引导程序 4 中保持页面刷新的活动选项卡?
- excel - 如何修复由于宏而未自动更新的单元格
- r - R中水平条上的绘图文本
- php - 如何使用 Audience Network 系统用户令牌
- python-3.x - django.utils.datastructures.MultiValueDictKeyError REST API 发布请求
- ios - XCode 不构建我的项目
- html - HTML 中的重叠元素