import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.progress.WorkbenchJob;
import org.eclipse.ui.texteditor.ITextEditor;
import org.eclipse.ui.texteditor.TextEditorAction;
}
public void refresh(int type) {
- IFile fileToParse = getFile();
- if (fileToParse == null) {
+ IFile previewFile = getFile();
+ if (previewFile == null) {
// should never happen
return;
}
boolean autoPreview = ProjectPrefUtil.getPreviewBooleanValue(
- fileToParse, IPreferenceConstants.PHP_AUTO_PREVIEW_DEFAULT);
+ previewFile, IPreferenceConstants.PHP_AUTO_PREVIEW_DEFAULT);
boolean bringToTopPreview = ProjectPrefUtil.getPreviewBooleanValue(
- fileToParse,
+ previewFile,
IPreferenceConstants.PHP_BRING_TO_TOP_PREVIEW_DEFAULT);
+ boolean stickyBrowserURL = ProjectPrefUtil.getPreviewBooleanValue(
+ previewFile,
+ IPreferenceConstants.PHP_STICKY_BROWSER_URL_DEFAULT);
if (autoPreview) {
IWorkbenchPage page = WebUI.getActivePage();
+ if (page == null) {
+ // startup stage
+ return;
+ }
try {
- IViewPart part = page.findView(BrowserView.ID_BROWSER);
- if (part == null) {
- part = page.showView(BrowserView.ID_BROWSER);
- } else {
+ // IViewPart part = page.findView(BrowserView.ID_BROWSER);
+ // if (part == null) {
+ // part = page.showView(BrowserView.ID_BROWSER);
+ // }
+ IViewPart part = page.showView(BrowserView.ID_BROWSER, null,
+ IWorkbenchPage.VIEW_CREATE);
+ if (part != null) {
if (bringToTopPreview) {
- page.bringToTop(part);
+ // page.bringToTop(part);
+ new WorkbenchJob(getClass().getName()) {
+ public IStatus runInUIThread(
+ IProgressMonitor monitor) {
+ IWorkbenchPage page = WebUI.getActivePage();
+ if (page != null) {
+ IViewPart part = page
+ .findView(BrowserView.ID_BROWSER);
+ if (part != null) {
+ page.bringToTop(part);
+ }
+ }
+ return Status.OK_STATUS;
+ }
+ }.schedule();
+ }
+ // ((BrowserView) part).refresh();
+ if (stickyBrowserURL
+ && ((BrowserView) part).getUrl() != null
+ && ((BrowserView) part).getUrl().length() > 0) {
+ ((BrowserView) part).refresh();
+ } else {
+ String localhostURL = getLocalhostURL(null, previewFile);
+ ((BrowserView) part).refresh(localhostURL);
}
}
- if (part != null) {
- ((BrowserView) part).refresh();
- }
- } catch (Exception e) {
+ } catch (PartInitException e) {
+ // ad hoc
+ WebUI.getDefault().getLog().log(
+ new Status(IStatus.ERROR,
+ "net.sourceforge.phpeclipse.ui", IStatus.OK,
+ "Failed to show Browser View", e));
// PHPeclipsePlugin.log(e);
}
}
store = WebUI.getDefault().getPreferenceStore();
}
// IPath path = file.getFullPath();
- String localhostURL = file.getLocation().toString();
+ String localhostURL = file.getFullPath().toString();
String lowerCaseFileName = localhostURL.toLowerCase();
+ //removed by ed_mann for RSE fixes testing
// String documentRoot =
// store.getString(PHPeclipsePlugin.DOCUMENTROOT_PREF);
- IPath documentRootPath = ProjectPrefUtil.getDocumentRoot(file
- .getProject());
+ //IPath documentRootPath = ProjectPrefUtil.getDocumentRoot(file
+ // .getProject());
+ IPath documentRootPath = file.getProject().getFullPath();
String documentRoot = documentRootPath.toString().toLowerCase();
if (lowerCaseFileName.startsWith(documentRoot)) {
localhostURL = localhostURL.substring(documentRoot.length());
}
// return store.getString(PHPeclipsePlugin.LOCALHOST_PREF) +
// localhostURL;
- return ProjectPrefUtil.getMiscProjectsPreferenceValue(file
- .getProject(), IPreferenceConstants.PHP_LOCALHOST_PREF)
- + localhostURL;
+ String projectPath = ProjectPrefUtil.getMiscProjectsPreferenceValue(file
+ .getProject(), IPreferenceConstants.PHP_LOCALHOST_PREF);
+ if(projectPath.endsWith("/") && localhostURL.startsWith("/")) {
+ localhostURL = localhostURL.substring(1);
+ }
+ return projectPath + localhostURL;
}
return "http://localhost";
}