JPDA 架構研究21 - JDI的Debugger的UI部分

引入: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響應類等,有興趣的能夠看下。
插件

相關文章
相關標籤/搜索