/[RomCheater]/trunk/RomCheater.Core/IWebBrowserProvider.cs
ViewVC logotype

Diff of /trunk/RomCheater.Core/IWebBrowserProvider.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 697 by william, Mon Jun 17 12:03:50 2013 UTC revision 740 by william, Wed Jun 19 21:20:22 2013 UTC
# Line 17  namespace RomCheater.Core Line 17  namespace RomCheater.Core
17          void Navigate(Uri url);          void Navigate(Uri url);
18      }      }
19    
20      public class EmptyWebBrowserProvider : BaseWebBrowserProvider, IWebBrowserInterface      internal class EmptyWebBrowserProvider : IWebBrowserInterface, IWebBrowserProvider
21      {      {
22          public EmptyWebBrowserProvider() :base()          private WebBrowserProvider BackingProvider;
23            public EmptyWebBrowserProvider() : base() { this.BackingProvider = new WebBrowserProvider(this); }
24            //public IWebBrowserInterface Provider
25            //{
26            //    get { return this.BackingProvider; }
27            //}
28    
29            #region IWebBrowserInterface Members
30    
31            public void Navigate(string urlString) { logger.Debug.WriteLine("called::NavigateInternal(string urlString)::{0}", urlString); System.Diagnostics.Process.Start(urlString); }
32            public void Navigate(Uri url) { logger.Debug.WriteLine("called::NavigateInternal(Uri url)::{0}", url.ToString()); Navigate(url.ToString()); }
33            #endregion
34    
35            public IWebBrowserInterface GetProvider()
36          {          {
37                return this.BackingProvider.GetProvider();
38          }          }
39      }      }
40    
41      public class WebBrowserProvider : BaseWebBrowserProvider, IWebBrowserInterface      public class WebBrowserProvider : BaseWebBrowserProvider, IWebBrowserInterface
42      {      {
43          public WebBrowserProvider() : this(new WebBrowser()) { }          public static IWebBrowserProvider DefaultProvider { get { return WebBrowserProvider.EmptyProvider; } }
44          public WebBrowserProvider(IWebBrowserInterface provider) { }          public static IWebBrowserProvider EmptyProvider { get { return WebBrowserProvider.Empty; } }
45          public WebBrowserProvider(WebBrowser provider)          public static IWebBrowserProvider Empty { get { return new EmptyWebBrowserProvider(); } }
46              : base(provider)          protected WebBrowserProvider() : this(new EmptyWebBrowserProvider()) { }
47          {          public WebBrowserProvider(IWebBrowserInterface provider) : base(provider) { }
48          }          //#region IWebBrowserInterface Members
49            //public virtual void Navigate(string urlString) { base.Navigate(urlString); }
50            //public virtual void Navigate(Uri url) { base.Navigate(url); }
51            //#endregion
52      }      }
53    
54      public class BaseWebBrowserProvider : IWebBrowserInterface, IWebBrowserProvider      public abstract class BaseWebBrowserProvider : IWebBrowserInterface, IWebBrowserProvider
55      {      {
56            
57          public BaseWebBrowserProvider() : this(new WebBrowser()) { }          public BaseWebBrowserProvider() { }
58          protected BaseWebBrowserProvider(WebBrowser provider)          protected BaseWebBrowserProvider(IWebBrowserInterface provider)
59          {          {
60              this.Provider = provider;              this.Provider = provider;
61          }          }
62          #region IWebBrowserInterface Members          #region IWebBrowserInterface Members
63          private WebBrowser _Provider;          private IWebBrowserInterface _Provider;
64          public WebBrowser Provider { get { return _Provider; } protected set { _Provider = value; } }          public IWebBrowserInterface Provider { get { return _Provider; } protected set { _Provider = value; } }
65    
66          #region Extensions to WebBrowser provider          #region Extensions to WebBrowser provider
67          public void Navigate(string urlString) { NavigateInternal(urlString); }          public void Navigate(string urlString) { logger.Debug.WriteLine("called::Navigate(string urlString)::{0}", urlString); NavigateInternal(urlString); }
68          public void Navigate(Uri url) { NavigateInternal(url.ToString()); }          public void Navigate(Uri url) { logger.Debug.WriteLine("called::Navigate(Uri url)::{0}", url.ToString()); NavigateInternal(url.ToString()); }  
69    
70          private void NavigateInternal(string url)          private void NavigateInternal(string url)
71          {          {
72                logger.Debug.WriteLine("called::NavigateInternal(string url)::{0}", url);
73              try              try
74              {              {
75                  Uri uri = new Uri(url);                  try
76                  this.Provider.Navigate(uri);                  {
77                        Uri uri = new Uri(url);
78                        this.Provider.Navigate(uri);
79                    }
80                    catch (UriFormatException)
81                    {
82                        try
83                        {
84                            UriBuilder builder = new UriBuilder(url);
85                            var proto = builder.Uri.Scheme;
86                            this.Provider.Navigate(builder.Uri);
87                        }
88                        catch (Exception ex)
89                        {
90                            throw ex;
91                        }
92                    }
93              }              }
94              catch (UriFormatException ex)              catch (UriFormatException ex)
95              {              {
# Line 63  namespace RomCheater.Core Line 97  namespace RomCheater.Core
97                  logger.Error.WriteLine("Unable to navigate to url: '{0}'", url);                  logger.Error.WriteLine("Unable to navigate to url: '{0}'", url);
98                  logger.VerboseError.WriteLine(ex.ToString());                  logger.VerboseError.WriteLine(ex.ToString());
99              }              }
100                catch (Exception ex)
101                {
102                    MessageBox.Show(string.Format("Could not navigate to url: '{0}'", url), string.Format("An {0} Exception Occurred in '{1}'",ex.GetType().Name, this.GetType().Name), MessageBoxButtons.OK, MessageBoxIcon.Error);
103                    logger.Error.WriteLine("Unable to navigate to url: '{0}'", url);
104                    logger.VerboseError.WriteLine(ex.ToString());
105                }
106          }          }
107    
108          #endregion          #endregion

Legend:
Removed from v.697  
changed lines
  Added in v.740

  ViewVC Help
Powered by ViewVC 1.1.22