private void Add(DocumentMetadataInfo info, bool isPinned)
        {
            var metadata = _activeDocumentMetadata.FirstOrDefault(m =>
                                                                  _metadataEqualityService.Compare(info, m));

            var exists = metadata != null;

            if (!exists)
            {
                metadata = _documentMetadataFactory.Create(info);
                _activeDocumentMetadata.Add(metadata);
            }

            metadata.HasWindow = !isPinned || exists;

            if (isPinned)
            {
                TogglePinnedStatus(metadata);
            }

            if (!isPinned || !exists)
            {
                ActiveDocumentMetadata.Refresh();
            }
        }
        /// <summary>
        /// Adds the provided name to <see cref="ActiveDocumentMetadata"/> if
        /// not already present. Does nothing otherwise.
        /// </summary>
        /// <param name="info">
        /// Information about the document's full name and containing project
        /// </param>
        public void Add(DocumentMetadataInfo info)
        {
            var metadataExists = _activeDocumentMetadata.Any(m =>
                                                             _documentMetadataEqualityService.Compare(info, m));

            if (!metadataExists)
            {
                var metadata = _documentMetadataFactory.Create(info);
                _activeDocumentMetadata.Add(metadata);
            }
        }
Beispiel #3
0
        public void Execute(object parameter)
        {
            var metadata = parameter as DocumentMetadata;

            if (metadata == null)
            {
                return;
            }

            Window window = null;

            foreach (var itm in _dte2.Documents)
            {
                var document = (Document)itm;

                var match = _metadataEqualityService.Compare(
                    document.FullName,
                    metadata.FullName);

                if (match)
                {
                    var enumerator = document.Windows.GetEnumerator();
                    if (enumerator.MoveNext())
                    {
                        window = (Window)enumerator.Current;
                    }

                    break;
                }
            }

            if (window == null)
            {
                var item = _projectItemService.FindProjectItem(metadata.FullName);
                window = item?.Open();
            }

            if (window == null)
            {
                _documentMetadataManager.Synchronize(_dte2.Documents, true);
            }
            else
            {
                window.Activate();
            }
        }
        public void Execute(object parameter)
        {
            var metadata = parameter as DocumentMetadata;

            if (metadata == null)
            {
                return;
            }

            foreach (var itm in _dte2.Documents)
            {
                var document = (Document)itm;

                var match = _metadataEqualityService.Compare(
                    document.FullName,
                    metadata.FullName);

                if (match)
                {
                    document.Close();
                    break;
                }
            }
        }