引入:eclipse
前面揭示了JDI的Debugger如何創建鏈接,發送和處理請求,這裏咱們專一於人機交互部分,Debugger的UI,它主要負責如何把人發出的操做轉爲請求,以及把請求操做反映在調試器的界面上。編輯器
分析:ide
這個插件主要都定義在org.eclipse.jdt.debug.ui_<Version>.jar中的plugin.xml中,它提供了各類人機交互的插件功能。打的比方,咱們看編輯器功能:ui
<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的打斷點等。lua
每一個操做都有用到的圖標,用到的action響應類等,有興趣的能夠看下。
插件