コード例 #1
0
        private static void CreateTab <T>(TabNavigationType navigationType)
        {
            var newTab = Mvx.Resolve <ITabProvider>()
                         .ShowViewModel(
                new MvxViewModelRequest(typeof(T), new MvxBundle(), new MvxBundle(),
                                        MvxRequestedBy.Unknown), navigationType);

            newTab.IsBlinking = navigationType == TabNavigationType.NewBackgroundTab;
        }
コード例 #2
0
 public override void Show(MvxViewModelRequest request)
 {
     try
     {
         TabNavigationType tabNavigationType = TabNavigationType.ActiveTab;
         if (request.PresentationValues != null)
         {
             if (request.PresentationValues.ContainsKey(nameof(TabNavigationType)))
             {
                 Enum.TryParse(request.PresentationValues[nameof(TabNavigationType)], true,
                               out tabNavigationType);
             }
         }
         _appShell.TabManager.ProcessViewModelRequest(request, tabNavigationType);
     }
     catch (Exception exception)
     {
         MvxTrace.Trace("Error seen during navigation request to {0} - error {1}", request.ViewModelType.Name,
                        exception.ToLongString());
     }
 }
コード例 #3
0
ファイル: TabManager.cs プロジェクト: omegaGoTeam/omegaGo
        /// <summary>
        /// Processes a view model request
        /// </summary>
        /// <param name="request">View model request</param>
        /// <param name="tabNavigationType">Type of tab navigation to perform</param>
        internal ITabInfo ProcessViewModelRequest(MvxViewModelRequest request, TabNavigationType tabNavigationType)
        {
            //process the request
            var requestTranslator = Mvx.Resolve <IMvxViewsContainer>();
            var viewType          = requestTranslator.GetViewType(request.ViewModelType);

            var converter   = Mvx.Resolve <IMvxNavigationSerializer>();
            var requestText = converter.Serializer.SerializeObject(request);

            //prepare tab
            var  targetTab         = ActiveTab;
            bool activeAndNeedsNew = tabNavigationType == TabNavigationType.ActiveTab && ActiveTab == null;

            if (activeAndNeedsNew || tabNavigationType != TabNavigationType.ActiveTab)
            {
                targetTab = CreateEmptyTab();
            }
            targetTab.Frame.Navigate(viewType, requestText);
            if (tabNavigationType != TabNavigationType.NewBackgroundTab)
            {
                ActiveTab = targetTab;
            }
            return(targetTab);
        }
コード例 #4
0
ファイル: TabProvider.cs プロジェクト: omegaGoTeam/omegaGo
 /// <summary>
 /// Shows a view model using tab manager
 /// </summary>
 /// <param name="request">View model request</param>
 /// <param name="tabNavigationType">Tab navigation type</param>
 /// <returns>Used tab</returns>
 public ITabInfo ShowViewModel(MvxViewModelRequest request, TabNavigationType tabNavigationType)
 => GetTabManager().ProcessViewModelRequest(request, tabNavigationType);