Exemple #1
0
            void HandleActivatable(ILaunchChooser <TResult> handler, object storedClientId)
            {
                var activatable = handler as IActivate;
                EventHandler <ActivationEventArgs> onActivate = null;

                onActivate = (s, e) => {
                    if (!eventHandled && e.WasInitialized && string.Compare(storedClientId.ToString(), activator.GetKey(handler, string.Empty)) == 0)
                    {
                        handler.Handle(lastResult);
                        lastResult   = null;
                        eventHandled = true;
                    }

                    if (activatable != null)
                    {
                        activatable.Activated -= onActivate;
                    }
                };

                if (activatable != null && !activatable.IsActive)
                {
                    activatable.Activated += onActivate;
                }
                else
                {
                    onActivate(null, new ActivationEventArgs {
                        WasInitialized = true
                    });
                }
            }
Exemple #2
0
            void HandleView(object view, object storedClientId, ILaunchChooser <TResult> handler)
            {
                var frameworkElement = view as FrameworkElement;

                RoutedEventHandler onLoaded = null;

                onLoaded = (s, e) => {
                    if (!eventHandled && string.Compare(storedClientId.ToString(), activator.GetKey(handler, string.Empty)) == 0)
                    {
                        handler.Handle(lastResult);
                        lastResult   = null;
                        eventHandled = true;
                    }

                    frameworkElement.Loaded -= onLoaded;
                };

                if (frameworkElement != null)
                {
                    frameworkElement.Loaded += onLoaded;
                }
                else
                {
                    onLoaded(null, null);
                }
            }
Exemple #3
0
            void HandleViewAware(ILaunchChooser <TResult> handler, IViewAware viewAware, object storedClientId)
            {
                EventHandler <ViewAttachedEventArgs> onViewAttached = null;

                onViewAttached = (s, e) => {
                    HandleView(e.View, storedClientId, handler);
                    viewAware.ViewAttached -= onViewAttached;
                };
                viewAware.ViewAttached += onViewAttached;
            }
Exemple #4
0
            void TryHandleAtLatestTime(ILaunchChooser <TResult> handler, object storedClientId)
            {
                var viewAware = handler as IViewAware;

                if (viewAware != null)
                {
                    var defaultView = viewAware.GetView(ViewLocator.DefaultContext);

                    if (defaultView == null)
                    {
                        HandleViewAware(handler, viewAware, storedClientId);
                    }
                    else
                    {
                        HandleView(defaultView, storedClientId, handler);
                    }
                }
                else
                {
                    HandleActivatable(handler, storedClientId);
                }
            }