Tippek az aktív súgó hibáinak megkereséséhez

Az aktív súgóhivatkozás által aktivált kód és leírónyelv kinézete meglehetősen egyszerű. De mit kell tenni, ha az aktív súgóhivatkozás látszólag nem működik?

Tesztelje a tevékenységet idő előtt

Ha a tevékenység megfelelően van megvalósítva, akkor az Eclipse-en belül meg kell hívni a tevékenységet néhány tesztkóddal. Ily módon JavaScriptből meghívás előtt megbizonyosodhat a tevékenység hibátlanságáról. 

Győződjön meg róla, hogy a JavaScript fut

Módosíthatja a "plugins/org.eclipse.help_2.1.0/liveHelp.js" fájlt, hogy a liveAction függvény első utasításaként meghívja a riasztás funkciót:

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

A riasztás funkció megnyit egy figyelmeztetés párbeszédablakot a böngészőben, és segítségével ellenőrizhető, hogy a liveAction megfelelően meghívásra került-e HTML-ben.  Ha nem jelenik meg figyelmeztetés párbeszédablak a súgóhivatkozásra kattintáskor, akkor probléma van a HTML leírónyelvben.

Az aktív súgótevékenység hibáinak keresése

Ha tudja, hogy a JavaScript fut, akkor megkeresheti a tevékenység hibáit az Eclipse-en belülről. Ehhez beállítható egy töréspont a súgótevékenység-osztályban és elindítható egy önkiszolgáló Eclipse példány. Az aktív súgót a Súgó böngésző segítségével tesztelni kell az újonnan elindított Eclipse példányból; azért nem a gazdapéldányról, mivel a JavaScript a súgó HTML-ből meghív egy kiszolgáló kisalkalmazást az Eclipse súgókiszolgálón, amely elindította a böngészőt.

Ha nem történik semmi a töréspont beállítása és az aktív súgóhivatkozásra kattintást után, akkor valószínűleg a bedolgozó és az aktív súgóosztály nem megfelelően van megadva a JavaScriptben. 

Ha a tevékenységben beállította, hogy a töréspontnál megálljon, akkor más Java kódhoz hasonlóan megkeresheti a tevékenység hibáit.

Győződjön meg róla, hogy az UI kód a Display.syncExec fájlban van-e becsomagolva

Egy általános futási probléma, hogy az UI kód aktív súgót meghívó szálból elérése helytelenül van megadva. Ha az élő súgótevékenység egy eredetileg UI szálban futó kódból származik, akkor módosítani kell, hogy kezelje azt a tényt, hogy nem UI szálból fut. 

      public void run() {
		// Az aktív súgó nem fut UI szálón, így a syncExec függvényt kell használni
		Display.getDefault().syncExec(new Runnable() {
							public void run() {
								//az UI feladatot hajtsa végre itt;
							}
		});		
	}