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); } }
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; } } }