/*******************************************************************************
* Copyright (c) 2010 Martin Schnabel <mb0@mb0.org>.
* 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
******************************************************************************/
package org.axdt.core.ui.swf;
import java.net.URL;
import org.axdt.core.swf.IAxdtSwfPlayer;
import org.axdt.core.swf.IAxdtSwfPlayerInstance;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.browser.IWebBrowser;
import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
/**
* @author mb0
*/
public abstract class BrowserSupportPlayer implements IAxdtSwfPlayer {
public static IWorkbenchBrowserSupport getSupport() {
return PlatformUI.getWorkbench().getBrowserSupport();
}
public static abstract class Instance implements IAxdtSwfPlayerInstance {
protected final URL target;
protected IWebBrowser browser;
public Instance(URL target) throws CoreException {
this.target = target;
browser = createBrowser();
browser.openURL(target);
}
protected abstract IWebBrowser createBrowser() throws CoreException;
public void terminate() {
try {
if (browser != null) browser.close();
} catch (Exception e) {
// ignore
} finally {
browser = null;
}
}
}
}