문제

Eclipse 플러그인 애플리케이션 시작 시 메뉴 항목을 완전히 제거하고 싶습니다.내가 원하는 것은 사용자의 작업을 기반으로 하는 비즈니스 로직에 따라 나중에 이러한 메뉴 항목을 추가할 수 있는 것입니다.이를 수행할 수 있는 방법이 있습니까?기여도를 사용해 보았지만 정확히 내가 원하는 것이 아닐 것 같은 느낌이 들었습니다.

그 경우 ~할 수 있다 나에게 필요한 작업을 수행하고 어떻게 사용합니까?도움을 주셔서 미리 감사드립니다.

도움이 되었습니까?

해결책

Menumanager에서 메뉴를 얻은 다음 기부금을 수정할 수 있습니다. 이 스 니펫은 메뉴 관리자에 액세스하고 명명 된 항목을 제거하는 방법을 보여줍니다.

제거 된 항목 및 항목 지수를 추적하여 복원해야합니다. 유일한 문제는 인덱스의 메소드가 보이지 않는다는 것입니다. Menumanager와 동일한 패키지의 유형 에이 스 니펫을 추가하고 조각에 추가하는 것이 한 가지 방법입니다.

IWorkbenchWindow window = Workbench.getInstance().getActiveWorkbenchWindow()

if(window instanceof WorkbenchWindow) {
    MenuManager menuManager = ((WorkbenchWindow)window).getMenuManager();

    //TODO you may need to remove items from the coolbar as well
    ICoolBarManager coolBarManager = null;

    if(((WorkbenchWindow) window).getCoolBarVisible()) {
        coolBarManager = ((WorkbenchWindow)window).getCoolBarManager2();
    }

    Menu menu = menuManager.getMenu();

    //you'll need to find the id for the item
    String itemId = "menuId";
    IContributionItem item = menuManager.find(itemId);

    // remember position, TODO this is protected
    int controlIdx = menu.indexOf(mySaveAction.getId());

    if (item != null) {
        // clean old one
        menuManager.remove(item);

        // refresh menu gui
        menuManager.update();
    }
}

다른 팁

RCP 애플리케이션에서 메뉴 또는 도구 모음 항목의 가시성을 제어하는 ​​방법에는 여러 가지가 있습니다.

문제의 항목을 제공하는 플러그인을 제어할 수 있는 경우 가장 쉬운 방법은 일반적으로 visibleWhen 와 관련된 표현 menus 확장 지점.확인하고 싶은 내부 상태가 있는 경우 다음을 사용할 수 있습니다. test 표현의 요소와 함께 propertyTester.

대안은 활동을 사용하는 것입니다.이는 내장된 대화 상자 중 일부를 다시 구현해야 할 수도 있다고 생각하여 응용 프로그램의 다른 많은 것들을 제어할 수 있습니다.이 블로그 항목을 참조하세요 "사용자 관리를 위한 활동 사용" 자세한 내용은.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top