X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/views/BrowserView.java b/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/views/BrowserView.java index 8edbbc5..04a4cb7 100644 --- a/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/views/BrowserView.java +++ b/net.sourceforge.phpeclipse.webbrowser/src/net/sourceforge/phpeclipse/webbrowser/views/BrowserView.java @@ -14,10 +14,11 @@ import net.sourceforge.phpeclipse.webbrowser.internal.WebBrowser; import net.sourceforge.phpeclipse.webbrowser.internal.WebBrowserUtil; import org.eclipse.core.resources.IFile; -import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.swt.browser.CloseWindowListener; import org.eclipse.swt.browser.ProgressListener; import org.eclipse.swt.browser.StatusTextListener; import org.eclipse.swt.browser.TitleListener; +import org.eclipse.swt.browser.WindowEvent; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.part.IShowInTarget; import org.eclipse.ui.part.ShowInContext; @@ -27,7 +28,7 @@ import org.eclipse.ui.part.ViewPart; * BrowserView is a simple demonstration of the SWT Browser * widget. It consists of a workbench view and tab folder where each tab in the * folder allows the user to interact with a control. - * + * * @see ViewPart */ public class BrowserView extends ViewPart implements IShowInTarget { @@ -39,13 +40,22 @@ public class BrowserView extends ViewPart implements IShowInTarget { /** * Create the example - * + * * @see ViewPart#createPartControl */ public void createPartControl(Composite frame) { try { if (WebBrowserUtil.isInternalBrowserOperational()) { fInstance = new WebBrowser(frame, true, true); + // #1365431 (toshihiro) start + fInstance.getBrowser().addCloseWindowListener( + new CloseWindowListener() { + public void close(WindowEvent event) { + getViewSite().getPage().hideView( + BrowserView.this); + } + }); + // #1365431 (toshihiro) end } } catch (Exception e) { fInstance = null; @@ -54,7 +64,7 @@ public class BrowserView extends ViewPart implements IShowInTarget { /** * Called when we must grab focus. - * + * * @see org.eclipse.ui.part.ViewPart#setFocus */ public void setFocus() { @@ -136,17 +146,21 @@ public class BrowserView extends ViewPart implements IShowInTarget { } public boolean show(ShowInContext context) { - if (context.getSelection() instanceof IStructuredSelection) { - IStructuredSelection ss = (IStructuredSelection) context.getSelection(); - if (ss.getFirstElement() instanceof IFile) { - IFile file = (IFile) ss.getFirstElement(); - String localhostURL; - localhostURL = file.getLocation().toString(); + if (context instanceof ShowInContextBrowser) { + ShowInContextBrowser contextBrowser = (ShowInContextBrowser) context; + String localhostURL = contextBrowser.getLocalhostUrl(); + if (localhostURL != null) { setUrl(localhostURL); -// bringToTop(this); return true; } } + if (context.getInput() instanceof IFile) { + IFile file = (IFile) context.getInput(); + String localhostURL; + localhostURL = "file:///" + file.getLocation().toString(); + setUrl(localhostURL); + return true; + } return false; } } \ No newline at end of file