- 浏览: 2445245 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (574)
- Book (62)
- Architecture (6)
- Java (39)
- Taobao (41)
- Distributed (4)
- Life (72)
- Database (7)
- Spring (16)
- Photography (15)
- Bicycle (41)
- Test (20)
- jBPM (8)
- Business (12)
- Movie (3)
- Ajax (15)
- Code (7)
- Eclipse (96)
- VIM (2)
- Music (6)
- Groovy (10)
- AutoHotKey (3)
- Dorado (10)
- Maven (7)
- Scrum (5)
- English (20)
- Financial (12)
- OSGi (3)
- Other (4)
- Tool (6)
- Browser (1)
- PPT (1)
- Project Management (4)
- Agile (6)
- Nosql (1)
- Search engine (6)
- Shell (2)
- Open Source (4)
- Storm (10)
- Guava (3)
- Baby (1)
- netty (1)
- Algorithm (1)
- Linux (1)
- Python (2)
最新评论
-
roy2011a:
https://github.com/ebottabi/sto ...
storm的序列化问题及与spring的结合方式 -
roy2011a:
能抗能打 写道哥们儿,你好!能共享下那个storm与sprin ...
storm的序列化问题及与spring的结合方式 -
Alick1:
兄弟,你之前是不是在深圳的正阳公司呆过啊?
storm的ack和fail -
liuleixwd:
先点个赞,写的非常好!有个问题请教下,如果我再bolt里不用e ...
storm的ack和fail -
yao-dd:
solr的facet查询
原来跟ContributorActionBar有关,在插件中,对于Editor(这里的Editor是指的多页编辑器外面的那个总的Editor不是里面每一页中的Editor)来说,我们必须为其指定一个ContributorActionBar,在该类的初始化方法:
void org.eclipse.ui.part.EditorActionBarContributor.init(IActionBars bars)
中需要为IActionBars添加各种Action,比如CopyAction, DeleteAction, CutAction这里面就包括RedoAction和UndoAction,例如在
void org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor.init(IActionBars actionBars)中就是这样来做的:
- deleteAction = new DeleteAction(removeAllReferencesOnDelete());
- deleteAction.setImageDescriptor(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
- actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteAction);
上面的代码将系统的Undo&Redo快捷键以及Eclipse菜单项Delete与deleteAction关联起来了.
如果多页编辑器里面使用了一个另外一个TextEditor,那么在这个TextEditor中对Redo&Undo Action会调用org.eclipse.ui.texteditor.AbstractTextEditor.createUndoRedoActions()方法,其中代码如下:
- IUndoContext undoContext= getUndoContext();
- if (undoContext != null) {
- // Use actions provided by global undo/redo
- // Create the undo action
- OperationHistoryActionHandler undoAction= new UndoActionHandler(getEditorSite(), undoContext);
- PlatformUI.getWorkbench().getHelpSystem().setHelp(undoAction, IAbstractTextEditorHelpContextIds.UNDO_ACTION);
- undoAction.setActionDefinitionId(IWorkbenchActionDefinitionIds.UNDO);
- registerUndoRedoAction(ITextEditorActionConstants.UNDO, undoAction);
- ... ...
在registerUndoRedoAction方法中:
- private void registerUndoRedoAction(String actionId, OperationHistoryActionHandler action) {
- IAction oldAction= getAction(actionId);
- if (oldAction instanceof OperationHistoryActionHandler)
- ((OperationHistoryActionHandler)oldAction).dispose();
- setAction(actionId, action);
- IActionBars actionBars= getEditorSite().getActionBars();
- if (actionBars != null)
- actionBars.setGlobalActionHandler(actionId, action);
- }
会再一次的将指定的Action与全局ActionId关联起来,这样我们前面制定的Action就会被屏蔽掉,导致使用了TextEditor的UndoManager之后,EMF的模型编辑的Redo&Undo无法使用,找到了问题所在,至于解决办法就好搞定了.
另:
研究Undo&Redo的入口在void org.eclipse.swt.custom.StyledText.modifyContent(Event event, boolean updateCaret)
然后是void org.eclipse.swt.custom.StyledTextContent.replaceTextRange(int start, int replaceLength, String text)
StyledTextContent这个类是用来链接TextViewer和Document之间的适配器,TextViewer默认的实现是DefaultDocumentAdapter,如果需要提供自己的DocumentAdapter的实现需要复写 TextViewer 的 createDocumentAdapter() 方法,所有的操作会转交给当前编辑的Document,对于UndoMananger来说,它会在每个TextViewer上所编辑的Document注册一些监听器,用来监听Document的改变,当Document发生改变的时候,会触发这些监听器,这些监听器,根据Document的改变生成一个一个的Command或者Operation并保存在StackCommand或者是History中,以便Undo的时候从StackCommand和History中取出来执行
发表评论
-
Java程序员25个必备的Eclipse插件
2012-01-12 22:36 21869原文:http://www.fromdev.com/2012/ ... -
关于插件更新安装的错误
2007-12-21 20:12 2177在更新插件的时候出现这样的错误: Unable to comp ... -
最近做eclipse branding, features的一些经验
2007-12-16 01:24 4461知道eclipse的splash怎么做 ... -
GEF学习笔记
2007-12-07 20:20 4113GEF以前学习过, 而且还 ... -
SWT布局深入学习
2007-11-30 23:00 7897以下内容是学习"The Definitive Gui ... -
Eclipse Action 深入学习笔记(3)
2007-11-25 17:59 4037filter元素是用来指定当 ... -
Eclipse Action 深入学习笔记(2)
2007-11-25 17:14 5140Object Action 这种Action是跟弹出的上下文菜 ... -
Eclipse Action 深入学习笔记(1)
2007-11-25 17:07 7615以前做插件用到的ActionSet都只是依葫芦画瓢,没有真正理 ... -
JFace Text Editor完全掌握之终极指南(4)
2007-11-24 17:08 5617错误标识(Error Marking) Error Marki ... -
JFace Text Editor完全掌握之终极指南(3)
2007-11-24 16:56 5450内容大纲 之所以要给编 ... -
JFace Text Editor完全掌握之终极指南(2)
2007-11-24 16:53 6673最后一步就是实现各种功能 语法高亮 首先我们要实现的是语法高亮 ... -
JFace Text Editor完全掌握之终极指南(1)
2007-11-24 16:17 9924JFace Text Editor是JFace里面一个功能强大 ... -
最近的Eclipse plugin开发总结
2007-11-24 11:30 4889List控件没有提供addDblClickListener方法 ... -
eclipse3.3关于JavaFileEditorInput兼容性问题的解决
2007-11-24 11:22 4632在eclipse3.3中,JavaFileEditor ... -
Eclipse WTP Projects Facets实战指南(2)
2007-11-21 21:13 5196修饰工作 给facet在选择列表中添加图标 格式如下: xml ... -
Eclipse WTP Projects Facets实战指南(1)
2007-11-21 20:21 9537这个文章基本是"Building Project F ... -
也说关于WizardPage的动态生成
2007-11-05 14:26 5121在Eclipse中一个Wizard=Wiza ... -
TextEditor原理分析笔记
2007-08-23 15:48 3345Editor的语法着色原理:Eclipse使用damage , ... -
最近的Eclipse开发总结
2007-08-23 15:46 2025java.lang.IllegalAccessError: t ... -
如何判断一个eclipse的版本的代码
2007-08-23 15:41 2898java 代码 String version = ...
相关推荐
放在项目的跟路径即可,下面是初始化代码,编辑器没有实例化显示出来,注意引入的js路径 [removed][removed] [removed][removed] <form action="#"> <textarea id="editor1" name="editor1" ></...
有一个友好易于使用的界面,无限次的undo和redo操作。另外还可以打印十六进制的字节或者以书签的方式标出某些重要的字节。支持二进制模板(binary template)系统。配置文件保存在当前目录中,虽然不会显示注册用户...
010Editor是一款快速且强大的十六进制编辑器。用来编辑二进制文件。有一个友好易于使用的界面,无限次的undo和redo操作。另外还可以打印十六进制的字节或者以书签的方式标出某些重要的字节。支持二进制模板(binary ...
自制的基于Jquery的在线编辑器插件,仿Office2003界面,欢迎使用和指正。 完全开源,欢迎在此基础上修改完善或是增加新功能,共同完善此插件。 目前版本已经实现的功能包括:"Redo","Undo","Bold","Italic",...
010 Editor是一款快速且强大的十六进制编辑器。用来编辑二进制文件。有一个友好易于使用的界面,无限次的undo和redo操作。另外还可以打印十六进制的字节或者以书签的方式标出某些重要的字节。支持二进制模板(binary ...
Jedi Program Editor [绝地程序编辑器] V1.0.1.4一款国人造的程序编辑器 - 特别献给Delphi程序员!中国自己的 Open Source 软件,献给delphi迷们的一个小礼物包!:-)(Jedi Program Editor V1.0.0.6) 在编程中,我发现...
010Editor是一款快速且强大的十六进制编辑器。用来编辑二进制文件。有一个友好易于使用的界面,无限次的undo和redo操作。另外还可以打印十六进制的字节或者以书签的方式标出某些重要的字节。支持二进制模板(binary ...
010Editor是一款快速且强大的十六进制编辑器。用来编辑二进制文件。有一个友好易于使用的界面,无限次的undo和redo操作。另外还可以打印十六进制的字节或者以书签的方式标出某些重要的字节。支持二进制模板(binary ...
编辑器中能够屏蔽所有非 ASCII 字符和控制字符,只剩下了英文字符显示出来。功能强大的全文查找和全文替换,包括标准字符串和 Unicode 字符串的查找和替换(可以不区分大小写)。功能强大的输入功能,支持十六进制码...
在TinyEditor的实际应用中,需要注意的是,在提交编辑器内容之前,一定调用instance.post()函数,以确保编辑区域中最新的可视化内容转化为标记文本。 查看示例:http://sandbox.leigeber.com/tinyeditor/
编辑器中能够屏蔽所有非 ASCII 字符和控制字符,只剩下了英文字符显示出来。功能强大的全文查找和全文替换,包括标准字符串和 Unicode 字符串的查找和替换(可以不区分大小写)。功能强大的输入功能,支持十六进制码...
一个.NET组件,允许你在应用程序中加入高级的代码编辑器,几乎支持Visual Studio .NET中所有的功能,比如自定义语法高亮,代码大纲显示,代码自动完成,无限制的Undo/Redo,书签,自动换行,托拽,查找/替换等。
3. **撤销和重做功能**:`undo`和`redo`方法实现撤销和重做功能,通过维护编辑前后的图像堆栈来实现。 4. **打开和保存图像**:`open_image`方法允许用户打开图像文件并在画布上显示,`save_image`方法允许用户将...
010Editor是一款快速且强大的十六进制编辑器。用来编辑二进制文件。有一个友好易于使用的界面,无限次的undo和redo操作。另外还可以打印十六进制的字节或者以书签的方式标出某些重要的字节。支持二进制模板(binary ...
A rich text editor sample (based on summernote) Features Bold Italic Underline Strike-through Heading 1 Heading 2 Heading 3 Heading 4 Heading 5 Heading 6 Paragraph Quote Ordered List Unordered List ...
7.3.2 使用标准工具栏中的Redo控制 7.3.3 使用键盘Undo命令 7.4 删除对象 7.4.1 删除对象的方法 7.4.2 删除对象并放入内存的方法 7.4.3 把删除到内存中的对象拷贝到页面中 7.4.4 删除组中对象的...
7.3.2 使用标准工具栏中的Redo控制 7.3.3 使用键盘Undo命令 7.4 删除对象 7.4.1 删除对象的方法 7.4.2 删除对象并放入内存的方法 7.4.3 把删除到内存中的对象拷贝到页面中 7.4.4 删除组中...
除了其强大的功能和方便的使用, 这里还有一些顶尖的技术因素是CuteEditor编辑器成为你编辑和发布Web内容的最佳选择: 界面简洁加载速度快 <br/>由于才有了很多优化方法,所以CuteEditor非常简单、小巧、...
5的TinyMCE4编辑器 默认配置文件 { selector : ' textarea.tinyMCEEditor ' , file_browser_callback : redaxo5FileBrowser, plugins : ' autoresize lists autolink link visualblocks fullscreen paste code hr ...