Example #1
0
        public void OpenScreen(IScreenSubject subject)
        {
            if (subject.Matches(_screens.Active))
            {
                return;
            }
            var screen = findScreenMatchingSubject(subject);

            if (screen == null)
            {
                screen = createNewActiveScreen(subject);
            }
            else
            {
                activate(screen);
            }
            _screens.Show(screen);
        }
Example #2
0
        public virtual void OpenScreen(IScreenLocator locator)
        {
            // What if that screen is already open and active?
            if (locator.Matches(_screens.Active))
            {
                return;
            }

            // Is the requested screen one of the inactive tabs?
            IScreen screen = findScreenMatchingSubject(locator);

            if (screen == null)
            {
                screen = createNewActiveScreen(locator);
            }
            else
            {
                activate(screen);
            }

            _screens.Show(screen);
        }