예제 #1
0
        public T Open <T>() where T : class, IWindowController
        {
            var window = _factory.Create <T>();

            if (window == null)
            {
                return(null);
            }

            window.Owner.SetParent(_root.Root, false);

            //TODO: add modal, single types
            if (window.Mode == WindowMode.Single)
            {
                _windows.Add(window);
                window.Open();
            }
            else if (window.Mode == WindowMode.Modal)
            {
                _modalWindow?.Close();
                _modalWindow = window;
                window.Open();
            }

            WindowOpen?.Invoke(window);

            return(window);
        }
예제 #2
0
        /// <summary>
        ///     Processa o comando: WindowOpenConfiguration
        /// </summary>
        /// <param name="request">Comando</param>
        /// <param name="cancellationToken">CancellationToken</param>
        /// <returns>Task</returns>
        public Task <IDictionary <Window, Form> > Handle(WindowOpen request, CancellationToken cancellationToken)
        {
            var windowTypes = GetWindowsTypeOrdered(request.Window, request.OrderBy);
            var result      = (IDictionary <Window, Form>)windowTypes
                              .ToDictionary(
                windowType => windowType,
                windowType => OpenWindow(GetInstances(windowType)[0].Item2(), request.Parent));

            return(Task.FromResult(result));
        }
예제 #3
0
 public OpenWindowRegion(WindowOpen window, WorldRegion region)
 {
     this.Window = window;
     this.Region = region;
 }