我需要确定光标是否在 XML 范围内。我已经为 Range 设置了开始和结束文本节点。我想 compareBoundaryPoints 方法在这种情况下不能正常工作。当然,我可能是错的。在 Java 中,我使用com.arbortext.epic.ADocument
,org.w3c.dom.ranges.Range
导入。
holeRange_
是一个org.w3c.dom.ranges.Range
对象。
holeRange_ = ((DocumentRange) txtProcessor_.GetDocument()).createRange();
holeRange_.setStart(startNode, 0); //text node
holeRange_.setEndAfter(endNode); //text node
这是单击事件处理程序的主体:
Range caretRange = ((ADocument) txtProcessor_.GetDocument()).getInsertionPoint();
if (caretRange != null) {
DebugMode.println(caretRange.getStartContainer().getNodeValue());
DebugMode.println("END_TO_START = " +
textNodeRange_.compareBoundaryPoints(Range.END_TO_START, caretRange));
DebugMode.println("START_TO_END = " +
holeRange_.compareBoundaryPoints(Range.START_TO_END, caretRange));
}
当光标在范围内时,输出给出 END_TO_START = -1 和 START_TO_END = -1。根据检查指定元素是否在选择内,值应该是:END_TO_START = -1 和 START_TO_END = 1。问题是否与它相关: https ://bugs.eclipse.org/bugs/show_bug.cgi?id=148126