/******************************************************************************* * Copyright (c) 2000, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ /** * Private helper function for use by other (public) functions. */ function findHelpTop() { var helpTop; for (helpTop=self; helpTop; helpTop = helpTop.parent){ if (helpTop.liveActionInternal){ break; } if (helpTop==helpTop.parent){ break; } } return helpTop; } /** * Call this Javascript method to execute a serialized command in * the workbench. * * The parameter is a serialized parameterized command as described * in the JavaDoc for ParameterizedCommand#serialize(). */ function executeCommand(command) { liveAction( "org.eclipse.help.ui", "org.eclipse.help.ui.internal.ExecuteCommandAction", command); } /** * Call this Javascript method to trigger a specified live help action * in the workbench. * The parameters for liveAction are: * - the id of the plug-in that contains the action * - the name of the class that implements the action * - the String that will be passed to the live help action using setInitializationString */ function liveAction(pluginId, className, argument) { // find top help frameset var helpTop=findHelpTop(); if (helpTop != null && helpTop.liveActionInternal){ return helpTop.liveActionInternal(helpTop, pluginId, className, argument); } else if (helpTop == self){ // no frames, possibly help view var url= window.location.href; var i = url.indexOf("?"); if(i>0) url=url.substring(0, i); i = url.indexOf("/ntopic/"); if(i < 0) { // not help view return; } url=url.substring(0, i+1); var encodedArg=encodeURIComponent(argument); url=url+"livehelp/?pluginID="+pluginId+"&class="+className+"&arg="+encodedArg+"&nocaching="+Math.random(); window.location.href = url; } } /** * Show specified topic in the Contents tree. * The topic must be passed as a URL string. * Example: * // include the script first * * ...... * // show specified topic in the tree * showTopicInContents(window.location.href); */ function showTopicInContents(topic) { var helpTop=findHelpTop(); if (helpTop != null && helpTop.showTopicInContentsInternal){ return helpTop.showTopicInContentsInternal(helpTop, topic); } }