위지트(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 이름을 조합하여 사용할 경우 대부분의 경우 좋은 결과를 얻을 수 있습니다.