除錯作用中說明的要訣

觸發我們作用中的說明鏈結的程式碼和標記看起來是非常直接明確的。但是如果作用中的說明鏈結不作用,我們該怎麼辦?

測試您的動作前置時間

如果您的動作實作非常複雜,可以 Eclipse 中的一些測試程式碼自行呼叫動作。這樣一來, 您可以知道從 JavaScript 中呼叫動作之前,動作是不是零錯誤。

確定 JavaScript 正在執行中

您可以修改 "plugins/org.eclipse.help_2.1.0/liveHelp.js ", 以在 alert 函數中併入一個呼叫,作為 liveAction 函數中的第一個陳述式:

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

alert 功能在瀏覽器中開啟警告對話框,並可驗證在您的 HTML 是否適當地呼叫 liveAction。如果當您按一下說明鏈結時並未看見警告對話框,則您的 HTML 標示發生問題。

除錯作用中的說明動作

一旦您知道 JavaScript 正在執行中,您可以從 Eclipse 中進行動作的除錯。如果要這樣作,您可以在說明動作類別中設定岔斷點並啟動以 self-hosted 的 Eclipse 實例。 您必須從新啟動的 Eclipse 實例而不是您的主機實例,以說明瀏覽器來測試作用中的說明, 因為說明 HTML 中的 JavaScript 呼叫啟動瀏覽器的 Eclipse 說明伺服器中的 Servlet。

如果在您設定岔斷點並按一下作用中的說明鏈結之後,沒發生任何事,可能是在 JavaScript 中 並未正確的指定您的外掛程式和作用中說明的類別。

當您計劃在動作中的岔斷點停止時,您可以除錯動作如同您在任何其他 Java 程式碼中所作的。

請確定 UI 程式碼包裝在 Display.syncExec 中

一般在執行時期發生的問題是不適合從呼叫作用中的 UI 執行緒中存取 UI 程式碼。如果線上說明是從 UI 執行緒中程式執行的程式碼而來,將需要修改,才能處理由非 UI 執行緒中執行的事實。

   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;
							}
		});		
	}