2012-02-20 3 views
4

, 나는이 일을하여 프로젝트 탐색기에서 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에 항목을 추가 할 수 있었다 ConsoleView의 팝업 메뉴에 추가하려고하면 결과가 표시되지 않습니다.이클립스 플러그인 개발에

<extension point="org.eclipse.ui.menus"> 
    <menuContribution locationURI="popup:org.eclipse.ui.console.ConsoleView"> 
     <command ... > 
      ... 
     </command> 
    </menuContribution> 
</extension> 

I는 ALT 천이 F1 난 org.eclipse.ui.console.ConsoleView있어 어디 ALT 천이 F2 (스파이 플러그인)로부터의 출력을보고 왔습니다. 그러나 나는 팝업 메뉴 자체에 도달 할 수없는 것 같습니다. 개별 팝업 메뉴 항목 (모두 선택, 지우기 등)에 대한 정보를 얻을 수는 있지만 올바른 정보를 얻으려면 플러그인 스파이로 "파"하는 방법을 모르는 것 같습니다.

편집 : 스파이는 다음과 같은 한 선택 플러그인 아래

에서 답을 사용하여 내 작업의 결과 표시 :

Active Part (Console) 
    The active view identifier: 
     org.eclipse.ui.console.ConsoleView 
Active Selection 
    The selection class: 
     TextSelection 
Active Help 
    The active help context identifiers: 
     org.eclipse.debug.ui.process_console_context 

그것이 그 으로 저를 지적 마지막 항목 프로세스 콘솔 (메시지 콘솔과 반대). 대답의 링크는 IDebugUIConstants.ID_PROCESS_CONSOLE_TYPEorg.eclipse.debug.ui.ProcessConsoleType으로 정의되었습니다. 그래서 나는이 함께 결국, 그것은 일 :

<menuContribution 
     locationURI="popup:org.eclipse.debug.ui.ProcessConsoleType.#ContextMenu"> 
    <command 
      commandId="com.grch.cmgtsdk.merge" 
      label="Yowza!" 
      style="push"> 
    </command> 
    </menuContribution> 

답변

4

콘솔보기 자체가 콘솔의 서로 다른 종류의 단지 컨테이너하고 상황에 맞는 메뉴가 없습니다. 컨트 리뷰 션을 추가 할 특정 콘솔의 메뉴 ID를 알아 내야합니다.

텍스트 콘솔의 경우 메뉴 ID는 <console type>.#ContextMenu과 비슷합니다. 이것은 실제로 문서화되어 있지 않으며 콘솔 유형을 찾는 것이 쉽지 않습니다 (코드를 살펴보아야합니다). 예를 들어 프로세스 콘솔의 콘솔 유형은 IDebugUIConstants.ID_PROCESS_CONSOLE_TYPE에 정의되어 있으며 메시지 콘솔의 경우에는 IConsoleConstants.MESSAGE_CONSOLE_TYPE입니다.

1

위의 답변은 팝업 작성에 도움이되었습니다. 다음은 예제 코드입니다. -

<menuContribution 
      locationURI="popup:org.eclipse.ui.MessageConsole.#ContextMenu"> 
      <menu 
       label="My Popup" id="com.abhi.test.popup.menu2"> 

      <command 
       commandId="com.abhi.test.command1" 
       id="com.abhi.test.popup.command3" 
       style="push"> 
      </command> 
      </menu> 
    </menuContribution>