JPDA 架构研究21 - JDI的Debugger的UI部分
2014-12-11 13:51
316 查看
引入:
前面揭示了JDI的Debugger如何建立连接,发送和处理请求,这里我们专注于人机交互部分,Debugger的UI,它主要负责如何把人发出的操作转为请求,以及把请求操作反映在调试器的界面上。
分析:
这个插件主要都定义在org.eclipse.jdt.debug.ui_<Version>.jar中的plugin.xml中,它提供了各种人机交互的插件功能。打的比方,我们看编辑器功能:
每个操作都有用到的图标,用到的action响应类等,有兴趣的可以看下。
前面揭示了JDI的Debugger如何建立连接,发送和处理请求,这里我们专注于人机交互部分,Debugger的UI,它主要负责如何把人发出的操作转为请求,以及把请求操作反映在调试器的界面上。
分析:
这个插件主要都定义在org.eclipse.jdt.debug.ui_<Version>.jar中的plugin.xml中,它提供了各种人机交互的插件功能。打的比方,我们看编辑器功能:
<extension point="org.eclipse.ui.editorActions"> <editorContribution targetID="org.eclipse.jdt.ui.CompilationUnitEditor" id="org.eclipse.jdt.debug.CompilationUnitEditor.BreakpointRulerActions"> <action label="%AddBreakpoint.label" class="org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate" actionID="RulerDoubleClick" id="org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction"> </action> </editorContribution> <editorContribution targetID="org.eclipse.jdt.ui.ClassFileEditor" id="org.eclipse.jdt.debug.ClassFileEditor.BreakpointRulerActions"> <action label="%AddBreakpoint.label" class="org.eclipse.debug.ui.actions.RulerToggleBreakpointActionDelegate" actionID="RulerDoubleClick" id="org.eclipse.jdt.debug.ui.actions.ManageBreakpointRulerAction"> </action> </editorContribution> <editorContribution targetID="org.eclipse.jdt.debug.ui.SnippetEditor" id="org.eclipse.jdt.debug.ui.JavaSnippetToolbarActions"> <action toolbarPath="evaluationGroup" id="org.eclipse.jdt.debug.ui.SnippetExecute" hoverIcon="$nl$/icons/full/etool16/run_sbook.gif" class="org.eclipse.jdt.internal.debug.ui.actions.ExecuteAction" disabledIcon="$nl$/icons/full/dtool16/run_sbook.gif" enablesFor="+" icon="$nl$/icons/full/etool16/run_sbook.gif" helpContextId="execute_action_context" label="%Execute.label" tooltip="%Execute.tooltip"> <selection class="org.eclipse.jface.text.ITextSelection"> </selection> </action> <action toolbarPath="evaluationGroup" id="org.eclipse.jdt.debug.ui.SnippetDisplay" hoverIcon="$nl$/icons/full/etool16/disp_sbook.gif" class="org.eclipse.jdt.internal.debug.ui.actions.PopupDisplayAction" disabledIcon="$nl$/icons/full/dtool16/disp_sbook.gif" enablesFor="+" icon="$nl$/icons/full/etool16/disp_sbook.gif" helpContextId="display_action_context" label="%Display.label" tooltip="%Display.tooltip"> <selection class="org.eclipse.jface.text.ITextSelection"> </selection> </action> <action toolbarPath="evaluationGroup" id="org.eclipse.jdt.debug.ui.SnippetInspect" hoverIcon="$nl$/icons/full/etool16/insp_sbook.gif" class="org.eclipse.jdt.internal.debug.ui.actions.PopupInspectAction" disabledIcon="$nl$/icons/full/dtool16/insp_sbook.gif" enablesFor="+" icon="$nl$/icons/full/etool16/insp_sbook.gif" helpContextId="inspect_action_context" label="%Inspect.label" tooltip="%Inspect.tooltip"> <selection class="org.eclipse.jface.text.ITextSelection"> </selection> </action> </editorContribution> </extension>从这里看出,它支持好几个操作:如CompilationUnitEditor的打断点 ,ClassFileEditor的打断点等。
每个操作都有用到的图标,用到的action响应类等,有兴趣的可以看下。
相关文章推荐
- JPDA 架构研究19 - JDI的连接模块
- JPDA 架构研究20 - JDI的事件请求和处理模块 推荐
- JPDA 架构研究17 - JDI概览
- JPDA 架构研究18 - JDI的Mirror机制
- JPDA 架构研究10 - Agent利用环境指针访问VM(局部变量管理篇)
- JPDA 架构研究11 - Agent利用环境指针访问VM(断点操作篇)
- JPDA 架构研究5 - Agent利用环境指针访问VM (内存管理篇)
- JPDA 架构研究15 - Agent利用环境指针访问VM(字段访问篇)
- JPDA 架构研究6 - Agent利用环境指针访问VM (线程管理篇)
- JPDA 架构研究3 - JDWP层的数据包
- JPDA 架构研究7 - Agent利用环境指针访问VM(线程组管理篇)
- JPDA 架构研究22 - 总结
- JPDA 架构研究8 - Agent利用环境指针访问VM(堆栈管理篇)
- JPDA 架构研究12 - Agent利用环境指针访问VM(观察字段篇)
- JPDA 架构研究16 - Agent利用环境指针访问VM(方法访问篇)
- JPDA 架构研究9 - Agent利用环境指针访问VM (堆管理篇)
- iOS开发视频教程 UI部分:1、iOS概述和架构
- JPDA 架构研究4 - JDWP的传输器
- 企业架构研究总结(21)——TOGAF架构开发方法(ADM)之业务架构阶段
- JPDA 架构研究1- 整体架构