Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GEF EditParts中的直接编辑确认_Java_Eclipse_Editor_Eclipse Gef_Draw2d - Fatal编程技术网

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);
}