blob: ab0d51317351f0e011bce356958aefe9229e2ee1 [file] [log] [blame]
/*******************************************************************************
* 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
* <script src="../org.eclipse.help/livehelp.js"></script>
* ......
* // 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);
}
}