Pregunta

Ahora puedo registrar la ayuda contextual en un Eclipse WizardDialog / Editor.

1) Creé un archivo 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) Hice referencia a este archivo en mi plugin.xml

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

3) Agregué una línea en mi build.properties para incluir este archivo en el directorio bin (bin.includes = help_contexts.xml, ...)

4) Al ejecutar mi complemento basado en GEF, veo "No se encontraron coincidencias para" my.plugin.MainEditor " " bajo ayuda dinámica.

Sé que necesito crear algo como esto en alguna parte, pero no sé dónde configurar esto para mi WizardDialog o al menos para todo mi editor:

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

Nota: Esta pregunta originalmente contenía dos preguntas. He eliminado la primera (parte sin respuesta) que se publicará en otro lugar.

¿Fue útil?

Solución

Así es como lo haces: 1) Creé un archivo help_contexts.xml. No tiene puntos en la identificación de contexto. No incluya el nombre de su complemento allí.

<?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) Hice referencia a este archivo en mi plugin.xml No incluya el plugin-id si está haciendo referencia a su propio complemento.

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

3) Agregué una línea en mi build.properties para incluir este archivo en el directorio bin (bin.includes = help_contexts.xml, ...). Anote su Bundle-SymbolicName en su Manifest.MF (también visible en su editor plugin.xml). Ejemplo: my.plugin

4) Establezca la identificación de contexto en la página Wizard (el crédito va a @VonC)

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

Otros consejos

Para la pregunta principal, no estoy seguro acerca de su segundo parámetro setHelp. Consulte este hilo :

  

En la llamada al método

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

segundo parámetro es el contextID .
  Debe tener el prefijo pluginID como: " pluginID.contextID " ;.
  Ahora no estaba seguro de dónde encontrar la ID del complemento para mi complemento.
  Entonces utilicé el valor de esta propiedad: Bundle-Name Bundle-Symbolic-Name de MANIFEST.MF como la ID del complemento.
  Ahora funciona.


Para la nota al margen (ayuda para WizardDialog ), este hilo podría ayudar (de David Kyle y su blog " Eclipse RCP "):

  

Configuramos la identificación de contexto en nuestra página del asistente.

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

y configuramos la ayuda para el diálogo del asistente.

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

No anulamos performHelp () .

     

En cuanto a la identificación del contexto de ayuda. Defina un archivo xml de contexto en su complemento.

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

en tu complemento

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

Un problema común es desordenar el complemento y los identificadores de ayuda de contexto. Puede establecer   un par de puntos de interrupción para ver qué id. de contexto se solicita.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top