posts - 31,  comments - 31,  trackbacks - 0

       前两天遇到为org.eclipse.jface.text.TextViewer添加undo、redo 并添加Ctrl+z,与Ctrl+y功能这个问题,搜遍了国内网站,也没有个好结果,终于多天后在一个国外的svn服务器上找到了一段代码,解决了问题
1、为TextViewer添加TextViewerUndoManager来管理记录

protected TextViewer textViewer;
     
protected TextViewerUndoManager undoManager;
     
      
//20是保存记录的数量。
     undoManager = new TextViewerUndoManager(20);
     
     
//绑定对textViewer控件的数据进行管理
     undoManager.connect(textViewer);
     textViewer.setUndoManager(undoManager);


2、添加Ctrl+z,与Ctrl+y事件

StyledText styledText = textViewer.getTextWidget();
styledText.addKeyListener(
new KeyListener( ) {
            
public void keyPressed( KeyEvent e )
            
{
                
if ( isUndoKeyPress( e ) )
                
{
                    textViewer.doOperation( ITextOperationTarget.UNDO );
                }

                
else if ( isRedoKeyPress( e ) )
                
{
                    textViewer.doOperation( ITextOperationTarget.REDO );
                }

            }

            
private boolean isUndoKeyPress( KeyEvent e )
            
{
                
// CTRL + z
                return ( ( e.stateMask & SWT.CONTROL ) > 0 )
                
&& ( ( e.keyCode == 'z' ) || ( e.keyCode == 'Z' ) );
            }

            
private boolean isRedoKeyPress( KeyEvent e )
            
{
                
// CTRL + y
                return ( ( e.stateMask & SWT.CONTROL ) > 0 )
                
&& ( ( e.keyCode == 'y' ) || ( e.keyCode == 'Y' ) );
            }

            
public void keyReleased( KeyEvent e )
            
{
                
// do nothing
            }

        }
);
posted on 2007-07-16 10:49 小平 阅读(1856) 评论(3)  编辑  收藏 所属分类: eclipse plugIn


FeedBack:
# re: 为org.eclipse.jface.text.TextViewer添加undo、redo 并添加Ctrl+z,与Ctrl+y功能
2008-04-16 14:47 | 张凯
不错,学习了  回复  更多评论
  
# re: 为org.eclipse.jface.text.TextViewer添加undo、redo 并添加Ctrl+z,与Ctrl+y功能
2013-06-11 21:43 | yumin_999@163.com
反复测试,还是不好使,奇怪。yumin_999@163.com  回复  更多评论
  
# re: 为org.eclipse.jface.text.TextViewer添加undo、redo 并添加Ctrl+z,与Ctrl+y功能
2013-06-11 22:15 | yumin_999@163.com
找到原因了,必须加textViewer.setDocument(new Document());才好使  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2007年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(2)

随笔分类

随笔档案

framework

j2me

java

linux

web

其他

友情链接

素材

最新评论

阅读排行榜

评论排行榜