用于调试活动帮助的提示

触发活动帮助链接的代码和标记看来很直接。但如果活动帮助链接不能运作,您该做什么?

提前测试操作

若您的实现非常复杂,则您应使用 Eclipse 中的一些测试代码来自己调用操作。用这种方法,在从 JavaScript 调用操作之前,您就能知道它是否无错误。 

确保 JavaScript 已运行

可以修改“plugins/org.eclipse.help_2.1.0/liveHelp.js”以便将对 alert 函数的调用作为 liveAction 函数中的第一条语句:

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

alert 函数将在浏览器中打开一个警告对话框,可用来验证 liveAction 是否在 HTML 中正确调用。若单击帮助链接时未看到警告对话框,则在 HTML 标记中存在问题。

调试活动帮助操作

一旦您知道 JavaScript 已运行,您就可以从 Eclipse 中调试操作。要做到这点,您可以在帮助操作类中设置断点并启动一个自主 Eclipse 实例。您必须从新启动的 Eclipse 实例使用“帮助”浏览器测试活动帮助,而不是从主机实例测试,因为帮助 HTML 的 JavaScript 将调用 Eclipse 帮助服务器上启动浏览器的 servlet。

若在您设置断点并单击活动帮助链接后未发生任何操作,则可能是未正确指定 JavaScript 中的插件和活动帮助类。 

一旦您成功地在操作中的断点处停止,您就可以象调试任何其它 Java 代码一样调试该操作。

确保在 Display.syncExec 中封装了用户界面代码

通常的运行时问题是从调用活动帮助的线程不正确地访问了用户界面代码。若您的实时帮助操作来自原本在用户界面线程中运行的代码,则将需要修改它以处理它是从非用户界面线程运行的事实。 

	public void run() {
		// Active help does not run on the UI thread, so we must use syncExec
		Display.getDefault().syncExec(new Runnable() {
							public void run() {
								//do the UI work in here;
							}
		});		
	}

Copyright IBM Corporation and others 2000, 2003.