开发一个调试 JSP 的 Eclipse 插件
2009-12-16 00:00:00 来源:WEB开发网下面是update的调用栈,可以看出,update方法是在鼠标点击事件中被调用的:
ManageBreakpointRulerAction.update() line: 55
ManageBreakpointRulerActionDelegate(AbstractRulerActionDelegate).update() line: 114
ManageBreakpointRulerActionDelegate(AbstractRulerActionDelegate).mouseDown(MouseEvent) line: 139
updae被调用后,会执行 run 方法,就可以根据 allMarkers.isEmpty() 确定要删除还是添加 marker 了。
添加断点的时候,首先利用 IVerticalRulerInfo,获取鼠标点击的行号,根据行号,从 Document 模型中取得该行的描述IRegion,得到开始字符位置和结束字符位置,创建一个 JSP 断点。
protected void addMarker() {
IEditorInput editorInput= this.getTextEditor().getEditorInput();
IDocument document= this.getDocument();
//the line number of the last mouse button activity
int rulerLine= this.getRulerInfo().getLineOfLastMouseButtonActivity();
try{
int lineNum = rulerLine + 1;
if(lineNum > 0){
//Returns a description of the specified line
IRegion iregion = document.getLineInformation(lineNum - 1);
int charStart = iregion.getOffset();
int charEnd = (charStart + iregion.getLength()) - 1;
JSPDebugUtility.createJspLineBreakpoint(this.getResource(),
lineNum, charStart, charEnd);
}
}catch(CoreException coreexception){
coreexception.printStackTrace();
}
catch(BadLocationException badlocationexception){
badlocationexception.printStackTrace();
}
}
更多精彩
赞助商链接