public void SourceReferenceMemoryLeakTest() { var handler1Called = false; var publisherStrongReference = new InteractionMessenger(); var publisherWeakReference = new WeakReference <InteractionMessenger>(publisherStrongReference); var message = new GenericInteractionMessage <int>(1, "Dummy1"); var listener = new MessageListener(publisherStrongReference); listener.RegisterAction("Dummy1", _ => handler1Called = true); publisherStrongReference.Raise(message); handler1Called.Is(true); listener.Dispose(); publisherStrongReference = null; GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); InteractionMessenger resultPublisher = null; publisherWeakReference.TryGetTarget(out resultPublisher).Is(false); resultPublisher.IsNull(); }
public static T GetResponseSafe <T>(this InteractionMessenger messenger, Func <T> messageFactory) where T : ResponsiveInteractionMessage { return(DispatcherHelper.UIDispatcher.CheckAccess() ? messenger.GetResponse(messageFactory()) : DispatcherHelper.UIDispatcher.Invoke(() => messenger.GetResponse(messageFactory()))); }
public UriListViewModel(InteractionMessenger messenger = null) { if (messenger != null) { Messenger = messenger; } CompositeDisposable.Add(OnDispose); }
public UriListDocument(InteractionMessenger messenger) { m_viewModel = new UriListViewModel.UriListViewModel(messenger); m_viewModel.PropertyChanged += (o, e) => { if (e.PropertyName == "Path") { Title = System.IO.Path.GetFileName(m_viewModel.Path); } }; }
public static void RaiseSafeSync(this InteractionMessenger messenger, Func <InteractionMessage> messageFactory) { if (DispatcherHelper.UIDispatcher.CheckAccess()) { messenger.Raise(messageFactory()); } else { DispatcherHelper.UIDispatcher.Invoke(() => messenger.Raise(messageFactory())); } }
public TabViewModel(Tab model, InteractionMessenger mainWindowViewModelMessenger) { this.model = model; this.Messenger = mainWindowViewModelMessenger; ViewModelHelper.BindNotifyChanged(model, this, (sender, e) => { switch (e.PropertyName) { case "Name": case "IsRefreshing": this.RaisePropertyChanged(e.PropertyName); break; case "LastErrorMessage": this.RaisePropertyChanged(e.PropertyName); this.RaisePropertyChanged(() => this.LastErrorMessageIsNotEmpty); break; } }); var source = new CollectionViewSource(); source.Source = ViewModelHelper.CreateReadOnlyDispatcherCollection( model.Items, (ITimelineItem item) => { var re = new TimelineItemViewModel(item); ViewModelHelper.BindNotifyChanged(re, this, (sender, e) => { if (e.PropertyName == "IsSelected") { var vm = (TimelineItemViewModel)sender; if (vm.IsSelected) this.SelectedItems.Add(vm); else this.SelectedItems.Remove(vm); } }); return re; }, DispatcherHelper.UIDispatcher ); source.SortDescriptions.Clear(); source.SortDescriptions.Add(new SortDescription("CreatedAt", ListSortDirection.Descending)); source.SortDescriptions.Add(new SortDescription("Id", ListSortDirection.Descending)); this.Items = source.View; this.SelectedItems = new ObservableCollection<TimelineItemViewModel>(); }
public void ResponsiveMessageTest() { var listenerSuccess = false; var publisher = new InteractionMessenger(); var message = new GenericResponsiveInteractionMessage <int, string>(1); var listener = new MessageListener(publisher, m => { var rm = (GenericResponsiveInteractionMessage <int, string>)m; rm.Value.Is(1); rm.Response = "test"; listenerSuccess = true; }); listenerSuccess.Is(false); publisher.GetResponse(message).Response.Is("test"); listenerSuccess.Is(true); }
public void LifeCycleTest() { var listenerSuccess = false; var publisher = new InteractionMessenger(); var message = new GenericInteractionMessage<int>(1); var listener = new MessageListener(publisher, m => { ((GenericInteractionMessage<int>)m).Value.Is(1); listenerSuccess = true; }); //------------------ listenerSuccess.Is(false); publisher.Raise(message); listenerSuccess.Is(true); //------------------ listenerSuccess = false; listener.Dispose(); publisher.Raise(message); listenerSuccess.Is(false); try { listener.RegisterAction(_ =>{}); } catch (Exception e) { e.GetType().Is(typeof(ObjectDisposedException)); } }
public void LifeCycleTest() { var listenerSuccess = false; var publisher = new InteractionMessenger(); var message = new GenericInteractionMessage <int>(1); var listener = new MessageListener(publisher, m => { ((GenericInteractionMessage <int>)m).Value.Is(1); listenerSuccess = true; }); //------------------ listenerSuccess.Is(false); publisher.Raise(message); listenerSuccess.Is(true); //------------------ listenerSuccess = false; listener.Dispose(); publisher.Raise(message); listenerSuccess.Is(false); try { listener.RegisterAction(_ => {}); } catch (Exception e) { e.GetType().Is(typeof(ObjectDisposedException)); } }
public void AddHandlerKindTest() { var handler1Called = false; var handler2Called = false; var handler3Called = false; var handler4Called = false; var handler5Called = false; var publisher = new InteractionMessenger(); var message0 = new GenericInteractionMessage<int>(1); var message1 = new GenericInteractionMessage<int>(1, "Dummy1"); var message2 = new GenericInteractionMessage<int>(1, "Dummy2"); var listener1 = new MessageListener(publisher) { {"Dummy1", _ => handler1Called = true}, {"Dummy2", _ => handler2Called = true, _ => handler3Called = true }, _ => handler4Called = true, {"Dummy1", _ => handler5Called = true} }; publisher.Raise(message0); handler1Called.Is(false); handler2Called.Is(false); handler3Called.Is(false); handler4Called.Is(true); handler5Called.Is(false); handler4Called = false; publisher.Raise(message1); handler1Called.Is(true); handler2Called.Is(false); handler3Called.Is(false); handler4Called.Is(true); handler5Called.Is(true); handler1Called = false; handler4Called = false; handler5Called = false; publisher.Raise(message2); handler1Called.Is(false); handler2Called.Is(true); handler3Called.Is(true); handler4Called.Is(true); handler5Called.Is(false); handler1Called = false; handler2Called = false; handler3Called = false; handler4Called = false; handler5Called = false; listener1.Dispose(); publisher.Raise(message0); publisher.Raise(message1); publisher.Raise(message2); handler1Called.Is(false); handler2Called.Is(false); handler3Called.Is(false); handler4Called.Is(false); handler5Called.Is(false); }
public void SourceReferenceMemoryLeakTest() { var handler1Called = false; var publisherStrongReference = new InteractionMessenger(); var publisherWeakReference = new WeakReference<InteractionMessenger>(publisherStrongReference); var message = new GenericInteractionMessage<int>(1, "Dummy1"); var listener = new MessageListener(publisherStrongReference); listener.RegisterAction("Dummy1", _ =>handler1Called = true); publisherStrongReference.Raise(message); handler1Called.Is(true); listener.Dispose(); publisherStrongReference = null; GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); InteractionMessenger resultPublisher = null; publisherWeakReference.TryGetTarget(out resultPublisher).Is(false); resultPublisher.IsNull(); }
public void ResponsiveMessageTest() { var listenerSuccess = false; var publisher = new InteractionMessenger(); var message = new GenericResponsiveInteractionMessage<int,string>(1); var listener = new MessageListener(publisher, m => { var rm = (GenericResponsiveInteractionMessage<int, string>)m; rm.Value.Is(1); rm.Response = "test"; listenerSuccess = true; }); listenerSuccess.Is(false); publisher.GetResponse(message).Response.Is("test"); listenerSuccess.Is(true); }
public virtual void ShowHelpView(InteractionMessenger Messenger) { }
public void AddHandlerKindTest() { var handler1Called = false; var handler2Called = false; var handler3Called = false; var handler4Called = false; var handler5Called = false; var publisher = new InteractionMessenger(); var message0 = new GenericInteractionMessage <int>(1); var message1 = new GenericInteractionMessage <int>(1, "Dummy1"); var message2 = new GenericInteractionMessage <int>(1, "Dummy2"); var listener1 = new MessageListener(publisher) { { "Dummy1", _ => handler1Called = true }, { "Dummy2", _ => handler2Called = true, _ => handler3Called = true }, _ => handler4Called = true, { "Dummy1", _ => handler5Called = true } }; publisher.Raise(message0); handler1Called.Is(false); handler2Called.Is(false); handler3Called.Is(false); handler4Called.Is(true); handler5Called.Is(false); handler4Called = false; publisher.Raise(message1); handler1Called.Is(true); handler2Called.Is(false); handler3Called.Is(false); handler4Called.Is(true); handler5Called.Is(true); handler1Called = false; handler4Called = false; handler5Called = false; publisher.Raise(message2); handler1Called.Is(false); handler2Called.Is(true); handler3Called.Is(true); handler4Called.Is(true); handler5Called.Is(false); handler1Called = false; handler2Called = false; handler3Called = false; handler4Called = false; handler5Called = false; listener1.Dispose(); publisher.Raise(message0); publisher.Raise(message1); publisher.Raise(message2); handler1Called.Is(false); handler2Called.Is(false); handler3Called.Is(false); handler4Called.Is(false); handler5Called.Is(false); }
public static async Task RaiseSafeAsync(this InteractionMessenger messenger, Func <InteractionMessage> messageFactory) { await DispatcherHelper.UIDispatcher.InvokeAsync(() => messenger.Raise(messageFactory())); }
public override void ShowHelpView(InteractionMessenger Messenger) { Messenger.Raise(new TransitionMessage(typeof(Views.WebViewHelpView), this, TransitionMode.NewOrActive)); }
public StatusBarViewModel(InteractionMessenger messenger) : this() { this.Messenger = messenger; }
public void SetMessanger(InteractionMessenger messenger) { _Messenger = messenger; }