Aktiivisen ohjeen vianmääritysvihjeitä

Aktiivisen ohjeen linkin koodi ja merkinnät ovat varsin yksinkertaisia. Voi kuitenkin käydä niin, että aktiivisen ohjeen linkki ei toimi.

Testaa toiminto etukäteen

Jos toiminnon toteutus on melko monimutkainen, kutsu toimintoa itse jonkin testikoodin kanssa Eclipse-ympäristössä. Tällä tavoin voit varmistaa, että koodi on virheetön, ennen kuin kutsut sen JavaScriptin avulla. 

Varmista, että JavaScript on ajossa

Voit muokata kohdetta "plugins/org.eclipse.help_2.1.0/liveHelp.js" niin, että se sisältää alert-funktion kutsun liveAction-funktion ensimmäisenä lauseena:

function liveAction(pluginId, className, argument)
{
	alert("Kutsuttu liveAction");
	...

Alert-funktio avaa selaimessa varoitusvalintaikkunan, ja sen avulla voi tarkistaa, että liveAction on kutsuttu oikein HTML-merkinnöissä. Jos varoitusvalintaikkunaa ei tule näkyviin, kun napsautat ohjelinkkiä, HTML-merkinnöissä on virhe.

Aktiivisen ohjetoiminnon vianmääritys

Kun tiedät, että JavaScript on ajossa, voit määrittää toiminnon viat Eclipse-järjestelmässä. Voit tehdä tämän määrittämällä ohjetoiminnon luokkaan keskeytyskohdan ja aloittamalla itse ylläpidetyn Eclipse-ilmentymän. Aktiivista ohjetta on testattava ohjeselaimella vasta aloitetussa Eclipse-ilmentymässä, ei pääkoneilmentymässä, koska ohjeen HTML-merkintöjen JavaScript kutsuu palvelinsovelmaa Eclipse-ohjepalvelimessa, joka aloitti selaimen.

Jos mitään ei tapahdu sen jälkeen, kun olet määrittänyt keskeytyskohdan ja napsauttanut aktiivisen ohjeen linkkiä, on luultavaa, että lisäosan ja aktiivisen ohjeen luokan JavaScript-määritykset ovat virheelliset. 

Kun onnistut pysähtymään toiminnossa olevan keskeytyskohdan kohdalla, voit määrittää toiminnossa olevat viat aivan kuten mistä tahansa Java-koodista.

Varmista, että käyttöliittymäkoodi on kääritty on Display.syncExec-metodiin

Yleinen ajonaikainen ongelma on, että käyttöliittymän koodia käytetään virheellisesti säikeestä, joka kutsuu aktiivisen ohjeen. Jos käytönaikainen ohjetoiminto seuraa koodista, joka on alun perin ajettu käyttöliittymäsäikeessä, sitä on muokattava niin, että se voidaan ajaa muusta kuin käyttöliittymäsäikeestä. 

      public void run() {
		// Aktiivista ohjetta ei ajeta käyttöliittymäsäikeessä, joten on käytettävä kohdetta syncExec
		Display.getDefault().syncExec(new Runnable() {
      public void run() {
								//tee käyttöliittymän työ tässä;
							}
		});		
	}