我正在尝试为Gate中的特定注释设置内容。有一些方法可以为文档中的给定注释提取内容/文本。我想更改给定注释所显示的文本,这意味着它最终应该更改文档的实际文本。在Gate中是否可以更改注释的内容?
gate.Utils.stringFor(document,annotation)或contentFor 方法提供给定注释突出显示的文本。 COuld找不到任何可以设置内容的方法。
DocumentContent documentContent = new DocumentContentImpl(value);
Long start = getAnnotation(annotation).getStartNode().getOffset();
Long end = getAnnotation(annotation).getEndNode().getOffset();
doc.edit(start, end, documentContent);
我想编辑文档的内容。我已经尝试过上面的方法我也在文档中添加了documentListener。 Control进入contentEdited方法,但文档的实际内容不会被新内容替换。相反,文档根本不会受到影响。有人可以建议我为此做些什么,或者我在这里做错了什么?
答案 0 :(得分:1)
Document接口有一个方法,DocumentImpl中描述了这些机制。
但是,您确定需要更新文档内容吗?这是注释的重点 - 在文本本身之上放置您需要的任何注释。然后只使用注释功能而不是文档内容。例如,如果你得到令牌字符串,你可以重建文本,如果你使用令牌词干你得到一个词干版本。只需使用Token.newstring而不是更改内容。
此外,这是一个麻烦的操作,因为它必须移动所有注释偏移量。