동적으로 컨텍스트 도움말 작성

위지트(widget)와 컨텍스트 ID를 정적으로 연관시키는 것 외에, 보다 동적인 컨텍스트 도움말 기능을 위해 이 정보를 동적으로 제공할 수 있습니다. 도움말 시스템은 컨텍스트 ID를 사용하여 일치하는 org.eclipse.help.IContext 오브젝트를 찾습니다. 새 도움말 보기는 Workbench 파트(보기 및 편집기) 활성화를 추적하고 org.eclipse.help.IContextProvider 인터페이스에 적합한지 여부를 확인합니다. 적합한 경우, 보기는 컨텍스트 제공자를 사용하여 IContext 오브젝트를 찾아 필수 정보를 가져옵니다. 실시간으로 이 오브젝트를 캐시하거나 작성할 수 있습니다.

컨텍스트 오브젝트를 동적으로 작성할 Workbench 파트는 IContextProvider.class 오브젝트에 키로 적용해야 합니다.

public Object getAdapter(Class key) {
	if (key.equals(IContextProvider.class)) {
		return new MyContextProvider();
	}
	return super.getAdapter(key);
}

컨텍스트 제공자 인터페이스는 세 가지 메소드를 구현해야 합니다.

public class MyContextProvider implements IContextProvider {
	int getContextChangeMask() {
		return NONE;
	}
	IContext getContext(Object target) {
		return myContext;
	}
	String getSearchExpression(Object target) {
		return null;
	}
}

컨텍스트 변경 마스크가 NONE을 리턴하는 경우, Workbench 파트가 활성화될 때 컨텍스트 오브젝트를 제공해야 합니다. SELECTION이 리턴되면, 파트에서 현재 선택사항과 관련된 컨텍스트 오브젝트를 제공해야 합니다. 파트 선택 제공자가 선택사항 변경 이벤트를 빨갛게 표시할 때마다 컨텍스트 제공자에게 컨텍스트 오브젝트를 제공하도록 요구합니다.

선택적으로, 동적 도움말의 검색 표현식을 제공할 수 있습니다. 그렇지 않으면, 파트 이름과 Perspective 이름을 조합하여 사용할 경우 대부분의 경우 좋은 결과를 얻을 수 있습니다.