import net.sourceforge.phpeclipse.webbrowser.internal.WebBrowserUtil;
import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.browser.Browser;
+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;
* <code>BrowserView</code> 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 {
/**
* 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;
/**
* Called when we must grab focus.
- *
+ *
* @see org.eclipse.ui.part.ViewPart#setFocus
*/
public void setFocus() {
// }
// }, null);
// } catch (CoreException e) {
- // // TODO Auto-generated catch block
+ // // TO DO Auto-generated catch block
// e.printStackTrace();
// }
}
// }
// }, null);
// } catch (CoreException e) {
- // // TODO Auto-generated catch block
+ // // TO DO Auto-generated catch block
// e.printStackTrace();
// }
}
}
public void refresh(String url) {
- if (fInstance != null) {
- if (fUrl == null || !fUrl.equals(url)) {
+ if (fInstance != null && url != null) {
+ if (fUrl == null) {
setUrl(url);
} else {
- refresh();
+ Browser browser = fInstance.getBrowser();
+ if (browser != null && !browser.getUrl().equals(url)) {
+ setUrl(url);
+ }
}
}
}
}
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