Koden och märkorden som utlöste länken till den aktiva hjälpen ser enkla . Men vad gör du om länken till den aktiva hjälpen inte verkar fungera?
Om din åtgärdsimplementation är komplicerad bör du anropa åtgärden själv med testkod inuti Eclipse. På det sättet vet du att åtgärden är felfri innan du anropar den från JavaScriptet.
Det går att ändra "plugins/org.eclipse.help_2.1.0/liveHelp.js" så att det ingår ett anrop till varningsfunktionen som första sats i funktionenliveAction:
funktionen liveAction(insticks-ID, klassnamn, argument) { alert("liveAction anropat"); ...
Varningssfunktionen öppnar en varningsdialogruta i läsaren och kan användas till att bekräfta att liveAction anropades korrekt i HTML. Om ingen varningsdialogruta visas när du klickar på hjälplänken, så finns det ett problem i HTML-märkorden.
När du väl vet att JavaScriptet körs, kan du felsöka åtgärden inifrån Eclipse. Gör det genom att ange en brytpunkt i hjälpåtgärdsklassen och starta en förekomst av Eclipse som du kör själv. Du måste testa din aktiva hjälp med hjälpläsaren från den nystartade Eclipse-förekomsten, inte från värdförekomsten, eftersom JavaScriptet från HTML-hjälpen anropar ett servletprogram på Eclipse-hjälpservern som startade läsaren.
Om ingenting händer när du har angett brytpunkten och klickat på den aktiva hjälplänken, är det troligt att ditt insticksprogram och den aktiva hjälpklassen inte angetts korrekt i JavaScriptet.
När du har lyckats stoppa vid brytpunkten i åtgärden kan du felsöka åtgärden vilken annan Java-kod som helst.
Ett vanligt runtime-problem är när gränssnittskod accessas felaktigt från tråden som anropar den aktiva hjälpen. Om den aktiva hjälpåtgärden kom från kod som ursprungligen kördes i en gränssnittstråd, måste den ändras så att den kan köras från en icke-gränssnittstråd.
public void run() { // Aktiv hjälp körs inte på gränssnittstråden, så vi måste använda syncExec Display.getDefault().syncExec(ny körbar() { public void run() { //utför gränssnittsarbetet här; } }); }