引入:
前面揭示了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>