Domanda

Ora posso registrare la guida contestuale in un Eclogse WizardDialog / Editor.

1) Ho creato un file 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) Ho fatto riferimento a questo file nel mio plugin.xml

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

3) Ho aggiunto una riga nella mia build.properties per includere questo file nella directory bin (bin.includes = help_contexts.xml, ...)

4) Quando eseguo il mio plug-in basato su GEF, vedo " Nessuna corrispondenza trovata per " my.plugin.MainEditor " " sotto aiuto dinamico.

So che devo creare qualcosa di simile da qualche parte, ma non so dove configurarlo per il mio WizardDialog o almeno per il mio intero editor:

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

Nota: questa domanda originariamente conteneva due domande. Ho rimosso la prima (parte senza risposta) da pubblicare altrove.

È stato utile?

Soluzione

Ecco come lo fai: 1) Ho creato un file help_contexts.xml. Non ci sono punti nell'ID di contesto. Non includere il nome del tuo plugin lì dentro.

<?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) Ho fatto riferimento a questo file nel mio plugin.xml Non includere l'id plug-in se si fa riferimento al proprio plug-in.

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

3) Ho aggiunto una riga nella mia build.properties per includere questo file nella directory bin (bin.includes = help_contexts.xml, ...). Nota il Bundle-SymbolicName in Manifest.MF (visibile anche nell'editor plugin.xml). Esempio: my.plugin

4) Imposta l'id di contesto in WizardPage (il credito va a @VonC)

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

Altri suggerimenti

Per la domanda principale, non sono sicuro del tuo secondo parametro setHelp. Vedi questa discussione :

  

Nella chiamata del metodo

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

il secondo parametro è contextID .
  Dovrebbe essere preceduto dal pluginID come: " pluginID.contextID " ;.
  Ora non sapevo dove trovare l'ID plug-in per il mio plug-in.
  Quindi ho usato il valore di questa proprietà: Bundle-Name Bundle-Symbolic-Name da MANIFEST.MF come l'ID plug-in.
  Ora funziona.


Per il sidenote (aiuto per WizardDialog ), questa discussione potrebbe aiutare (da David Kyle e il suo blog " RCP di Eclipse "):

  

Abbiamo impostato l'id di contesto nella nostra pagina della procedura guidata.

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

e impostiamo la guida per la finestra di dialogo della procedura guidata.

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

Non sostituiamo performHelp () .

     

Per quanto riguarda l'ID del contesto di aiuto. Definisci un file XML di contesto nel tuo 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>
  

nel tuo plugin

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

Un problema comune è la confusione tra ID di plugin e contesto. Puoi impostare   un paio di punti di interruzione per vedere quale ID di contesto viene richiesto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top