Exemple #1
0
        public static T LauchDemo <T>(DemoBrowserViewModel viewmodel, DemoInfo demoInfo) where T : DependencyObject
        {
            T   demo;
            var constructorInfo = demoInfo.DemoViewType.GetConstructors().FirstOrDefault(cinfo => cinfo.IsPublic && cinfo.GetParameters().Length == 1 && cinfo.GetParameters()[0].Name == "themename");

            if (demoInfo.ThemeMode != ThemeMode.None && constructorInfo != null)
            {
                demo = Activator.CreateInstance(demoInfo.DemoViewType,
                                                demoInfo.ThemeMode == ThemeMode.Inherit ? viewmodel.SelectedThemeName : DemoBrowserViewModel.DefaultThemeName) as T;
            }
            else
            {
                demo = Activator.CreateInstance(demoInfo.DemoViewType) as T;
                if (demoInfo.ThemeMode == ThemeMode.Inherit)
                {
                    SfSkinManager.SetTheme(demo, new Theme()
                    {
                        ThemeName = viewmodel.SelectedThemeName
                    });
                }
                else if (demoInfo.ThemeMode == ThemeMode.Default)
                {
                    SfSkinManager.SetTheme(demo, new Theme()
                    {
                        ThemeName = DemoBrowserViewModel.DefaultThemeName
                    });
                }
            }
            return(demo);
        }
Exemple #2
0
        /// <summary>
        /// Method helps to perform sample selection change operation.
        /// </summary>
        /// <param name="demoInfo">Selected Sample</param>
        private void OnSelectedSampleChanged(DemoInfo demoInfo)
        {
            if (demoInfo == null)
            {
                return;
            }

            if (demoInfo.ThemeMode != ThemeMode.Inherit)
            {
                IsThemeInheritMode = false;
            }
            else
            {
                IsThemeInheritMode = true;
            }

            if (demoInfo.ShowBusyIndicator)
            {
                IsProductDemoBusy = true;
            }

            var olddemo = DemosNavigationService.DemoNavigationService.Content as IDisposable;

            if (demoInfo.DemoLauchMode == DemoLauchMode.Window ||
                (SelectedProduct != null && SelectedProduct.DemoLauchMode == DemoLauchMode.Window))
            {
                var demoLauncherView = new DemoLauncherView(demoInfo.DemoViewType)
                {
                    DataContext = this
                };
                SfSkinManager.SetTheme(demoLauncherView, new Theme()
                {
                    ThemeName = SelectedThemeName
                });
                DemosNavigationService.DemoNavigationService.Navigate(demoLauncherView);
            }
            else
            {
                var demoControl = DemoLaucherExtension.LauchDemo <DemoControl>(this, demoInfo);
                if (demoControl != null && DemosNavigationService.DemoNavigationService != null)
                {
                    demoControl.Title       = demoInfo.SampleName;
                    demoControl.Description = demoInfo.Description;
                    DemosNavigationService.DemoNavigationService.Navigate(demoControl);
                }
            }

            if (olddemo != null)
            {
                olddemo.Dispose();
            }

            DemosNavigationService.MainWindow.Dispatcher.BeginInvoke(new Action(() =>
            {
                IsProductDemoBusy = false;
            }),
                                                                     System.Windows.Threading.DispatcherPriority.ApplicationIdle);
        }
Exemple #3
0
        protected override void Invoke(object parameter)
        {
            if (this.AssociatedObject == null)
            {
                return;
            }

            var viewmodel = this.AssociatedObject.DataContext as DemoBrowserViewModel;

            if (viewmodel == null)
            {
                return;
            }
            if (AssociatedObject != null && AssociatedObject.SelectedItem is DemoInfo && viewmodel != null)
            {
                try
                {
                    DemoInfo demo = AssociatedObject.SelectedItem as DemoInfo;
                    if (demo.ShowBusyIndicator)
                    {
                        viewmodel.IsShowCaseDemoBusy = true;
                    }
                    var window = Activator.CreateInstance(demo.DemoViewType) as Window;
                    viewmodel.SelectedShowcaseSample = demo;
                    AssociatedObject.SelectedItem    = null;

                    DemosNavigationService.MainWindow.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        viewmodel.IsShowCaseDemoBusy = false;
                    }),
                                                                             System.Windows.Threading.DispatcherPriority.ApplicationIdle);

                    if (window != null)
                    {
                        window.Owner = DemosNavigationService.MainWindow;
                        window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
                        window.Closed += Window_Closed;
                        window.ShowDialog();
                    }
                }
                catch (Exception exception)
                {
                    viewmodel.IsShowCaseDemoBusy = false;
                    if (viewmodel != null)
                    {
                        if (viewmodel.SelectedProduct != null && viewmodel.SelectedSample != null)
                        {
                            ErrorLogging.LogError("Product Sample\\" + viewmodel.SelectedProduct.Product + "\\" + viewmodel.SelectedSample.SampleName + "@@" + exception.Message + "\n" + exception.StackTrace + "\n" + exception.Source);
                        }
                        else if (viewmodel.SelectedShowcaseSample != null)
                        {
                            ErrorLogging.LogError("Product ShowCase\\" + viewmodel.SelectedShowcaseSample.SampleName + "\\" + viewmodel.SelectedShowcaseSample.SampleName + "@@" + exception.Message + "\n" + exception.StackTrace + "\n" + exception.Source);
                        }
                    }
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// Helps to launch window mode demos.
        /// </summary>
        private async static void LaunchDemo(DemoInfo demo)
        {
            if (viewModel == null || viewModel.SelectedProduct == null || viewModel.SelectedSample == null)
            {
                return;
            }

            try
            {
                var window = DemoLaucherExtension.LauchDemo <Window>(viewModel, demo);
                window.Show();
                if (demo.ShowBusyIndicator)
                {
                    await DemosNavigationService.MainWindow.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        window.Close();
                    }), System.Windows.Threading.DispatcherPriority.ApplicationIdle);
                }
                else
                {
                    await Task.Delay(6000);

                    ErrorLogging.LogLiveDemos(viewModel.SelectedProduct.Product + "\\" + viewModel.SelectedSample.SampleName + "\\ShowBusyIndicator set as false. Ensure to set as true, if this demo is not running anything in background always.");
                    window.Close();
                }
            }
            catch (Exception exception)
            {
                if (viewModel != null)
                {
                    if (viewModel.SelectedProduct != null && viewModel.SelectedSample != null)
                    {
                        ErrorLogging.LogError("Product Sample\\" + viewModel.SelectedProduct.Product + "\\" + viewModel.SelectedSample.SampleName + "@@" + "Assembly location details missing in app.config file, Please contact Syncfusion support." + exception.Message + "\n" + exception.StackTrace + "\n" + exception.Source);
                    }
                    else if (viewModel.SelectedShowcaseSample != null)
                    {
                        ErrorLogging.LogError("Product ShowCase\\" + viewModel.SelectedShowcaseSample.SampleName + "\\" + viewModel.SelectedShowcaseSample.SampleName + "@@" + "Assembly location details missing in app.config file, Please contact Syncfusion support." + exception.Message + "\n" + exception.StackTrace + "\n" + exception.Source);
                    }
                }
            }
        }
Exemple #5
0
        /// <summary>
        /// Helps to launch window mode demos.
        /// </summary>
        private async static void LaunchDemo(DemoInfo demo)
        {
            var window = DemoLaucherExtension.LauchDemo <Window>(viewModel, demo);

            window.Show();
            if (demo.ShowBusyIndicator)
            {
                await DemosNavigationService.MainWindow.Dispatcher.BeginInvoke(new Action(() =>
                {
                    window.Close();
                }), System.Windows.Threading.DispatcherPriority.ApplicationIdle);
            }
            else
            {
                await Task.Delay(4000);

                if (viewModel != null && viewModel.SelectedProduct != null && viewModel.SelectedSample != null)
                {
                    ErrorLogging.LogLiveDemos(viewModel.SelectedProduct.Product + "\\" + viewModel.SelectedSample.SampleName + "\\Live Demos");
                }
                window.Close();
            }
        }
Exemple #6
0
        /// <summary>
        /// Occurs when the selection of show case demos
        /// </summary>
        private void ShowcaseList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ListView listView = sender as ListView;

            if (listView != null && listView.SelectedItem is DemoInfo && sampleBrowserViewModel != null)
            {
                try
                {
                    DemoInfo demo = listView.SelectedItem as DemoInfo;
                    if (demo.ShowBusyIndicator)
                    {
                        sampleBrowserViewModel.IsShowCaseDemoBusy = true;
                    }
                    var window = Activator.CreateInstance(demo.DemoViewType) as Window;
                    AssociatedObject.ShowcaseList.SelectedItem = null;

                    DemosNavigationService.MainWindow.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        sampleBrowserViewModel.IsShowCaseDemoBusy = false;
                    }),
                                                                             System.Windows.Threading.DispatcherPriority.ApplicationIdle);

                    if (window != null)
                    {
                        window.Owner = DemosNavigationService.MainWindow;
                        window.WindowStartupLocation = WindowStartupLocation.CenterScreen;
                        window.Closed += Window_Closed;
                        window.ShowDialog();
                    }
                }
                catch (Exception exception)
                {
                    sampleBrowserViewModel.IsShowCaseDemoBusy = false;
                    ErrorWindow.Show(exception.Message + "\n" + exception.StackTrace);
                }
            }
        }