コード例 #1
0
        public IScreenRegistrationConfig Register(Class <Screen> screenClass, IScreenResolver resolver)
        {
            var typeHash = screenClass.GetHashCode();
            var entry    = new ScreenEntry(screenClass, resolver);

            _screens.TryAdd(typeHash, entry);
            return(entry);
        }
コード例 #2
0
ファイル: BlazorPageNavigator.cs プロジェクト: SpireX64/Navix
        public override void Forward(Screen screen, IScreenResolver resolver)
        {
            if (!(resolver is IBlazorScreenResolver blazorScreenResolver))
            {
                return;
            }

            var intent = blazorScreenResolver.GetNavigationIntent(screen);

            _history.Push(intent);
            Dispatch(intent);
        }
コード例 #3
0
ファイル: AndroidNavigator.cs プロジェクト: SpireX64/Navix
        public override void Forward(Screen screen, IScreenResolver resolver)
        {
            switch (resolver)
            {
            case IActivityScreenResolver activityScreenResolver:
                ForwardActivity(screen, activityScreenResolver);
                break;

            case IFragmentScreenResolver fragmentScreenResolver:
                ForwardFragment(screen, fragmentScreenResolver);
                break;
            }
        }
コード例 #4
0
ファイル: BlazorPageNavigator.cs プロジェクト: SpireX64/Navix
        public override void Replace(Screen screen, IScreenResolver resolver)
        {
            if (!(resolver is IBlazorScreenResolver blazorScreenResolver))
            {
                return;
            }

            var intent = blazorScreenResolver.GetNavigationIntent(screen);

            if (_history.Count > 0)
            {
                _history.Pop();
            }
            _history.Push(intent);

            if (_history.Count == 1)
            {
                _rootIntent = intent;
            }

            Dispatch(intent);
        }
コード例 #5
0
ファイル: ForwardNavCommand.cs プロジェクト: SpireX64/Navix
 public ForwardNavCommand(Screen screen, IScreenResolver resolver)
 {
     _screen         = screen;
     _screenResolver = resolver;
 }
コード例 #6
0
 public ScreenEntry(Class <Screen> screenClass, IScreenResolver resolver)
 {
     ScreenClass = screenClass;
     Resolver    = resolver;
 }
コード例 #7
0
 public ReplaceScreenNavCommand(Screen screen, IScreenResolver resolver)
 {
     _screen   = screen;
     _resolver = resolver;
 }
コード例 #8
0
ファイル: Navigator.cs プロジェクト: SpireX64/Navix
 /// <summary>
 ///     Replace current screen.
 /// </summary>
 /// <param name="screen">The screen to replace the current one</param>
 /// <param name="resolver">
 ///     Screen resolver<</param>
 /// <exception cref="NotSupportedException"></exception>
 public virtual void Replace(Screen screen, IScreenResolver resolver)
 {
     throw new NotSupportedException();
 }
コード例 #9
0
ファイル: Navigator.cs プロジェクト: SpireX64/Navix
 /// <summary>
 ///     Open new screen and add it to the screens sequence.
 /// </summary>
 /// <param name="screen">The screen on which the navigating is performed</param>
 /// <param name="resolver">Screen resolver</param>
 public abstract void Forward(Screen screen, IScreenResolver resolver);