2017-12-19 16 views
0

나는 단지 내 상황에 맞는 메뉴에서 조치를 추가 넣어, 그것은 단지 메뉴

"작업 추가"를 표시해야합니다 그러나 그것은 또한 다른 메뉴 (비교 표시 -> 기준을 추가를) 나는 그것이 어디서 왔는지, 어떻게 제거하는지 또는 사용하지 못하게하는 방법을 모른다.

모든 힌트가 환영받을 것입니다.

getSite().registerContextMenu(menuMgr, viewer); 

이이 부분에 대한 상황에 맞는 메뉴입니다 이클립스를 알려줍니다 그것은 모든 부분에 자신을 추가 할 다른 플러그인의 기여 (또는 특히 당신의 부분)를 추가해야 호출

private void hookContextMenu() { 
    MenuManager menuMgr = new MenuManager("#PopupMenu"); 
    menuMgr.setRemoveAllWhenShown(true); 
    menuMgr.addMenuListener(new IMenuListener() { 
     public void menuAboutToShow(IMenuManager manager) { 

      IStructuredSelection sSelection = (IStructuredSelection) viewer 
        .getSelection(); 

      Object obj = ((IStructuredSelection) sSelection) 
        .getFirstElement(); 
      if (obj.toString().equals("Repository")) { 
       manager.add(addGitAction); 
      } 

     } 
    }); 
    Menu menu = menuMgr.createContextMenu(viewer.getControl()); 

    viewer.getControl().setMenu(menu); 
    menu.getItems(); 
    getSite().registerContextMenu(menuMgr, viewer); 
} 
+0

힌트 1 : 맞춤법 검사기를 사용하십시오 (제목을보십시오). 힌트 2 : [튜토리얼] (https://www.eclipse.org/articles/Article-RCP-1/tutorial1.html)이 있습니다. 따라야 할 조언을 제시하십시오. 결과가 원하는 효과에서 어떻게 벗어 났는지 정확하게 제시하십시오. 원인에 대한 귀하의 의견을 환영합니다. – greybeard

+0

메뉴 작성 방법을 알려주십시오. 'registerContextMenu'를 호출하고 있습니까? –

답변

1

.

다른 플러그인의 기여를 원하지 않는다면이 문제를 해결할 수 있습니다.

+0

getSite()를 호출하지 않으면 registerContextMenu (menuMgr, viewer); 컨텍스트 메뉴가 전혀 표시되지 않습니다. 내 수업은 ConfigView가 ViewPart를 확장합니다 – stewchicken

+0

어떻게 메뉴를 표시하려고합니까? 뷰어에서 마우스 오른쪽 버튼을 클릭하면 잘 동작합니다. 선택 항목이 '저장소'인 경우 메뉴에 하나의 작업 만 추가하기 때문에 비어있어 다른 항목을 선택하면 메뉴가 표시되지 않습니다. –

+0

사용자가 마우스 오른쪽 버튼을 클릭 할 때 액션 추가 만 표시되어야하지만 현재는 추가 작업과 API 기본 라인 비교 ( – stewchicken