Exemplo n.º 1
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            VisualComposition.Trace += (sender, args) => Trace.WriteLine(args.Text);
            BindingErrorTracer.Start(BindingErrorCallback);

            var context = new RegistrationBuilder();

            // Visuals can't be singletons:
            context.ForTypesDerivedFrom <FrameworkElement>()?.SetCreationPolicy(CreationPolicy.NonShared);
            // To demonstrate the ImportExtension with value converters.
            context.ForTypesDerivedFrom <IValueConverter>()?.Export();
            try
            {
                _compositionHost.AddCatalog(new ApplicationCatalog(context));
            }
            catch (ReflectionTypeLoadException ex)
            {
                MessageBox.Show(ex.Message + "\n" + string.Join("\n", ex.LoaderExceptions.Select(le => le.Message)));
            }


            Resources.MergedDictionaries.Insert(0, WpfStyles.GetDefaultStyles().RegisterDefaultWindowStyle());
            Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(_compositionHost.Container));

            MainWindow = _compositionHost.GetExportedValue <MainWindow>();
            MainWindow.Show();
        }
        protected override void OnCreate()
        {
            try
            {
                base.OnCreate();

                _tracer.WriteLine(_introMessage);

                var executingAssembly = Assembly.GetExecutingAssembly();
                var folder            = Path.GetDirectoryName(executingAssembly.Location);

                _tracer.WriteLine("Assembly location: {0}", folder);
                _tracer.WriteLine("Version: {0}", new AssemblyName(executingAssembly.FullName).Version);


                var view = _compositionHost.GetExportedValue <ShellView>();
                view.Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(_compositionHost.Container));

                view.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(Navigate_Click));

                Content = view;
            }
            catch (Exception ex)
            {
                _tracer.TraceError(ex);
            }
        }
Exemplo n.º 3
0
        protected override void OnStartup([NotNull] StartupEventArgs e)
        {
            base.OnStartup(e);

            var assembly = GetType().Assembly;
            var folder   = Path.GetDirectoryName(assembly.Location);

            _compositionCatalog.Catalogs.Add(new AssemblyCatalog(assembly));
            _compositionCatalog.Catalogs.Add(new AssemblyCatalog(typeof(ResXManager.Infrastructure.ITracer).Assembly));
            _compositionCatalog.Catalogs.Add(new AssemblyCatalog(typeof(ResXManager.Model.GlobalExtensions).Assembly));
            _compositionCatalog.Catalogs.Add(new AssemblyCatalog(typeof(ResXManager.Translators.AzureTranslator).Assembly));
            _compositionCatalog.Catalogs.Add(new AssemblyCatalog(typeof(ResXManager.View.Appearance).Assembly));

            _compositionContainer.ComposeExportedValue(_exportProvider);

            Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(_exportProvider));

            _compositionContainer.GetExportedValues <IService>().ForEach(service => service.Start());

            var tracer = _exportProvider.GetExportedValue <ITracer>();

            tracer.WriteLine("Started");

            tracer.WriteLine(ResXManager.Properties.Resources.IntroMessage);
            tracer.WriteLine(ResXManager.Properties.Resources.AssemblyLocation, folder);
            tracer.WriteLine(ResXManager.Properties.Resources.Version, new AssemblyName(assembly.FullName).Version ?? new Version());

            VisualComposition.Error += (_, args) => tracer.TraceError(args.Text);

            MainWindow = _exportProvider.GetExportedValue <MainWindow>();
            MainWindow.Show();
        }
Exemplo n.º 4
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            var assembly = GetType().Assembly;
            var folder   = Path.GetDirectoryName(assembly.Location);

            Contract.Assume(!string.IsNullOrEmpty(folder));

            _compositionHost.AddCatalog(assembly);
            _compositionHost.AddCatalog(new DirectoryCatalog(folder, "*.dll"));

            // ReSharper disable once PossibleNullReferenceException
            Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(_compositionHost.Container));

            var tracer = _compositionHost.GetExportedValue <ITracer>();

            tracer.WriteLine("Started");

            tracer.WriteLine(ResXManager.Properties.Resources.IntroMessage);
            tracer.WriteLine(ResXManager.Properties.Resources.AssemblyLocation, folder);
            tracer.WriteLine(ResXManager.Properties.Resources.Version, new AssemblyName(assembly.FullName).Version);

            // ReSharper disable once PossibleNullReferenceException
            VisualComposition.Error += (_, args) => tracer.TraceError(args.Text);

            MainWindow = _compositionHost.GetExportedValue <MainWindow>();
            MainWindow.Show();
        }
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            // modern styling
            Resources.MergedDictionaries.Add(WpfStyles.GetDefaultStyles());
            Resources.RegisterDefaultWindowStyle();

            // setup visual composition infrastructure, using Ninject
            _kernel.BindExports(GetType().Assembly);
            IExportProvider exportProvider = new ExportProvider(_kernel);

            _kernel.Bind <IExportProvider>().ToConstant(exportProvider);

            // setup global export provider locator for XAML
            ExportProviderLocator.Register(exportProvider);

            // register all controls tagged as data templates
            var dynamicDataTemplates = DataTemplateManager.CreateDynamicDataTemplates(exportProvider);

            Resources.MergedDictionaries.Add(dynamicDataTemplates);

            MainWindow = exportProvider.GetExportedValue <MainWindow>();
            MainWindow.Show();
        }
Exemplo n.º 6
0
        protected override void OnStartup([NotNull] StartupEventArgs e)
        {
            base.OnStartup(e);

            var assembly = GetType().Assembly;
            var folder   = Path.GetDirectoryName(assembly.Location);

            _compositionCatalog.Catalogs.Add(new AssemblyCatalog(assembly));
            // ReSharper disable once AssignNullToNotNullAttribute
            _compositionCatalog.Catalogs.Add(new DirectoryCatalog(folder, "*.dll"));

            _compositionContainer.ComposeExportedValue(_exportProvider);

            Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(_exportProvider));

            var tracer = _exportProvider.GetExportedValue <ITracer>();

            tracer.WriteLine("Started");

            tracer.WriteLine(ResXManager.Properties.Resources.IntroMessage);
            tracer.WriteLine(ResXManager.Properties.Resources.AssemblyLocation, folder);
            tracer.WriteLine(ResXManager.Properties.Resources.Version, new AssemblyName(assembly.FullName).Version ?? new Version());

            VisualComposition.Error += (_, args) => tracer.TraceError(args.Text);

            MainWindow = _exportProvider.GetExportedValue <MainWindow>();
            MainWindow.Show();
        }
        protected override void OnCreate()
        {
            base.OnCreate();

            try
            {
                _tracer.WriteLine(Resources.IntroMessage);

                var view = _compositionHost.GetExportedValue <VsixShellView>();
                view.Loaded     += View_Loaded;
                view.DataContext = _compositionHost.GetExportedValue <VsixShellViewModel>();
                // ReSharper disable once PossibleNullReferenceException
                view.Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(_compositionHost.Container));

                var executingAssembly = Assembly.GetExecutingAssembly();
                var folder            = Path.GetDirectoryName(executingAssembly.Location);

                _tracer.WriteLine(Resources.AssemblyLocation, folder);
                _tracer.WriteLine(Resources.Version, new AssemblyName(executingAssembly.FullName).Version);

                EventManager.RegisterClassHandler(typeof(VsixShellView), ButtonBase.ClickEvent, new RoutedEventHandler(Navigate_Click));

                // This is the user control hosted by the tool window; Note that, even if this class implements IDisposable,
                // we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on
                // the object returned by the Content property.
                Content = view;

                Dte.SetFontSize(view);
            }
            catch (Exception ex)
            {
                _tracer.TraceError("MyToolWindow OnCreate failed: " + ex);
                MessageBox.Show(string.Format(CultureInfo.CurrentCulture, Resources.ExtensionLoadingError, ex.Message));
            }
        }
Exemplo n.º 8
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            var assembly = GetType().Assembly;

            _kernel.BindExports(assembly,
                                typeof(Infrastructure.Properties.AssemblyKey).Assembly,
                                typeof(Model.Properties.AssemblyKey).Assembly,
                                typeof(Translators.Properties.AssemblyKey).Assembly,
                                typeof(View.Properties.AssemblyKey).Assembly);

            IExportProvider exportProvider = new ExportProvider(_kernel);

            _kernel.Bind <IExportProvider>().ToConstant(exportProvider);

            Resources.MergedDictionaries.Add(TomsToolbox.Wpf.Styles.WpfStyles.GetDefaultStyles());
            Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(exportProvider));

            exportProvider.GetExportedValues <IService>().ForEach(service => service.Start());

            var tracer = exportProvider.GetExportedValue <ITracer>();

            tracer.WriteLine("Started");
            tracer.WriteLine(ResXManager.Properties.Resources.IntroMessage);
            tracer.WriteLine(ResXManager.Properties.Resources.AssemblyLocation, Path.GetDirectoryName(assembly.Location) ?? "unknown");
            tracer.WriteLine(ResXManager.Properties.Resources.Version, new AssemblyName(assembly.FullName).Version ?? new Version());

            VisualComposition.Error += (_, args) => tracer.TraceError(args.Text);

            MainWindow = exportProvider.GetExportedValue <MainWindow>();
            MainWindow.Show();
        }
Exemplo n.º 9
0
        protected override void OnStartup([NotNull] StartupEventArgs e)
        {
            base.OnStartup(e);

            var assembly = GetType().Assembly;
            var folder   = Path.GetDirectoryName(assembly.Location);

#pragma warning disable CA2000 // Dispose objects before losing scope => AggregateCatalog will dispose all
            _compositionCatalog.Catalogs.Add(new AssemblyCatalog(assembly));
            _compositionCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Infrastructure.Properties.AssemblyKey).Assembly));
            _compositionCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Model.Properties.AssemblyKey).Assembly));
            _compositionCatalog.Catalogs.Add(new AssemblyCatalog(typeof(Translators.Properties.AssemblyKey).Assembly));
            _compositionCatalog.Catalogs.Add(new AssemblyCatalog(typeof(View.Properties.AssemblyKey).Assembly));
#pragma warning restore CA2000 // Dispose objects before losing scope

            _compositionContainer.ComposeExportedValue(_exportProvider);

            Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(_exportProvider));

            _compositionContainer.GetExportedValues <IService>().ForEach(service => service.Start());

            var tracer = _exportProvider.GetExportedValue <ITracer>();
            tracer.WriteLine("Started");

            tracer.WriteLine(ResXManager.Properties.Resources.IntroMessage);
            tracer.WriteLine(ResXManager.Properties.Resources.AssemblyLocation, folder ?? "unknown");
            tracer.WriteLine(ResXManager.Properties.Resources.Version, new AssemblyName(assembly.FullName).Version ?? new Version());

            VisualComposition.Error += (_, args) => tracer.TraceError(args.Text);

            MainWindow = _exportProvider.GetExportedValue <MainWindow>();
            MainWindow.Show();
        }
Exemplo n.º 10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ToolWindowShell"/> class.
        /// </summary>
        public ToolWindowShell(IExportProvider exportProvider)
        {
            this.SetExportProvider(exportProvider);

            InitializeComponent();

            Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(exportProvider));
            Resources.MergedDictionaries.Insert(0, WpfStyles.GetDefaultStyles());
        }
Exemplo n.º 11
0
        public VsixShellView(IExportProvider exportProvider, ThemeManager themeManager, IVsixShellViewModel viewModel)
        {
            _themeManager = themeManager;

            try
            {
                this.SetExportProvider(exportProvider);

                InitializeComponent();

                DataContext = viewModel;
                Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(exportProvider));
            }
            catch (Exception ex)
            {
                exportProvider.TraceXamlLoaderError(ex);
            }
        }
Exemplo n.º 12
0
        protected override void OnCreate()
        {
            try
            {
                base.OnCreate();

                var view = _compositionHost.GetExportedValue <ShellView>();
                view.Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(_compositionHost.Container));

                EventManager.RegisterClassHandler(typeof(ShellView), ButtonBase.ClickEvent, new RoutedEventHandler(Navigate_Click));

                Content = view;
            }
            catch (Exception ex)
            {
                _tracer.TraceError(ex);
            }
        }
        public VsixShellView([NotNull] ExportProvider exportProvider, [NotNull] ThemeManager themeManager, VsixShellViewModel viewModel)
        {
            Contract.Requires(exportProvider != null);
            Contract.Requires(themeManager != null);

            _themeManager = themeManager;

            try
            {
                this.SetExportProvider(exportProvider);

                InitializeComponent();

                DataContext = viewModel;
                Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(exportProvider));
            }
            catch (Exception ex)
            {
                exportProvider.TraceError(ex.ToString());

                var path = Path.GetDirectoryName(GetType().Assembly.Location);
                Contract.Assume(!string.IsNullOrEmpty(path));

                var assemblyFileNames = Directory.EnumerateFiles(path, @"*.dll")
                                        .Where(file => !"DocumentFormat.OpenXml.dll".Equals(Path.GetFileName(file), StringComparison.OrdinalIgnoreCase))
                                        .ToArray();

                var assemblyNames = new HashSet <string>(assemblyFileNames.Select(Path.GetFileNameWithoutExtension));

                var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();

                var messages = loadedAssemblies
                               .Where(a => assemblyNames.Contains(a.GetName().Name))
                               .Select(assembly => string.Format(CultureInfo.CurrentCulture, "Assembly '{0}' loaded from {1}", assembly.FullName, assembly.CodeBase))
                               .OrderBy(text => text, StringComparer.OrdinalIgnoreCase)
                               .ToArray();

                foreach (var message in messages)
                {
                    exportProvider.WriteLine(message);
                }
            }
        }
Exemplo n.º 14
0
        protected override void OnStartup([CanBeNull] StartupEventArgs e)
        {
            base.OnStartup(e);

            VisualComposition.Trace += (sender, args) => Trace.WriteLine(args.Text);
            BindingErrorTracer.Start(BindingErrorCallback);

            _diAdapter = new DIAdapter();

            var exportProvider = _diAdapter.Initialize();

            Resources.MergedDictionaries.Insert(0, WpfStyles.GetDefaultStyles().RegisterDefaultWindowStyle());
            Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(exportProvider));

            var mainWindow = exportProvider.GetExportedValue <MainWindow>();

            MainWindow = mainWindow;

            mainWindow.Show();
        }
        public static bool?Show(ExportProvider exportProvider, object content, string title)
        {
            var window = new Window
            {
                WindowStartupLocation = WindowStartupLocation.CenterOwner,
                Owner         = Application.Current?.MainWindow,
                Title         = title,
                ResizeMode    = ResizeMode.NoResize,
                WindowStyle   = WindowStyle.SingleBorderWindow,
                SizeToContent = SizeToContent.WidthAndHeight,
            };

            window.SetExportProvider(exportProvider);
            window.Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(exportProvider));
            window.SetResourceReference(StyleProperty, Styles.ResourceKeys.WindowStyle);
            window.Content = new ConfirmationDialog {
                Content = content
            };

            return(window.ShowDialog());
        }
        public static bool?Show([NotNull] IExportProvider exportProvider, [CanBeNull] object content, [CanBeNull] string title, [CanBeNull] Window owner)
        {
            var window = new Window
            {
                WindowStartupLocation = WindowStartupLocation.CenterOwner,
                Owner         = owner ?? Application.Current?.MainWindow,
                Title         = title,
                ResizeMode    = ResizeMode.NoResize,
                WindowStyle   = WindowStyle.SingleBorderWindow,
                SizeToContent = SizeToContent.WidthAndHeight,
                Icon          = new BitmapImage(new Uri("pack://application:,,,/ResXManager.View;component/16x16.png"))
            };

            window.SetExportProvider(exportProvider);
            window.Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(exportProvider));
            window.SetResourceReference(StyleProperty, TomsToolbox.Wpf.Composition.Styles.ResourceKeys.WindowStyle);
            window.Content = new ConfirmationDialog {
                Content = content
            };

            return(window.ShowDialog());
        }
Exemplo n.º 17
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            var path = Path.GetDirectoryName(GetType().Assembly.Location);

            Contract.Assume(!string.IsNullOrEmpty(path));

            _compositionHost.AddCatalog(GetType().Assembly);
            _compositionHost.AddCatalog(new DirectoryCatalog(path, "*.dll"));

            Resources.MergedDictionaries.Add(DataTemplateManager.CreateDynamicDataTemplates(_compositionHost.Container));

            var tracer = _compositionHost.GetExportedValue <ITracer>();

            tracer.WriteLine("Started");

            VisualComposition.Error += (_, args) => tracer.TraceError(args.Text);

            MainWindow = _compositionHost.GetExportedValue <MainWindow>();
            MainWindow.Show();
        }
Exemplo n.º 18
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            BindingErrorTracer.Start(BindingErrorCallback);

            var context = new RegistrationBuilder();

            // Visuals can't be singletons:
            context.ForTypesDerivedFrom <FrameworkElement>()?.SetCreationPolicy(CreationPolicy.NonShared);
            // To demonstrate the ImportExtension with value converters.
            context.ForTypesDerivedFrom <IValueConverter>()?.Export();
            _compositionHost.AddCatalog(new ApplicationCatalog(context));

            var dataTemplateResources = DataTemplateManager.CreateDynamicDataTemplates(_compositionHost.Container);

            Resources.MergedDictionaries.Add(dataTemplateResources);

            Resources.MergedDictionaries.Insert(0, WpfStyles.Defaults());

            MainWindow = _compositionHost.GetExportedValue <MainWindow>();
            MainWindow.Show();
        }