Pergunta

Agora posso registar ajuda contextual em um / Editor do Eclipse WizardDialog.

1) Eu criei um arquivo 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) I referenciada este arquivo no meu plugin.xml

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

3) eu adicionei uma linha em meus build.properties para incluir esse arquivo no diretório bin (bin.includes = help_contexts.xml, ...)

4) Ao executar o meu plugin-base GEF, eu vejo "Nenhum fósforo encontrou para 'my.plugin.MainEditor'" em Ajuda dinâmica.

Eu sei que eu preciso para criar algo parecido com isso em algum lugar, mas eu não sei de onde para configurá-lo para o meu WizardDialog ou pelo menos para toda a minha editor:

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

Nota: Esta pergunta originalmente continha duas perguntas. Eu removi o primeiro (parte sem resposta), a ser publicado em outro lugar.

Foi útil?

Solução

Aqui está como fazê-lo: 1) Eu criei um arquivo help_contexts.xml. Não tem períodos no id contexto. Não incluir o seu nome do plugin lá.

<?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) I referenciada este arquivo no meu plugin.xml não incluem o plugin-id se você estiver fazendo referência a seu próprio plugin.

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

3) eu adicionei uma linha em meus build.properties para incluir esse arquivo no diretório bin (bin.includes = help_contexts.xml, ...). Observe o seu Bundle-SymbolicName em sua manifest.mf (também visível no seu editor plugin.xml). Exemplo: my.plugin

4) Defina o ID de contexto na WizardPage (crédito vai para @VonC)

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

Outras dicas

Para a questão principal, eu não estou certo sobre o seu segundo parâmetro setHelp. Consulte esta discussão :

Na chamada de método

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

segundo parâmetro é o contextID.
Ele deve ser prefixado com o pluginID como: "pluginID.contextID"
Agora eu não tinha certeza de onde encontrar o plug-in ID para o meu plug-in.
Então eu usei o valor da propriedade:. Bundle-Name Bundle-Symbolic-Name de MANIFEST.MF como o plug-in ID
Agora ele funciona.


Para o sidenote (ajuda para WizardDialog), esta discussão ajuda poder (de David Kyle e seu blog " Eclipse RCP "):

Vamos definir o ID de contexto na nossa página do assistente.

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

e nós set ajuda para o diálogo do assistente.

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

Não substituir performHelp().

Quanto ao ID de contexto de ajuda. Definir um arquivo xml contexto no seu plugin.

<?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>

em seu plugin

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

Um problema comum é bagunçar os ids plugin e ajuda de contexto. Você pode definir um par de pontos de quebra para ver qual ID de contexto está sendo solicitado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top