X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/ShowExternalPreviewAction.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/ShowExternalPreviewAction.java index 9b53e0e..32256fa 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/ShowExternalPreviewAction.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/ShowExternalPreviewAction.java @@ -8,10 +8,13 @@ package net.sourceforge.phpeclipse.phpeditor; * Contributors: IBM Corporation - Initial implementation Klaus Hartlage - * www.eclipseproject.de ******************************************************************************/ +import net.sourceforge.phpdt.internal.ui.util.PHPFileUtil; import net.sourceforge.phpeclipse.IPreferenceConstants; import net.sourceforge.phpeclipse.PHPeclipsePlugin; import net.sourceforge.phpeclipse.actions.PHPEclipseShowAction; +import net.sourceforge.phpeclipse.overlaypages.Util; import net.sourceforge.phpeclipse.views.browser.BrowserView; + import org.eclipse.core.resources.IFile; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IFileEditorInput; @@ -20,7 +23,6 @@ import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.texteditor.ITextEditor; import org.eclipse.ui.texteditor.TextEditorAction; -import net.sourceforge.phpeclipse.overlaypages.Util; //import org.eclipse.update.internal.ui.UpdatePerspective; //import org.eclipse.update.internal.ui.views.IEmbeddedWebBrowser; /** @@ -35,13 +37,54 @@ public class ShowExternalPreviewAction extends TextEditorAction { super(PHPEditorMessages.getResourceBundle(), "ParserAction.", null); //$NON-NLS-1$ update(); } - public static ShowExternalPreviewAction getInstance() { + +public static ShowExternalPreviewAction getInstance() { return instance; } /** * Code called when the action is fired. */ public void run() { + IFile previewFile = getFile(); + if (previewFile == null) { + // should never happen + return; + } + boolean autoPreview = Util.getPreviewBooleanValue(previewFile, + IPreferenceConstants.PHP_AUTO_PREVIEW_DEFAULT); + boolean bringToTopPreview = Util.getPreviewBooleanValue(previewFile, + IPreferenceConstants.PHP_BRING_TO_TOP_PREVIEW_DEFAULT); + boolean showHTMLFilesLocal = Util.getPreviewBooleanValue(previewFile, + IPreferenceConstants.PHP_SHOW_HTML_FILES_LOCAL); + boolean isPHPFileName = PHPFileUtil.isPHPFileName(previewFile.getLocation().toString()); + + if (autoPreview) { + String localhostURL; + if (showHTMLFilesLocal && (!isPHPFileName)) { + localhostURL = previewFile.getLocation().toString(); + } else if ((localhostURL = PHPEclipseShowAction.getLocalhostURL(null, + previewFile)) == null) { + return; + } + IWorkbenchPage page = PHPeclipsePlugin.getActivePage(); + try { + IViewPart part = page.findView(BrowserView.ID_BROWSER); + if (part == null) { + part = page.showView(BrowserView.ID_BROWSER); + } else { + if (bringToTopPreview) { + page.bringToTop(part); + } + } + ((BrowserView) part).setUrl(localhostURL); + + } catch (Exception e) { + //PHPeclipsePlugin.log(e); + } + } + } + + public void refresh() { IFile fileToParse = getFile(); if (fileToParse == null) { // should never happen @@ -52,11 +95,6 @@ public class ShowExternalPreviewAction extends TextEditorAction { boolean bringToTopPreview = Util.getPreviewBooleanValue(fileToParse, IPreferenceConstants.PHP_BRING_TO_TOP_PREVIEW_DEFAULT); if (autoPreview) { - String localhostURL; - if ((localhostURL = PHPEclipseShowAction.getLocalhostURL(null, - fileToParse)) == null) { - return; - } IWorkbenchPage page = PHPeclipsePlugin.getActivePage(); try { IViewPart part = page.findView(BrowserView.ID_BROWSER); @@ -67,9 +105,10 @@ public class ShowExternalPreviewAction extends TextEditorAction { page.bringToTop(part); } } - ((BrowserView) part).setUrl(localhostURL); - } catch (PartInitException e) { - PHPeclipsePlugin.log(e); + ((BrowserView) part).refresh(); + + } catch (Exception e) { + // PHPeclipsePlugin.log(e); } } }