简介
我编写了一个Eclipse插件,其中包含一个用GEF实现的编辑器。
我的编辑器中有节点和边缘。
节点有名称,我想通过直接编辑来编辑节点的名称。
我将直接编辑策略安装到节点编辑部分:
installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new NodeNameDirectEditPolicy());
,直接编辑策略实现直接编辑命令。
问题是: 要确认直接编辑,我必须按STRG + ENTER。如果我只按ENTER键,则直接编辑将扩展为新行。有没有办法可以简单地用ENTER确认直接编辑?不需要多行节点名称。
答案 0 :(得分:1)
您应该可以通过在TextCellEditor(Composite parent, int style)
扩展TextCellEditor
扩展createCellEditorOn(Composite composite)
构造函数来实现它。
然后,在DirectEditManager
扩展程序类中调用new YOURTextCellEditor(composite, SWT.SINGLE)
时,让它返回TextCellEditor
。
列出来源:
您自己的public YOURTextCellEditor(Composite parent, int style) {
super(parent, style);
}
构造函数
createCellEditorOn(Composite composite)
在您的DirectEditManager` 的实现中 或许检查您是否使用@Override
protected CellEditor createCellEditorOn(Composite composite) {
return new YOURTextCellEditor(composite, SWT.SINGLE);
}
YOURTextCellEditor
SWT.MULTI
或SWT.MULTI|SWT.WRAP
或类似内容返回{{1}}的新实例,这会使您的文本单元格编辑器的SWT控件成为多行文本小部件(参见{ {3}})。