public static async Task InitializeAsync(IDocumentHistoryQueries documentHistoryQueries,
                                                 IHistoryCommand reopenLastClosdCommand,
                                                 IHistoryCommandFactory reopenSomeDocumentsCommandFactory,
                                                 IHistoryCommandFactory removeSomeDocumentsCommandFactory,
                                                 IHistoryCommand clearHistoryCommand,
                                                 IFileExtensionIconResolver fileExtensionIconResolver,
                                                 IHistoryToolWindowRepositoryFactory historyToolWindowRepositoryFactory)
        {
            ContentWindow = new ClosedDocumentsHistoryControl(documentHistoryQueries,
                                                              reopenLastClosdCommand,
                                                              reopenSomeDocumentsCommandFactory,
                                                              removeSomeDocumentsCommandFactory,
                                                              clearHistoryCommand,
                                                              fileExtensionIconResolver,
                                                              historyToolWindowRepositoryFactory);

            await Task.CompletedTask;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ClosedDocumentsHistoryControl"/> class.
        /// </summary>
        public ClosedDocumentsHistoryControl(IDocumentHistoryQueries documentHistoryQueries,
                                             IHistoryCommand reopenLastClosdCommand,
                                             IHistoryCommandFactory reopenSomeDocumentsCommandFactory,
                                             IHistoryCommandFactory removeSomeDocumentsCommandFactory,
                                             IHistoryCommand clearHistoryCommand,
                                             IFileExtensionIconResolver fileExtensionIconResolver,
                                             IHistoryToolWindowRepositoryFactory historyToolWindowRepositoryFactory)
        {
            InitializeComponent();

            _documentHistoryQueries            = documentHistoryQueries;
            _reopenLastClosdCommand            = reopenLastClosdCommand;
            _reopenSomeDocumentsCommandFactory = reopenSomeDocumentsCommandFactory;
            _removeSomeDocumentsCommandFactory = removeSomeDocumentsCommandFactory;
            _clearHistoryCommand                = clearHistoryCommand;
            _fileExtensionIconResolver          = fileExtensionIconResolver;
            _historyToolWindowRepositoryFactory = historyToolWindowRepositoryFactory;

            var openState = new ButtonDisabledState(_openSelected,
                                                    new Image()
            {
                Source = WpfImageSourceConverter.CreateBitmapSource(VSDocumentReopen.Resources.OpenFile_16x)
            },
                                                    new Image()
            {
                Source = WpfImageSourceConverter.CreateBitmapSource(VSDocumentReopen.Resources.OpenFile_16x_Gray)
            });

            openState.Disable();

            var removeState = new ButtonDisabledState(_removeSelected,
                                                      new Image()
            {
                Source = WpfImageSourceConverter.CreateBitmapSource(VSDocumentReopen.Resources.RemoveGuide_16x)
            },
                                                      new Image()
            {
                Source = WpfImageSourceConverter.CreateBitmapSource(VSDocumentReopen.Resources.RemoveGuide_16x_Gray)
            });

            removeState.Disable();

            var removeNonExistingState = new ButtonDisabledState(_removeNonExisting,
                                                                 new Image()
            {
                Source = WpfImageSourceConverter.CreateBitmapSource(VSDocumentReopen.Resources.RemoveNonExisting_16x)
            },
                                                                 new Image()
            {
                Source = WpfImageSourceConverter.CreateBitmapSource(VSDocumentReopen.Resources.RemoveNonExisting_16x_Gray)
            });

            removeNonExistingState.Disable();

            var clearState = new ButtonDisabledState(_clearAll,
                                                     new Image()
            {
                Source = WpfImageSourceConverter.CreateBitmapSource(VSDocumentReopen.Resources.ClearWindowContent_16x)
            },
                                                     new Image()
            {
                Source = WpfImageSourceConverter.CreateBitmapSource(VSDocumentReopen.Resources.ClearWindowContent_16x_Gray)
            });

            clearState.Disable();

            _documentHistoryQueries.HistoryChanged += DocumentHistoryChanged;
            UpdateHistoryView(GetFullHistory);

            _listView.Focus();
            var customizationSettings = LoadCustomizationSettings();

            _columnHeaders = Enumerable.Range(0, _listViewContect.Columns.Count).ToDictionary(i => i++,
                                                                                              i => _listViewContect.Columns[i].GetGridViewHeaderText());

            AddContextMenu(customizationSettings);
            HandleColumnsStatus(customizationSettings);
        }