Question

Puis-je enregistrer une aide contextuelle dans un assistant / un éditeur Eclipse?

1) J'ai créé un fichier 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) J'ai référencé ce fichier dans mon fichier plugin.xml

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

3) J'ai ajouté une ligne dans mon build.properties pour inclure ce fichier dans le répertoire bin (bin.includes = help_contexts.xml, ...)

4) Lors de l’exécution de mon plugin GEF, je vois le message "Aucune correspondance trouvée pour" mon.plugin.MainEditor ". sous aide dynamique.

Je sais que je dois créer quelque chose comme ça quelque part, mais je ne sais pas où le mettre en place pour mon WizardDialog ou au moins pour tout mon éditeur:

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

Remarque: cette question contenait à l'origine deux questions. J'ai supprimé le premier (partie sans réponse) à être posté ailleurs.

Était-ce utile?

La solution

Voici comment vous le faites: 1) J'ai créé un fichier help_contexts.xml. Ne pas avoir de points dans l'identifiant de contexte. N'incluez pas le nom de votre plugin ici.

<?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) J'ai référencé ce fichier dans mon plugin.xml N'incluez pas l'identifiant du plugin si vous référencez votre propre plugin.

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

3) J'ai ajouté une ligne dans mon build.properties pour inclure ce fichier dans le répertoire bin (bin.includes = help_contexts.xml, ...). Notez votre Bundle-SymbolicName dans votre Manifest.MF (également visible dans votre éditeur plugin.xml). Exemple: my.plugin

4) Définissez l'identifiant de contexte dans la page d'assistant (le crédit est attribué à @VonC)

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

Autres conseils

En ce qui concerne la question principale, je ne suis pas sûr de votre deuxième paramètre setHelp. Voir ce fil :

  

Dans l'appel de méthode

PlatformUI.getWorkbench().getHelpSystem().setHelp()
  Le deuxième paramètre est le contextID .
  Il devrait être précédé du pluginID comme suit: " pluginID.contextID ".
  À présent, je ne savais pas où trouver l'ID de plug-in pour mon plug-in.
  J'ai donc utilisé la valeur de cette propriété: Nom du paquet Nom du symbole symbolique à partir de MANIFEST.MF l'identifiant du plug-in.
  Maintenant ça marche.

Pour le reste (aide pour WizardDialog ), ce fil pourrait aider (de David Kyle et son blog " Eclipse RCP ")):

  

Nous définissons l'identifiant de contexte dans la page de notre assistant.

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

et nous définissons l'aide pour la boîte de dialogue de l'assistant.

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

Nous ne remplaçons pas performHelp () .

     

En ce qui concerne l'id du contexte d'aide. Définissez un fichier xml de contexte dans votre 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>
  

dans votre plugin

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

Un problème courant est de gâcher le plugin et les identifiants d’aide contextuelle. Vous pouvez définir   quelques points d'arrêt pour voir quel identifiant de contexte est demandé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top