void WbStatusDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { //Console.WriteLine("ServiceStatus WbStatusDocumentCompleted :" + e.Url); HtmlHelper.InitDocument(wbStatus); if (navigateCalled) { navigateCalled = false; } else { if (MonoHelper.IsUnix) { WebBrowserHelper.PlayBatch(wbStatus); HtmlElement button = WebBrowserHelper.GetDocument(wbStatus).GetElementById("btn"); if (button != null) { button.Click += OnButtonClick; } } } //wbStatus.Document.Body.Style = wbStatus.Document.Body.Style + // ";background-color :ButtonHighlight;"; //isLoaded = true; isLoaded = true; RecalcSizes(); }
public void ShowSource() { Wait(); string clean = wBrowser.DocumentText; int bodyidx = clean.IndexOf("<body>"); if (bodyidx < 0) { bodyidx = clean.IndexOf("<BODY>"); } if (bodyidx < 0) { MessageBox.Show(FindForm(), LangPack.TranslateString("Nothing found"), Constants.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } clean = clean.Substring(0, bodyidx); HtmlSourceViewForm form = new HtmlSourceViewForm(); form.Source = clean + WebBrowserHelper.GetDocument(wBrowser).Body.OuterHtml + "\r\n</html>"; form.Text = wBrowser.Url.ToString(); form.Show(); }
void WBrowserDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { //Console.WriteLine("ResultBrowser WBrowserDocumentCompleted :" + e.Url); if ((e.Url.Host == "127.0.0.1" || e.Url.Host == WebUI.ResultsWebServer.Uri.Host) && e.Url.Port == WebUI.ResultsWebServer.Port) { HtmlHelper.InitDocument(wBrowser); if (navigateCalled) { navigateCalled = false; } else { WebBrowserHelper.PlayBatch(wBrowser); } } else { if (!MonoHelper.IsUnix) //TODO: fix this { WebBrowserHelper.GetDocument(wBrowser).Body.Style = HtmlHelper.BodyStyle + "font-size: 8pt; font-family: Tahoma;"; } HtmlHelper.RemoveElement(wBrowser, "big_header"); } RecalcSizes(); }
public void Clear() { if (isClean) { return; } WebBrowserHelper.ResetBatch(wbStatus); bool forceCleaning = false; if (WebBrowserHelper.GetDocument(wbStatus) != null) { Wait(); if (WebBrowserHelper.GetDocument(wbStatus) != null) { if (!HtmlHelper.ClearTranslations(wbStatus)) { //possible disabled javascript or error forceCleaning = true; } else { isClean = true; //avoid double cleaning WebBrowserHelper.StartBatch(wbStatus); } } else { forceCleaning = true; } } if (WebBrowserHelper.GetDocument(wbStatus) == null || forceCleaning) { //Console.WriteLine("Clear ServiceStatus : " + DateTime.Now.ToString()); if (WebUI.ResultsWebServer.Uri != null) { navigateCalled = true; wbStatus.Navigate(new Uri(WebUI.ResultsWebServer.Uri, "ServiceStatus.aspx")); } WebBrowserHelper.StartBatch(wbStatus); } RecalcSizes(); isClean = true; }
void RealRecalcSizes() { if (inResize) { return; } //Console.WriteLine("RealRecalcSizes"); inResize = true; bool isHeightChanged = false; try { int allowedWidth = Width + 6; if (wbStatus.Width != allowedWidth) { wbStatus.Width = allowedWidth; } int allowedHeight = ClientSize.Height; if ((isClean) || (WebBrowserHelper.GetDocument(wbStatus) == null || WebBrowserHelper.GetDocument(wbStatus).Body == null)) { //Console.WriteLine("Set height client 1"); if (wbStatus.Height != allowedHeight) { //Console.WriteLine("Set height client"); wbStatus.Height = allowedHeight; isHeightChanged = true; } } else if (WebBrowserHelper.GetDocument(wbStatus) != null && WebBrowserHelper.GetDocument(wbStatus).Body != null && WebBrowserHelper.GetDocument(wbStatus).Body.ScrollRectangle.Height != 0) { //Console.WriteLine("Set height client 2"); int height = WebBrowserHelper.GetDocument(wbStatus).Body.ScrollRectangle.Height; // + 2; if (wbStatus.Height != height) { //wbStatus.Height = height; //ClientSize = new Size(ClientSize.Width, height);] //Console.WriteLine("Set height " + height); wbStatus.Height = height; Height = height - 15; isHeightChanged = true; } } } finally { inResize = false; } if (isHeightChanged && IsHandleCreated) { needRecalcSize = true; } else { needRecalcSize = false; } }
void LoadStatus() { //Console.WriteLine("LoadStatus : " + status.Setting.ServiceItem.Service.FullName); Clear(); while (!isClean) { Application.DoEvents(); } Wait(); string name = ""; if (!string.IsNullOrEmpty(status.Setting.ServiceItem.Description)) { name += LangPack.TranslateString(status.Setting.ServiceItem.Description) + " - "; } name += LangPack.TranslateString(status.Setting.ServiceItem.Service.FullName); string htmlString = string.Format(CultureInfo.InvariantCulture, HtmlHelper.ServiceNameFormat, status.Setting.ServiceItem.Service.Url, HttpUtility.HtmlEncode(name)); htmlString += "<br><b>" + LangPack.TranslateString("Type") + "</b> : " + status.Type; if (!shortView) { if (status.Setting.Subject != SubjectConstants.Common) { htmlString += "<br>" + "<b>" + LangPack.TranslateString("Subject") + "</b> : " + LangPack.TranslateString(status.Setting.Subject); } } else { htmlString += ", " + "<b>" + LangPack.TranslateString("Subject") + "</b> : " + LangPack.TranslateString(status.Setting.Subject); } if (showLanguage) { if (!shortView) { htmlString += "<br>" + LangPack.TranslateLanguage(status.Setting.LanguagePair.From) + "->" + LangPack.TranslateLanguage(status.Setting.LanguagePair.To); } else { htmlString += "<br><b>" + LangPack.TranslateString("Translation direction") + "</b> : " + LangPack.TranslateLanguage(status.Setting.LanguagePair.From) + "->" + LangPack.TranslateLanguage(status.Setting.LanguagePair.To); } } if (!shortView) { if (status.DisabledByUser) { htmlString += "<br>" + LangPack.TranslateString("<b>Status</b> : Disabled"); htmlString += string.Format("<br><button id=\"btn\" type=\"button\" align=\"top\" style=\"{0}\">{1}</button>", HtmlHelper.ButtonTextStyle, LangPack.TranslateString("Enable")); } else if (status.Enabled) { htmlString += "<br>" + LangPack.TranslateString("<b>Status</b> : Enabled"); htmlString += string.Format("<br><button id=\"btn\" type=\"button\" align=\"top\" style=\"{0}\">{1}</button>", HtmlHelper.ButtonTextStyle, LangPack.TranslateString("Disable")); } else { htmlString += "<br>" + LangPack.TranslateString("<b>Status</b> : Error"); htmlString += " - " + string.Format("<span style=\"" + HtmlHelper.ErrorTextStyle + "\">{0}</span>", status.Error); htmlString += string.Format("<br><button id=\"btn\" type=\"button\" align=\"top\" style=\"{0}\">{1}</button>", HtmlHelper.ButtonTextStyle, LangPack.TranslateString("Disable")); } } if (status.Setting.ServiceItem.CharsLimit != -1) { htmlString += "<br>" + "<b>"; htmlString += string.Format(LangPack.TranslateString("Limit {0} : {1} characters"), "</b>", status.Setting.ServiceItem.CharsLimit); } if (status.Setting.ServiceItem.LinesLimit != -1) { htmlString += "<br>" + "<b>"; htmlString += string.Format(LangPack.TranslateString("Limit {0} : {1} lines"), "</b>", status.Setting.ServiceItem.LinesLimit); } if (status.Setting.ServiceItem.WordsLimit != -1) { htmlString += "<br>" + "<b>"; htmlString += string.Format(LangPack.TranslateString("Limit {0} : {1} words"), "</b>", status.Setting.ServiceItem.WordsLimit); } if (status.IsAsteriskMaskSupported || status.IsQuestionMaskSupported) { htmlString += "<br>" + "<b>" + LangPack.TranslateString("Masks") + "</b> : "; if (status.IsAsteriskMaskSupported) { htmlString += "'*'"; } if (status.IsAsteriskMaskSupported && status.IsQuestionMaskSupported) { htmlString += ","; } if (status.IsQuestionMaskSupported) { htmlString += "'?'"; } } //tableCell.InnerHtml = htmlString; Wait(); HtmlHelper.AddTranslationCell(wbStatus, isClean, htmlString, status.Setting.ServiceItem); HtmlElement button = WebBrowserHelper.GetDocument(wbStatus).GetElementById("btn"); if (button != null) { button.Click += OnButtonClick; } isClean = false; RealRecalcSizes(); }
static void BuildFile(string fileName, string classFileName) { WebBrowser wBrowser = new WebBrowser(); wBrowser.CreateControl(); wBrowser.Navigate(new Uri(WebUI.ResultsWebServer.Uri, "ServicesList.aspx")); WebBrowserHelper.Wait(wBrowser); HtmlDocument doc = WebBrowserHelper.GetDocument(wBrowser); string template = wBrowser.DocumentText; GenerateDocument(wBrowser); int bodyidx = template.IndexOf("<body>"); template = template.Substring(0, bodyidx); StringBuilder body = new StringBuilder(doc.Body.OuterHtml); body.Replace("FONT-SIZE: 8.25pt;", ""); body.Replace("FONT-FAMILY: Tahoma;", ""); body.Replace("MARGIN: -7px;", ""); body.Replace("</BODY>", "<br><span style='color: gray;'>Generated by : " + FreeCL.RTL.ApplicationInfo.ProductName + ", version :" + FreeCL.RTL.ApplicationInfo.ProductVersion + "</span></body>"); string result = template + body.ToString() + "\r\n</html>"; FileStream fs = new FileStream(fileName, FileMode.Create); StreamWriter sw = new StreamWriter(fs, Encoding.UTF8); sw.Write(result); sw.Flush(); sw.Dispose(); wBrowser.Dispose(); fs = new FileStream(classFileName, FileMode.Create); string className = Path.GetFileNameWithoutExtension(classFileName); sw = new StreamWriter(fs, Encoding.BigEndianUnicode); sw.Write("import java.applet.*;\r\n\r\n"); sw.Write("public class "); sw.Write(className); sw.Write(" extends Applet{\r\npublic String d(){\r\n"); int i = 0; int cnt; StringBuilder substr; int var_num = 0; while (i < result.Length) { cnt = 16384; if (i + cnt > result.Length) { cnt = result.Length - i; } substr = new StringBuilder(result.Substring(i, cnt)); substr.Replace("\"", "\\\""); substr.Replace("\r", "\\r"); substr.Replace("\n", "\\n"); sw.Write("String s"); sw.Write(var_num.ToString()); var_num++; sw.Write(" = "); sw.Write("\"" + substr.ToString() + "\";\r\n"); i += 16384; } sw.Write("return "); for (i = 0; i < var_num; i++) { sw.Write("s"); sw.Write(i.ToString()); if (i + 1 < var_num) { sw.Write("+"); } } sw.Write(";\r\n}\r\n}"); sw.Flush(); sw.Dispose(); wBrowser.Dispose(); }
void RealRecalcSizes() { if (inResize) { return; } inResize = true; bool isHeightChanged = false; try { Rectangle advertScrollRectangle; if (WebBrowserHelper.GetDocument(wAdvertBrowser) != null && WebBrowserHelper.GetDocument(wAdvertBrowser).Body != null) { advertScrollRectangle = WebBrowserHelper.GetDocument(wAdvertBrowser).Body.ScrollRectangle; } else { advertScrollRectangle = new Rectangle(0, 0, 0, 0); } Rectangle browserScrollRectangle; if (WebBrowserHelper.GetDocument(wBrowser) != null) { HtmlElement body = WebBrowserHelper.GetDocument(wBrowser).Body; if (body != null) { try { browserScrollRectangle = body.ScrollRectangle; } catch (NullReferenceException) { browserScrollRectangle = new Rectangle(0, 0, 0, 0); } } else { browserScrollRectangle = new Rectangle(0, 0, 0, 0); } } else { browserScrollRectangle = new Rectangle(0, 0, 0, 0); } int allowedWidth = ClientSize.Width; if (vScrollBar.Visible) { allowedWidth -= SystemInformation.VerticalScrollBarWidth; } if (wBrowser.Width != allowedWidth) { wBrowser.Width = allowedWidth; } if (wAdvertBrowser.Width != allowedWidth) { wAdvertBrowser.Width = allowedWidth; } if (!advertLoaded) { if (wAdvertBrowser.Height != 0) { wAdvertBrowser.Height = 0; isHeightChanged = true; } } else if (advertScrollRectangle.Height != 0) { if (wAdvertBrowser.Height != advertScrollRectangle.Height + 2) { wAdvertBrowser.Height = advertScrollRectangle.Height + 2; isHeightChanged = true; } } int allowedHeight = ClientSize.Height; if ((isClean && !advertLoaded) || (WebBrowserHelper.GetDocument(wBrowser) == null || WebBrowserHelper.GetDocument(wBrowser).Body == null)) { if (wBrowser.Height != allowedHeight) { wBrowser.Height = allowedHeight; isHeightChanged = true; } } else if (isClean) { if (wBrowser.Height != allowedHeight - wAdvertBrowser.Height) { wBrowser.Height = allowedHeight - wAdvertBrowser.Height; } } else if (browserScrollRectangle.Height != 0) { int height = browserScrollRectangle.Height + 2; if (wAdvertBrowser.Height + height < Height) { height = Height - wAdvertBrowser.Height; } if (wBrowser.Height != height) { wBrowser.Height = height; isHeightChanged = true; } } if (wAdvertBrowser.Top != wBrowser.Bottom) { wAdvertBrowser.Top = wBrowser.Bottom; isHeightChanged = true; } if (wAdvertBrowser.Bottom < Height && !MonoHelper.IsMono) { wBrowser.Top += Height - wAdvertBrowser.Bottom; wAdvertBrowser.Top = wBrowser.Bottom; isHeightChanged = true; } int FullHeight = wBrowser.Height + wAdvertBrowser.Height; if (FullHeight > Height) { if (!vScrollBar.Visible) { allowedWidth -= SystemInformation.VerticalScrollBarWidth; wBrowser.Width = allowedWidth; wAdvertBrowser.Width = allowedWidth; if (Height > 0) { vScrollBar.LargeChange = Height; } else { vScrollBar.LargeChange = 0; } vScrollBar.Maximum = FullHeight - Height + vScrollBar.LargeChange - 1; vScrollBar.Value = 0; wBrowser.Top = 0; wAdvertBrowser.Top = wBrowser.Height; vScrollBar.Visible = true; vScrollBar.Enabled = true; isHeightChanged = true; } else if (vScrollBar.Maximum != FullHeight - Height + vScrollBar.LargeChange - 1) { vScrollBar.Maximum = FullHeight - Height + vScrollBar.LargeChange - 1; } } else { if (vScrollBar.Visible) { vScrollBar.Visible = false; vScrollBar.Enabled = false; wBrowser.Top = 0; wAdvertBrowser.Top = wBrowser.Height; wBrowser.Width = Width; wAdvertBrowser.Width = Width; isHeightChanged = true; } } } finally { inResize = false; } if (isHeightChanged && IsHandleCreated) { needRecalcSize = true; } else { needRecalcSize = false; } }
public void Clear() { if (isClean) { return; } WebBrowserHelper.ResetBatch(wBrowser); if (UpdatesManager.IsNewVersion && !CommandLineHelper.IsCommandSwitchSet("skipchangelog")) { UpdatesManager.IsNewVersion = false; string url = Constants.ChangeLogPageUrlBase; if (FreeCL.RTL.LangPack.CurrentLanguage == "Ukrainian") { url += "uk.html"; } else if (FreeCL.RTL.LangPack.CurrentLanguage == "Russian") { url += "ru.html"; } else { url += "en.html"; } url += "?ver=" + FreeCL.RTL.ApplicationInfo.ProductVersion; forceCleaning = true; wBrowser.Navigate(url); return; } if (WebBrowserHelper.GetDocument(wBrowser) != null && !forceCleaning) { Wait(); if (WebBrowserHelper.GetDocument(wBrowser) != null) { if (!HtmlHelper.ClearTranslations(wBrowser)) { //possible disabled javascript or error forceCleaning = true; } else { WebBrowserHelper.StartBatch(wBrowser); isClean = true; //avoid double cleaning } } else { forceCleaning = true; } } if (WebBrowserHelper.GetDocument(wBrowser) == null || forceCleaning) { //Console.WriteLine("Clear Result"); forceCleaning = false; navigateCalled = true; wBrowser.Navigate(new Uri(WebUI.ResultsWebServer.Uri, "Default.aspx")); WebBrowserHelper.StartBatch(wBrowser); } RecalcSizes(); isClean = true; }