在GEF EditParts中直接编辑确认

时间:2013-09-04 20:55:32

标签: java eclipse editor eclipse-gef draw2d

简介
我编写了一个Eclipse插件,其中包含一个用GEF实现的编辑器。 我的编辑器中有节点和边缘。 节点有名称,我想通过直接编辑来编辑节点的名称。

我将直接编辑策略安装到节点编辑部分:

installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new NodeNameDirectEditPolicy());

,直接编辑策略实现直接编辑命令。

问题是: 要确认直接编辑,我必须按STRG + ENTER。如果我只按ENTER键,则直接编辑将扩展为新行。有没有办法可以简单地用ENTER确认直接编辑?不需要多行节点名称。

1 个答案:

答案 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.MULTISWT.MULTI|SWT.WRAP或类似内容返回{{1}}的新实例,这会使您的文本单元格编辑器的SWT控件成为多行文本小部件(参见{ {3}})。