我遇到了问题,想要求解决方案。
我正在开发一个eclipse插件项目,其中需要一个资源文件类型的编辑器。资源文件具有与CSV文件类似的结构。我的想法是为用户提供以纯文本格式和SWT表格编辑此类文件的选项。检查数据需要纯文本,表格提供了更多的编辑灵活性,例如按列排序。
我能够创建一个MultiPageEditorPart
,其中一页为org.eclipse.ui.editors.text.TextEditor
,另一页为org.eclipse.swt.widgets.Table
,其他几个小工具如搜索栏。资源文件的内容可以显示在TextEditor
中,也可以编辑和保存。另一方面,内容也可以加载到表中,排序和搜索所有工作都很好。
问题是:当我在表格中编辑单元格时,我希望更改也反映在TextEditor
中,反之亦然。由于资源文件可能非常大,我希望保存操作只发生在TextEditor
上,即我不希望表中的任何修改直接存储到资源文件中,而是将文件标记为脏,但是我无法弄清楚如何。例如,我如何获取EditorInput
的内容,逐行检查,并在TextEditor
之外修改?
或者,有更有效的方法吗?任何人都可以提供任何提示吗?
答案 0 :(得分:1)
IDocument
使用的TextEditor
可让您访问文档内容。通过以下方式获取此信息:
IDocumentProvider provider = editor.getDocumentProvider();
IEditorInput input = editor.getEditorInput();
IDocument document = provider.getDocument(input);
IDocument
有许多方法可以访问以下行:
int getLineOffset(int line);
int getLineLength(int line);
以及修改文本的方法:
void replace(int offset, int length, String text);