package org.marketcetera.photon.actions;
import java.net.URL;
import java.text.MessageFormat;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.browser.IWebBrowser;
import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
import org.marketcetera.photon.Messages;
import org.marketcetera.photon.PhotonPlugin;
import org.marketcetera.util.misc.ClassVersion;
/* $License$ */
/**
* WebHelpAction opens the Marketcetera help site in an external browser, using
* {@link IWorkbenchBrowserSupport#createBrowser(String)} and
* {@link IWebBrowser#openURL(URL)}.
*
* @author gmiller
* @version $Id: WebHelpAction.java 16154 2012-07-14 16:34:05Z colin $
* @since 1.0.0
*/
@ClassVersion("$Id: WebHelpAction.java 16154 2012-07-14 16:34:05Z colin $")
public class WebHelpAction extends Action {
public static final String ID = "org.marketcetera.photon.actions.HelpBrowserAction"; //$NON-NLS-1$
private static final String MAIN_HELP_URL = MessageFormat.format("http://www.marketcetera.org/confluence/display/PN/Photon", //$NON-NLS-1$
PhotonPlugin.getDefault().getBundle().getHeaders().get("Bundle-Version")); //$NON-NLS-1$
private IWorkbenchWindow mWindow;
/**
* Create the default instance of HelpBrowserAction, setting the ID, text,
* tool-tip text, and image to the defaults.
*/
public WebHelpAction(IWorkbenchWindow window) {
setId(ID);
setText(Messages.WEB_HELP_ACTION.getText());
setToolTipText(Messages.WEB_HELP_ACTION_DESCRIPTION.getText());
mWindow = window;
}
/**
* Attempt to open help in a browser
*/
@Override
public void run() {
// maybe do this at some point?
// window.getWorkbench().getHelpSystem().displayHelpResource(MAIN_HELP_URL);
// for now, just show it in an external browser
try {
IWorkbenchBrowserSupport browserSupport = mWindow.getWorkbench()
.getBrowserSupport();
IWebBrowser browser = browserSupport.createBrowser("_blank"); //$NON-NLS-1$
browser.openURL(new URL(MAIN_HELP_URL));
} catch (Exception e) {
Messages.WEB_HELP_ERROR.error(this, e, MAIN_HELP_URL);
ErrorDialog.openError(mWindow.getShell(), null,
Messages.WEB_HELP_ERROR.getText(MAIN_HELP_URL), new Status(
IStatus.ERROR, PhotonPlugin.ID, e
.getLocalizedMessage()));
}
}
}