private void OnDisplayEvent(DisplayEvent displayEvent, ZeroMQMessage request, IJupyterMessageSender jupyterMessageSender) { if (displayEvent is ReturnValueProduced && displayEvent.Value is DisplayedValue) { return; } var transient = CreateTransient(displayEvent.ValueId); var formattedValues = displayEvent .FormattedValues .ToDictionary(k => k.MimeType, v => PreserveJson(v.MimeType, v.Value)); var value = displayEvent.Value; PubSubMessage dataMessage; switch (displayEvent) { case DisplayedValueProduced _: dataMessage = new DisplayData( transient: transient, data: formattedValues); break; case DisplayedValueUpdated _: dataMessage = new UpdateDisplayData( transient: transient, data: formattedValues); break; case ReturnValueProduced _: dataMessage = new ExecuteResult( _executionCount, transient: transient, data: formattedValues); break; case StandardOutputValueProduced _: dataMessage = Stream.StdOut(GetPlainTextValueOrDefault(formattedValues, value?.ToString() ?? string.Empty)); break; case StandardErrorValueProduced _: case ErrorProduced _: dataMessage = Stream.StdErr(GetPlainTextValueOrDefault(formattedValues, value?.ToString() ?? string.Empty)); break; default: throw new ArgumentException("Unsupported event type", nameof(displayEvent)); } var isSilent = ((ExecuteRequest)request.Content).Silent; if (!isSilent) { // send on io jupyterMessageSender.Send(dataMessage); } }
public async Task NavigateAsync_ShouldWaitForAnimationEnd() { await Test(async (wpfnav, _) => { var vm = new VM(); wpfnav.Should().NotBeNull(); _NavigationBuilder.Register <VM>(GetRelativePath(TestContext.AnimatedNavigation)); wpfnav.UseINavigable = true; DateTime?opened = null; DisplayEvent de = null; wpfnav.OnDisplay += (o, e) => { opened = DateTime.Now; de = e; }; await wpfnav.NavigateAsync(vm); var nav = DateTime.Now; await Task.Delay(3000); de.Should().NotBeNull(); de.DisplayedViewModel.Should().Be(vm); opened.HasValue.Should().BeTrue(); opened.Value.Subtract(nav).Should().BeCloseTo(TimeSpan.FromSeconds(2), 100); }); }
public static FormattedValue GetPlainText(this DisplayEvent displayEvent) { var formattedValue = displayEvent.FormattedValues.SingleOrDefault(d => d.MimeType == PlainTextFormatter.MimeType); return(formattedValue); }
public void Basic_Option_Simple() { Test((c, w) => { var mre = new ManualResetEvent(false); DisplayEvent de = null; EventHandler <DisplayEvent> ea = null; ea = (o, e) => { de = e; c.OnDisplay -= ea; }; c.OnDisplay += ea; var dc = new Person(); w.RunOnUIThread(() => { c.Mode = JavascriptBindingMode.OneWay; string relp = "javascript\\navigation_1.html"; c.Uri = new Uri(string.Format("{0}\\{1}", Assembly.GetAssembly(typeof(Test_HTMLViewControl)).GetPath(), relp)); w.Window.DataContext = dc; mre.Set(); }); mre.WaitOne(); Thread.Sleep(2500); de.Should().NotBeNull(); de.DisplayedViewModel.Should().Be(dc); }); }
public void Test_WPFBrowserNavigator_Simple() { var vm = new VM(); TestNavigation((wpfnav, WindowTest) => { wpfnav.Should().NotBeNull(); _INavigationBuilder.Register <VM>("Navigation data\\index.html"); wpfnav.UseINavigable = true; var mre = new ManualResetEvent(false); DateTime?nav = null; DateTime?Opened = null; DisplayEvent de = null; wpfnav.OnDisplay += (o, e) => { Opened = DateTime.Now; de = e; }; WindowTest.RunOnUIThread( () => { wpfnav.NavigateAsync(vm).ContinueWith ( t => { vm.Navigation.Should().Be(wpfnav); nav = DateTime.Now; mre.Set(); }); }); mre.WaitOne(); mre = new ManualResetEvent(false); Thread.Sleep(4500); de.Should().NotBeNull(); de.DisplayedViewModel.Should().Be(vm); Opened.HasValue.Should().BeTrue(); Opened.Value.Subtract(nav.Value).Should().BeGreaterThan(TimeSpan.FromSeconds(2)). And.BeLessOrEqualTo(TimeSpan.FromSeconds(3)); WindowTest.RunOnUIThread( () => { wpfnav.NavigateAsync(vm).ContinueWith ( t => { mre.Set(); }); }); mre.WaitOne(); Thread.Sleep(500); vm.Navigation.Should().Be(wpfnav); }); }
private void Start() { if (displayEvent == null) { displayEvent = new DisplayEvent(); } displayEvent.AddListener(PuzzleDisplay.instance.FetchPattern); }
/// <summary> /// Draw the image buffer into a System.Drawing.Bitmap. If the hotpixels /// shall be displayed, red circles are drawn around them. /// Then the Display Event is called for displayin in the Picturebox. /// </summary> /// <param name="imgBuffer">IFrame containing the handled image.</param> private void DisplayBufferInPictureBox(IFrameQueueBuffer imgBuffer) { Bitmap DisplayImage = new Bitmap(imgBuffer.FrameType.Width, imgBuffer.FrameType.Height); using (Graphics graphics = Graphics.FromImage(DisplayImage)) { graphics.DrawImage(imgBuffer.CreateBitmapWrap(), 0, 0); Pen pen = Pens.Red; if (radioBtn_ShowHotpixel.Checked == true) { foreach (var p in listOfCoordinates) { graphics.DrawEllipse(pen, p.X - 5, p.Y - 5, 10, 10); } } } DisplayEvent?.BeginInvoke(this, new BitmapEventArgs(DisplayImage), null, null); }
/// <summary> /// Handler for display event. This is raised from GSDisplay.cs whenever a bitmap /// is ready to be presented. The event handler has two variables. Bitmap - which /// is used for presentation and no. of copies of the image -(this is not used) /// </summary> /// <param name="obj">Object of the sender</param> /// <param name="e">Contains two variables, bitmap and no. of copies</param> private void GsInteractive_displayEvent(object obj, DisplayEvent e) { if (e.bmp != null) { if (bDevelop) { _pageCount++; _pageBitmapList[_pageCount] = e.bmp; _totalPages = _pageCount; slPage.Maximum = _pageCount; slPage.Minimum = 1; slPage.Value = _pageCount; SetImage(GetBitmapImage(_pageCount)); } else { _pageBitmapList[_pageBitmapList.Count + 1] = e.bmp; } } }
public List<DisplayEvent> GetActiveEvents() { var activeEvents = _events.Where(e => !e.HasPassed && !e.IsCancelled).ToArray(); var displayEvents = new List<DisplayEvent>(activeEvents.Length); foreach (var @event in activeEvents){ var displayEvent = new DisplayEvent(); displayEvent.Description = @event.Description; displayEvent.Time = GetPrettyTime(@event.EventDate); displayEvent.Date = GetPrettyDate(@event.EventDate); var timeUntil = @event.EventDate - DateTime.Now; var timeUntilStr = GetPrettyTimeDiff(timeUntil); displayEvent.TimeUntil = timeUntilStr; displayEvent.EventDateTime = @event.EventDate; displayEvents.Add(displayEvent); } return displayEvents; }
public void Basic_Option_Simple_UsingRelativePath_AfterDataContext() { Test((c, w) => { var mre = new ManualResetEvent(false); DisplayEvent de = null; EventHandler <DisplayEvent> ea = null; ea = (o, e) => { de = e; c.OnDisplay -= ea; }; c.OnDisplay += ea; var dc = new Person(); string relp = "javascript\\navigation_1.html"; string path = string.Format("{0}\\{1}", typeof(HTMLViewControl).Assembly.GetPath(), relp); var jvs = PrepareFiles(); //<script src="src\knockout.js" type="text/javascript"></script> //<script src="src\Ko_Extension.js" type="text/javascript"></script> //<script src="src\Ko_register.js" type="text/javascript"></script> w.RunOnUIThread(() => { c.Mode = JavascriptBindingMode.OneWay; w.Window.DataContext = dc; c.RelativeSource = relp; mre.Set(); }); mre.WaitOne(); Thread.Sleep(2000); foreach (string jv in jvs) { string p = string.Format("{0}\\javascript\\src\\{1}", typeof(HTMLViewControl).Assembly.GetPath(), jv); File.Delete(p); } File.Delete(path); de.Should().NotBeNull(); de.DisplayedViewModel.Should().Be(dc); }); }
private void OnDisplayFired(object sender, DisplayEvent e) { OnDisplay?.Invoke(this, e); }
private void OnDisplayEvent(DisplayEvent displayEvent, ZeroMQMessage request, IJupyterMessageSender jupyterMessageSender) { if (displayEvent is ReturnValueProduced && displayEvent.Value is DisplayedValue) { return; } var transient = CreateTransient(displayEvent.ValueId); // Currently there is at most one formatted value with at most // and we return a dictionary for JSON formatting keyed by that mime type // // In the case of DiagnosticsProduced however there are multiple entries, one // for each diagnsotic, all with the same type Dictionary <string, object> GetFormattedValuesByMimeType() { return (displayEvent .FormattedValues .ToDictionary(k => k.MimeType, v => PreserveJson(v.MimeType, v.Value))); } var value = displayEvent.Value; PubSubMessage dataMessage = null; switch (displayEvent) { case DisplayedValueProduced _: dataMessage = new DisplayData( transient: transient, data: GetFormattedValuesByMimeType()); break; case DisplayedValueUpdated _: dataMessage = new UpdateDisplayData( transient: transient, data: GetFormattedValuesByMimeType()); break; case ReturnValueProduced _: dataMessage = new ExecuteResult( _executionCount, transient: transient, data: GetFormattedValuesByMimeType()); break; case StandardOutputValueProduced _: dataMessage = Stream.StdOut(GetPlainTextValueOrDefault(GetFormattedValuesByMimeType(), value?.ToString() ?? string.Empty)); break; case StandardErrorValueProduced _: case ErrorProduced _: dataMessage = Stream.StdErr(GetPlainTextValueOrDefault(GetFormattedValuesByMimeType(), value?.ToString() ?? string.Empty)); break; default: throw new ArgumentException("Unsupported event type", nameof(displayEvent)); } var isSilent = ((ExecuteRequest)request.Content).Silent; if (!isSilent) { // send on io jupyterMessageSender.Send(dataMessage); } }
protected virtual void DisplayMe() { DisplayEvent?.Invoke(SurnameList); }
//#region OutputForm /// <summary> /// Where all the output triggering events from the controller end up. /// </summary> /// <param name="e"></param> /// public Error Update(DisplayEvent e) { #region uxPanDepositWithdrawl //funds uxTBFundsAmount.Text = _mainModel.Account.Funds.ToString("N2"); double accTotalValue = _mainModel.Account.CalculateValue(_mainModel.Stocks); double accPosValue = accTotalValue - _mainModel.Account.Funds; if (!(accTotalValue == 0)) { //cash percent uxTBCashPercent.Text = String.Format("{0:0.00}", (_mainModel.Account.Funds / accTotalValue) * 100) + "%"; //positions percent uxTBPositonsPercent.Text = String.Format("{0:0.00}", (accPosValue / accTotalValue) * 100) + "%"; } //positions amount uxTBPositionsAmount.Text = "$" + String.Format("{0:0.00}", accPosValue); //total value uxTBTotalValue.Text = "$" + String.Format("{0:0.00}", accTotalValue); #endregion DepositWithdrawPanel #region uxPanAccHeldStocks List <BuyOrSell_M> allHeldBOS = new List <BuyOrSell_M>(); foreach (Portfolio_M curPortfolio in _mainModel.Account.Portfolios) { allHeldBOS.AddRange(curPortfolio.CurrentlyHeld()); } List <string> formatedHeldStocks = new List <string>(); foreach (BuyOrSell_M curBOS in allHeldBOS) { formatedHeldStocks.Add(curBOS.StockName + " #:" + curBOS.Quantity); } uxLBStocksHeld.DataSource = formatedHeldStocks; #endregion uxPanAccHeldStocks #region uxPanGainLossAcc uxTBGainLoss.Text = String.Format("{0:0.00}", _mainModel.Account.CalculateGainLoss(_mainModel.Stocks)); #endregion uxPanGainLossAcc #region uxPanPortfoliosCreateDelete List <string> portfolioNames = new List <string>(); foreach (Portfolio_M portfolio in _mainModel.Account.Portfolios) { portfolioNames.Add(portfolio.Name); } uxLBPortfolios.DataSource = portfolioNames; if (uxLBPortfolios.Items.Count == 0) { uxNewDelete.Enabled = false; } else { uxNewDelete.Enabled = true; } #endregion uxPanPortfoliosCreateDelete #region uxPanAllStocks List <string> allStockStrings = new List <string>(); foreach (Stock_M stock in _mainModel.Stocks) { allStockStrings.Add(stock.Tag + " " + stock.Price); } uxLBAllStock.DataSource = allStockStrings; #endregion uxPanAllStocks return(Error.None); }