문제

이제 Eclipse WizardDialog/Editor에 상황에 대한 도움말을 등록 할 수 있습니까?

1) help_contexts.xml 파일을 만들었습니다.

<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.contexts"?>
<contexts>
   <context  id="my.plugin.help.general" >
        <description>test</description>
        <topic label="test" href="http://domain.com/help.html"/>
   </context>
</contexts>

2)이 파일을 플러그인 .xml에서 참조했습니다

  <extension
         point="org.eclipse.help.contexts">
         <contexts file="help_contexts.xml" plugin="my.plugin.MainEditor">
         </contexts>
   </extension>

3) BIN DIRECTORY 에이 파일을 포함시키기 위해 빌드에 라인을 추가했습니다 (bin.includes = help_contexts.xml, ...)

4) GEF 기반 플러그인을 실행할 때 "My.plugin.meaditor"에 대한 "No Match Found Found" "가 동적 도움말 아래에 있습니다.

나는 어딘가에 이와 같은 것을 만들어야한다는 것을 알고 있지만, 마법사 또는 적어도 전체 편집자를 위해 이것을 어디에 설정 해야할지 모르겠습니다.

  public void createPartControl(Composite parent) {
      ...
      PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, 
         "my.plugin.help.general");
   }

참고 :이 질문에는 원래 두 가지 질문이 포함되어 있습니다. 나는 다른 곳에 게시 할 첫 번째 (응답 부품)를 제거했습니다.

도움이 되었습니까?

해결책

다음은 다음과 같습니다. 1) help_contexts.xml 파일을 만들었습니다. 컨텍스트 ID에 기간이 없습니다. 플러그인 이름을 포함하지 마십시오.

<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.contexts"?>
<contexts>
   <context  id="help_general" >
        <description>test</description>
        <topic label="test" href="http://domain.com/help.html"/>
   </context>
</contexts>

2) 내 플러그인 에서이 파일을 참조했습니다. XML 자체 플러그인을 참조하는 경우 플러그인 -ID가 포함되어 있지 않습니다.

 <extension
         point="org.eclipse.help.contexts">
         <contexts file="help_contexts.xml">
         </contexts>
   </extension>

3) BIN DIRECTORY 에이 파일을 포함시키기 위해 빌드에 선을 추가했습니다 (bin.includes = help_contexts.xml, ...). Manifest.mf (플러그인 .xml 편집기에서도 표시됨)에 번들-상징형 이름을 참고하십시오. 예 : my.plugin

4) WizardPage에서 컨텍스트 ID를 설정합니다 (크레딧은 @VONC로 이동)

public class MyWizardPage extends WizardPage
    public void createControl(Composite parent) {
        PlatformUI.getWorkbench.getHelpSystem.setHelp(parent, "my.plugin.help_general");
    }
}

다른 팁

주요 질문은 Sethelp 두 번째 매개 변수에 대해 잘 모르겠습니다. 보다 이 스레드:

메소드 호출에서

PlatformUI.getWorkbench().getHelpSystem().setHelp()

두 번째 매개 변수는입니다 contextID.
그것은 접두사와 접두사해야합니다 pluginID 처럼 : "pluginID.contextID".
이제 플러그인의 플러그인 ID를 어디에서 찾을 수 있는지 잘 모르겠습니다.
그래서 나는이 속성의 가치를 사용했습니다. Bundle-Name Bundle-Symbolic-Name ~에서 MANIFEST.MF 플러그인 ID로
이제 작동합니다.


SideNote를 위해 (도움 WizardDialog), 이 스레드 도움이 될 수 있습니다 (David Kyle과 그의 블로그에서 "일식 RCP"):

마법사 페이지에서 컨텍스트 ID를 설정합니다.

public class MyWizardPage extends WizardPage
    public void createControl(Composite parent) {
        PlatformUI.getWorkbench.getHelpSystem.setHelp(parent, 
MyPluginActivator.ID + ".mycontexthelpid");
    }
}

그리고 우리는 마법사 대화 상자에 대한 도움을 설정했습니다.

WizardDialog dialog = new WizardDialog(.....);
PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(), 
"mycontexthelp.id");

우리는 무시하지 않습니다 performHelp().

도움말 컨텍스트 ID. 플러그인에서 컨텍스트 XML 파일을 정의하십시오.

<?xml version="1.0" encoding="UTF-8"?>
<?NLS TYPE="org.eclipse.help.contexts"?>
<contexts>
    <context id="mycontexthelpid" >
        <description>My wizard help.</description>
        <topic label="Wizard help" href="reference/wizard/help.xhtml"/>
    </context>
</contexts>

플러그인에서

<plugin>
    <extension point="org.eclipse.help.contexts">
        <contexts file="mywizard.xml" plugin="com.mypluginid"/>
    </extension>
</plugin>

일반적인 문제는 플러그인과 컨텍스트 도움말 ID를 엉망으로 만드는 것입니다. 어떤 컨텍스트 ID가 요청되는지 확인하기 위해 몇 가지 중단 점을 설정할 수 있습니다.

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