Java GEF EditParts中的直接编辑确认
简介:Java GEF EditParts中的直接编辑确认,java,eclipse,editor,eclipse-gef,draw2d,Java,Eclipse,Editor,Eclipse Gef,Draw2d,简介: 我编写了一个Eclipse插件,其中包含一个编辑器,我用它来实现。 我的编辑器中有节点和边。 节点有名称,我想通过直接编辑编辑节点的名称 我将直接编辑策略安装到节点编辑部件: installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new NodeNameDirectEditPolicy()); 直接编辑策略实现了直接编辑命令 问题是: 要确认直接编辑,我必须按STRG+ENTER。如果我只按ENTER键,则直接编辑将展开为新行。是否有任何方法可以
我编写了一个Eclipse插件,其中包含一个编辑器,我用它来实现。 我的编辑器中有节点和边。 节点有名称,我想通过直接编辑编辑节点的名称 我将直接编辑策略安装到节点编辑部件:
installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new NodeNameDirectEditPolicy());
直接编辑策略实现了直接编辑命令
问题是:
要确认直接编辑,我必须按STRG+ENTER。如果我只按ENTER键,则直接编辑将展开为新行。是否有任何方法可以使直接编辑只需输入即可确认?不需要多行节点名称。您应该能够通过在自己的
TextCellEditor
扩展中扩展TextCellEditor(复合父级,int样式)
构造函数来实现它
然后,在DirectEditManager
扩展类中调用createCellEditorOn(Composite Composite)
时,让它返回newyourTextCellEditor(Composite,SWT.SINGLE)
详细地说:
您自己实现的TextCellEditor
的构造函数
在DirectEditManager的实现中创建CellEditoron(复合)`
也许可以检查您是否使用
SWT.MULTI
或SWT.MULTI | SWT.WRAP
或类似方法返回YOURTextCellEditor
的新实例,这会使您的文本单元格编辑器的SWT控制多行文本小部件(cf)。您可以共享NodeNameDirectEditPolicy
的代码吗?在我的实现中,Enter
确认edit.thx:)SWT.MULTI在系统中隐藏得很深,导致了问题。修复了使用SWT.Single的错误
public YOURTextCellEditor(Composite parent, int style) {
super(parent, style);
}
@Override
protected CellEditor createCellEditorOn(Composite composite) {
return new YOURTextCellEditor(composite, SWT.SINGLE);
}