Java 如何使用sourceviewer的undomanager
我需要将撤消重做功能添加到我的源代码查看器中。下面是我的代码 公共类MyViewer扩展了SourceViewer{ public MyViewerfinal复合父级,最终整数样式{ 超级家长,空,样式; 最终字体Font=JFaceResources.getFontMyConstants.EDITOR\u TEXT\u Font; getTextWidget.setFontfont; IUndoManager undoManager=getUndoManager;//新文本视图undoManager 25; //setUndoManagerRunDomainManager;//新文本视图UndoManager10; //连接这个; 如果撤消管理器!=null{ 撤销manager.reset; }否则{ undoManager=新文本视图UndoManager25; SetUndoManagerRunDomainManager; 连接这个; } } @凌驾 公共作废setDocumentfinal I文档{ ... } @凌驾 public void setHyperlinkPresenterfinal IHyperlinkPresenter hyperlinkPresenter引发非法状态异常{ ... } } 我添加了一个键绑定,如下图所示 “撤消重做”仍然不起作用。Java 如何使用sourceviewer的undomanager,java,eclipse-plugin,Java,Eclipse Plugin,我需要将撤消重做功能添加到我的源代码查看器中。下面是我的代码 公共类MyViewer扩展了SourceViewer{ public MyViewerfinal复合父级,最终整数样式{ 超级家长,空,样式; 最终字体Font=JFaceResources.getFontMyConstants.EDITOR\u TEXT\u Font; getTextWidget.setFontfont; IUndoManager undoManager=getUndoManager;//新文本视图undoMana
我不确定键绑定是否错误,或者我的代码中缺少了什么,或者两者都有。请强调我的错误。我从 添加此代码后,我能够恢复和重做工作。看起来不需要我在首选项页面中进行的附加键绑定。现在首选项页面如下所示
viewer.getTextWidget().addKeyListener(new KeyListener() {
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
if( isUndoKeyPress( e )){
viewer.doOperation(ITextOperationTarget.UNDO);
} else if( isRedoKeyPress( e )) {
viewer.doOperation(ITextOperationTarget.REDO);
}
}
private boolean isRedoKeyPress(KeyEvent e) {
return (( e.stateMask & SWT.CONTROL ) > 0) && ((e.keyCode =='y' ) (e.keyCode == 'Y'));
}
private boolean isUndoKeyPress(KeyEvent e) {
return (( e.stateMask & SWT.CONTROL) > 0 ) && ((e.keyCode == 'z' ) (e.keyCode =='Z'));
}
});