关于 rcp 中Texteidtor 控件的使用注意事项
来源:互联网 发布:hadoop用什么数据库 编辑:程序博客网 时间:2024/06/05 12:29
问题描述:rcp应用程序打开了多个texteditor,对texteditor 中的docment进行注解处理。发现每次只有最后一个被打开的文档注解被显示,其他的文档都不显示。
部分程序:
对于我开发的rcp 程序,其中扩展了texteditor控件,同时扩展了documentProviders,如下:
<extension
point="org.eclipse.ui.editors.documentProviders">
<provider
class="com.zsmart.zcct.ui.editor.input.TextDocumentProvider"
id="editors.PersonDocumentProvider"
inputTypes="com.zsmart.zcct.ui.editor.input.ZCCTTextInput">
</provider>
</extension>
对于文档进行注解的方法被定义在TextDocumentProvider类中,此类中同时包含如下的成员变量:
private Document document;
private AnnotationModel embededAnnotation;
设置注解的方法中直接使用了TextDocumentProvider类对象本身的程序变量document和embededAnnotation
产生问题的原因,我本以为每一个texteditor会持有一个TextDocumentProvider类对象,此时我只要获取这个对象即可对所在的文本设置注解了。
结果一直不对,仔细的看了一下获取TextDocumentProvider对象与document对象、embededAnnotation对象方法的却别,代码如下:
TextDocumentProvider textdocprod =(TextDocumentProvider)((TextEditor)editor_tmpe).getDocumentProvider();
((TextEditor)editor_tmpe).getDocumentProvider().getDocument(editor_tmpe.getEditorInput())
((TextEditor)editor_tmpe).getDocumentProvider().getAnnotationModel(editor_tmpe.getEditorInput())
从上面可以看出,在获取TextDocumentProvider对象时不需要关联是哪个EditorInput,而对于下面两个对象,都是需要关联EditorInput对象的。
此处可以得出,其实多个texteditor只是持有一个TextDocumentProvider对象,而每一个texteditor都是持有一个embededAnnotation和document对象。
没有来得及看源码,如果有什么错误欢迎指正。
部分程序:
对于我开发的rcp 程序,其中扩展了texteditor控件,同时扩展了documentProviders,如下:
<extension
point="org.eclipse.ui.editors.documentProviders">
<provider
class="com.zsmart.zcct.ui.editor.input.TextDocumentProvider"
id="editors.PersonDocumentProvider"
inputTypes="com.zsmart.zcct.ui.editor.input.ZCCTTextInput">
</provider>
</extension>
对于文档进行注解的方法被定义在TextDocumentProvider类中,此类中同时包含如下的成员变量:
private Document document;
private AnnotationModel embededAnnotation;
设置注解的方法中直接使用了TextDocumentProvider类对象本身的程序变量document和embededAnnotation
产生问题的原因,我本以为每一个texteditor会持有一个TextDocumentProvider类对象,此时我只要获取这个对象即可对所在的文本设置注解了。
结果一直不对,仔细的看了一下获取TextDocumentProvider对象与document对象、embededAnnotation对象方法的却别,代码如下:
TextDocumentProvider textdocprod =(TextDocumentProvider)((TextEditor)editor_tmpe).getDocumentProvider();
((TextEditor)editor_tmpe).getDocumentProvider().getDocument(editor_tmpe.getEditorInput())
((TextEditor)editor_tmpe).getDocumentProvider().getAnnotationModel(editor_tmpe.getEditorInput())
从上面可以看出,在获取TextDocumentProvider对象时不需要关联是哪个EditorInput,而对于下面两个对象,都是需要关联EditorInput对象的。
此处可以得出,其实多个texteditor只是持有一个TextDocumentProvider对象,而每一个texteditor都是持有一个embededAnnotation和document对象。
没有来得及看源码,如果有什么错误欢迎指正。
- 关于 rcp 中Texteidtor 控件的使用注意事项
- Java中控件的使用注意事项
- 关于.gitignore中!使用的注意事项
- 关于C中指针使用的注意事项
- 关于RCP中使用系统resource navigator图标和项目名称不显示的问题
- Infragistics控件在VS.net 2005中使用的注意事项
- 在C#中使用RegularExpressionValidator控件的一个注意事项
- VC中使用OnSize函数,设置控件位置的注意事项
- 关于Java开发中使用Oracle数据库的一点注意事项
- 关于Linux driver中device_create()使用的注意事项
- 关于Linux driver中device_create()使用的注意事项
- 关于mysql中特殊字符的使用注意事项
- 关于Linux driver中device_create()使用的注意事项
- Android中关于线程使用的几点注意事项
- 关于 vector 中 erase 函数的使用注意事项
- Android中关于线程使用的几点注意事项
- 关于在storyboard中使用静态cell的注意事项
- 【笔记】关于android中shape使用的注意事项
- 集成电路封装形式介绍(图解)
- 杭电 1225 Football Score
- shell中read命令
- 数据库范式
- Objective-C中的NSObject对象经常使用到的方法
- 关于 rcp 中Texteidtor 控件的使用注意事项
- 软件架构、领域驱动设计漫谈
- 【Morgan Stanley IKM在线测试】C++
- oracle中的游标 包 集合 的学习总结
- 从网络获取xml格式的视频资讯
- window语言id
- oracle 中的集合(联合数组 内嵌表 可变数组)
- 八皇后问题的解决(c语言)
- tutorial 2