Added some more tests,a nd reformtted the code a little.
[phpeclipse.git] / net.sourceforge.phpeclipse.webbrowser / src / net / sourceforge / phpeclipse / webbrowser / views / BrowserView.java
index 852b24d..c60b9e4 100644 (file)
@@ -17,7 +17,6 @@ import java.nio.charset.Charset;
 import net.sourceforge.phpeclipse.webbrowser.internal.WebBrowser;
 import net.sourceforge.phpeclipse.webbrowser.internal.WebBrowserUtil;
 
-import org.eclipse.core.resources.IFile;
 import org.eclipse.swt.browser.Browser;
 import org.eclipse.swt.browser.CloseWindowListener;
 import org.eclipse.swt.browser.ProgressListener;
@@ -90,9 +89,14 @@ public class BrowserView extends ViewPart implements IShowInTarget {
        }
 
        public void setUrl(final String url) {
-               if (fInstance != null) {
-                       fUrl = url;
-                       fInstance.setURL(url);
+               if (fInstance != null) {
+              if (fInstance.getURL() != null && fInstance.getURL().length() > 0) {
+                fUrl = fInstance.getURL();
+                fInstance.setURL(fUrl);
+            } else {
+                fUrl = url;
+                fInstance.setURL(url);
+            }
                        // try {
                        // ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
                        // public void run(IProgressMonitor monitor) throws CoreException {
@@ -122,6 +126,8 @@ public class BrowserView extends ViewPart implements IShowInTarget {
                }
        }
 
+       
+       
        public void refresh(String url) {
                if (fInstance != null && url != null) {
                        if (fUrl == null) {
@@ -131,7 +137,7 @@ public class BrowserView extends ViewPart implements IShowInTarget {
                                if (browser != null) {
                                        String browserUrl = browser.getUrl();
                                        try {
-                                               browserUrl = URLDecoder.decode(browserUrl, Charset.defaultCharset().name());
+                                               browserUrl = URLDecoder.decode(browserUrl, J5CharsetEmulator.defaultCharset().name());
                                        } catch (UnsupportedEncodingException e) {
                                                // e.printStackTrace();
                                        }
@@ -170,13 +176,19 @@ public class BrowserView extends ViewPart implements IShowInTarget {
                                return true;
                        }
                }
-               if (context.getInput() instanceof IFile) {
-                       IFile file = (IFile) context.getInput();
-                       String localhostURL;
-                       localhostURL = "file:///" + file.getLocation().toString();
-                       setUrl(localhostURL);
-                       return true;
-               }
+               // *WARNING*
+               // This causes unexpected behaviour such as downloading (save file).
+               // It depends on mime-types setting and native browser, it isn't under control of eclipse.
+               // (IE shows script as plain text since .php is unknown type by default.
+               //  Mozilla downloads script file since .php is defined in mimeTypes.rdf as such.)
+               //
+               //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