RCP 프로그램 에 도움말 지원 추가

더 읽 기
RCP 프로그램 에 도움말 지원 을 추가 하기 위해 본 고 는 EclipseCorner 의 글 인 'Adding Help Support to a Rich Client Platform (RCP) Application' 을 대량으로 참고 하여 특별히 감 사 를 표 합 니 다.영 어 를 잘 하 는 친 구 는 이 문장 을 직접 볼 수 있다.v 1.0.0 2007 - 12 - 26 우호 적 이 고 사용 하기 쉬 운 도움 시스템 은 좋 은 소프트웨어 에 필수 적 인 부분 으로 그 어떠한 문서 도 필요 없 이 할 수 있 는 소프트웨어 가 매우 적다.Eclipse 의 도움말 시스템 은 브 라 우 저 를 기반 으로 하기 때문에 HTML 을 완전히 지원 하고 검색 기능 을 자동 으로 지원 합 니 다.또한 상하 문 도움말 과 키워드 인덱스 를 지원 할 수 있 습 니 다.도움말 시스템 은 RCP 의 선택 가능 한 구성 요소 입 니 다. 최소 RCP 의 일부분 은 아니 지만 RCP 에 추가 하여 RCP 프로그램 에 도움 을 줄 수 있 습 니 다.RCP 프로그램 에 도움말 지원 을 추가 하 는 과정 을 예 를 들 어 설명 한다.계속 하기 전에 먼저 RCP 측의 지원 을 받 았 는 지 확인 하고 프로젝트 를 만 드 는 방법 과 제품 설정 방법 을 알 게 되 었 습 니 다.이것들 은 모두 본문의 주제 가 아니 므 로 이런 내용 을 이해 해 야 하 며 다른 자 료 를 참고 할 수 있다.본 고의 아래 내용 은 독자 가 이미 이 방면 의 내용 을 이해 하고 기본적으로 파악 했다 고 가정한다.1. RCP 프로그램 을 만 듭 니 다.PDE 자체 에 RCP 프로그램의 템 플 릿 이 몇 개 있 습 니 다. 우 리 는 그 중의 RCP Mail 템 플 릿 을 예 로 들 면 이것 은 본 고의 주제 가 아니 라 템 플 릿 에 따라 RCP 프로그램 을 만 드 는 것 도 비교적 간단 하기 때문에 더 이상 군말 하지 않 습 니 다.이 예 의 항목 이름 은 org. example. rcp 이 며, 다른 항목 은 모두 기본 값 을 가 져 옵 니 다.2. 제품 설정 을 만 드 는 것 은 RCP 프로그램 에 필수 적 인 것 입 니 다 (컴 파일 오류 가 없 지만 실행 할 수 있 지만 제품 설정 은 RCP 프로그램 이 발표 하 는 기초 입 니 다).우리 의 제품 프로필 이름 은 rcp. produt 이 고, 기타 기본 값 을 가 져 옵 니 다.3. 코드 를 추가 하려 면 먼저 RCP 프로젝트 에서 AppllicationiAction BarAdvisor 와 같은 종 류 를 찾 아 아래 템 플 릿 에 따라 수정 합 니 다.
public class ApplicationActionBarAdvisor extends ActionBarAdvisor {

    // Actions - important to allocate these only in makeActions, and then use them
    // in the fill methods.  This ensures that the actions aren't recreated
    // when fillActionBars is called with FILL_PROXY.
    private IWorkbenchAction exitAction;
    private IWorkbenchAction aboutAction;
    private IWorkbenchAction newWindowAction;
    private OpenViewAction openViewAction;
    private Action messagePopupAction;
    
	private IAction helpContentAction = null;	  //  ,      Action    
	private IAction helpSerchAction = null;
	private IAction helpDynamicAction = null;


    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
        super(configurer);
    }
    
    protected void makeActions(final IWorkbenchWindow window) {
        // Creates the actions and registers them.
        // Registering is needed to ensure that key bindings work.
        // The corresponding commands keybindings are defined in the plugin.xml file.
        // Registering also provides automatic disposal of the actions when
        // the window is closed.

        exitAction = ActionFactory.QUIT.create(window);
        register(exitAction);
        
        aboutAction = ActionFactory.ABOUT.create(window);
        register(aboutAction);
        
        newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
        register(newWindowAction);
        
        openViewAction = new OpenViewAction(window, "Open Another Message View", View.ID);
        register(openViewAction);
        
        messagePopupAction = new MessagePopupAction("Open Message", window);
        register(messagePopupAction);
        
    	//  
    	helpContentAction = ActionFactory.HELP_CONTENTS.create(window);
    	register(helpContentAction);
    	helpSerchAction = ActionFactory.HELP_SEARCH.create(window);
    	register(helpSerchAction);
    	helpDynamicAction = ActionFactory.DYNAMIC_HELP.create(window);
    	register(helpDynamicAction);

    }
    
    protected void fillMenuBar(IMenuManager menuBar) {
        MenuManager fileMenu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE);
        MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP);
        
        menuBar.add(fileMenu);
        // Add a group marker indicating where action set menus will appear.
        menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
        menuBar.add(helpMenu);
        
        // File
        fileMenu.add(newWindowAction);
        fileMenu.add(new Separator());
        fileMenu.add(messagePopupAction);
        fileMenu.add(openViewAction);
        fileMenu.add(new Separator());
        fileMenu.add(exitAction);
        
        // Help
        helpMenu.add(aboutAction);
    	helpMenu.add(helpContentAction);
    	helpMenu.add(helpSerchAction);
    	helpMenu.add(helpDynamicAction);
    }
    
    protected void fillCoolBar(ICoolBarManager coolBar) {
        IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
        coolBar.add(new ToolBarContributionItem(toolbar, "main"));   
        toolbar.add(openViewAction);
        toolbar.add(messagePopupAction);
    }
}

4. RCP 프로그램 에 도움말 시스템 을 추가 하 는 것 을 테스트 하려 면 최소한 다음 플러그 인 을 추가 해 야 합 니 다. org. apache. lucene org. eclipse. help. appserver org. eclipse. help. base org. eclipse. help. ui org. eclipse. help. webapp org. eclipse. tomcat org. eclipse. ui. forms.제품 프로필 을 열 고 편집기 의 '설정' 페이지 에서 추 가 를 클릭 하고 위 플러그 인 을 추가 한 다음 '필수 플러그 인 추가' 를 클릭 합 니 다.모든 필수 플러그 인 을 추가 한 후 '개술' 페이지 에서 시작 제품 을 클릭 하여 실행 상황 을 살 펴 보면 도움말 메뉴 에서 도움말 관련 메뉴 가 세 개 있 는 것 을 볼 수 있 습 니 다.'도움말 내용' 을 누 르 면 설치 되 지 않 은 문서 의 오 류 를 보고 합 니 다. 다른 두 메뉴 는 틀 리 지 않 습 니 다.5. 간단 한 도움말 내용 에 보 고 된 오 류 를 추가 하 는 것 은 도움말 내용 을 사용 할 수 없 기 때 문 입 니 다. 아래 에 간단 한 도움말 내용 을 제공 합 니 다. 도움말 내용 은 보통 하나의 독립 된 플러그 인 형식 으로 존재 합 니 다. 아래 절차 에 따라 도움말 내용 플러그 인 을 만 듭 니 다. 1. "File > New > Project > Plug - in procject"... 2. 팝 업 마법사 의 첫 페이지 에서 체크 상자 인 'Create a Java Project' 가 선택 되 지 않 은 상태 임 을 보증 합 니 다.(물론 이것 은 필수 가 아니다.)3. 항목 이름 'org. example. rcp. content' 를 입력 하고 다음 단 계 를 누 르 십시오.4. 템 플 릿 선택 페이지 에서 Plug - in with sample help content 선택"템 플 릿 을 사용 하여 도움말 내용 플러그 인 을 만 듭 니 다."만약 당신 이 나 와 같이 3.2 의 중국어 버 전 을 사용한다 면, 당신 은 toc. xml 파일 을 수 동 으로 수정 해 야 할 것 입 니 다. 그 안에 중국 어 를 사용 하 는 곳 이 있 기 때문에 이 파일 을 열 면 xml 에 규정된 코드 로 바 꾸 면 됩 니 다.그렇지 않 으 면 나중에 오류 가 발생 할 수 있 습 니 다.5. 제품 프로필 편집기 의 설정 페이지 에 이 플러그 인 을 추가 합 니 다.6. 제품 프로필 편집기 의 개요 페이지 에서 시작 제품 을 클릭 하여 실행 상황 을 봅 니 다.6. 컨 텍스트 도움말 컨 텍스트 도움말 을 추가 하 는 것 은 사용자 가 모든 인터페이스 에서 F1 (windows) 을 클릭 하거나 메뉴 의 동적 도움말 을 클릭 하여 현재 인터페이스 와 연 결 된 도움말 알림 등 이 나타 납 니 다.Eclipse 프레임 워 크 에 컨 텍스트 도움말 을 추가 하 는 것 도 간단 합 니 다.우선, 컨 텍스트 에 ID 를 지정 해 야 합 니 다. 이 ID 는 도움말 내용 의 하나 또는 몇 가지 항목 과 일치 합 니 다.RCP 예제 의 "Message" 보 기 를 위 한 컨 텍스트 도움말 을 만 듭 니 다. View. java 파일 을 수정 해 야 합 니 다. 이러한 createPartControl 방법 에 PlatformUI. getWorkbench (). getHelp System (). setHelp (top, "org. example. rcp. content. context") 를 추가 합 니 다.두 번 째 인 자 는 문서 플러그 인 ID + 아래 xml 의 id 로 구성 되 어 있 습 니 다.그리고 상하 문 ID 를 지정 하면 도움말 내용 에 해당 하 는 내용 을 추가 해 야 합 니 다.위 에서 만 든 org. example. rcp. ocntent 프로젝트 에서 파일 'contexts. xml' 을 만 듭 니 다. 내용 은 다음 과 같 습 니 다.


This is the sample context-sensitive help. 




그리고 이 내용 을 위의 ID 와 연결 해 야 합 니 다. org. eclipse. help. context 확장 점 을 사용 해 야 합 니 다. 이 확장 점 에서 지정 해 야 할 값 은 방금 만 든 파일 입 니 다.확장 페이지 에서 1. 추 가 를 클릭 하고 org. eclipse. help. context 라 는 확장 점 을 선택 하 십시오.2. file 항목 에서 방금 만 든 파일 을 선택 하 십시오.또한 View. java 파일 에서 다음 과 같은 수정 을 합 니 다. 즉, set Focus () 방법 에서 top 에 초점 을 맞 춰 시스템 이 정확 한 컨 텍스트 를 도움말 시스템 에 전달 하도록 합 니 다. 필요 한 수정 은 아래 코드 를 참고 하 십시오.
	private Composite top;
	public void createPartControl(Composite parent) {
		top = new Composite(parent, SWT.NONE);
		...
	}

	public void setFocus() {
		top.setFocus();
	}

제품 시작 을 다시 클릭 하고 Message 보기에 초점 을 맞 춘 상태 에서 F1 또는 메뉴 선택 동적 도움말 을 눌 러 효 과 를 봅 니 다. 위의 절차 가 올 바 르 게 실행 되면 오른쪽 에 지 정 된 도움말 내용 이 자동 으로 나타 날 것 입 니 다.
  • code.zip (78.2 KB)
  • 설명: 예시 코드
  • 다운로드 횟수: 166
  • 좋은 웹페이지 즐겨찾기