Exemplo n.º 1
0
        private void diagramManager_DiagramClosed(object sender, DiagramClosedEventArgs e)
        {
            _settings.RecentFiles.Add(e.Diagram.File);

            _settings.OpenFiles
            .FirstOrNone(file => FileComparer.Equals(file, e.Diagram.File))
            .Apply(file => _settings.OpenFiles.Remove(file));
        }
Exemplo n.º 2
0
 void diagramIO_DiagramFileDeleted(object sender, DiagramFileDeletedEventArgs e)
 {
     Task.Factory.StartNew(() =>
                           PreviewDiagrams.FirstOrNone(pd => FileComparer.Equals(pd.Diagram.File, e.DeletedDiagramFile)).Apply(existingPreview =>
     {
         OnDiagramDeleted(existingPreview.Diagram);
         PreviewDiagrams.Remove(existingPreview);
     }), CancellationToken.None, TaskCreationOptions.None, _uiScheduler);
 }
Exemplo n.º 3
0
 public bool Equals(ReferenceItem other)
 {
     if (other == null)
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(Reference == other.Reference &&
            FileComparer.Equals(File, other.File) &&
            FileComparer.Equals(ReportedBy, other.ReportedBy));
 }
Exemplo n.º 4
0
        private async Task AddNewDiagramAsync(Uri newDiagramUri)
        {
            string newFilePath = newDiagramUri.LocalPath;

            if (String.IsNullOrEmpty(Path.GetExtension(newFilePath)))
            {
                newFilePath += FileExtension;
            }

            var newDiagram = new Diagram
            {
                File    = new FileInfo(newFilePath),
                Content = String.Format(NewDiagramTemplate, Path.GetFileNameWithoutExtension(newFilePath) + ".png")
            };

            _diagramLocation.Value = new DirectoryInfo(Path.GetDirectoryName(newFilePath));

            var progress = _notifications.StartProgress(false);

            try
            {
                await _diagramIO.SaveAsync(newDiagram, false);

                var refreshedDiagram = await _diagramIO.ReadAsync(newDiagram.File);

                var preview = PreviewDiagrams.SingleOrDefault(p => FileComparer.Equals(p.Diagram.File, refreshedDiagram.File));
                if (preview == null)
                {
                    preview = _previewDiagramFactory(refreshedDiagram);
                    PreviewDiagrams.Add(preview);
                }

                CurrentPreviewDiagram = preview;
                OnOpenPreviewRequested(preview);

                progress.Report(ProgressUpdate.Completed(string.Empty));
            }
            catch (Exception e)
            {
                progress.Report(ProgressUpdate.Failed(e));
            }
        }
Exemplo n.º 5
0
        /// <see cref="IDiagramExplorer.OpenDiagramAsync"/>
        public async Task <Diagram> OpenDiagramAsync(Uri diagramPath)
        {
            var fileToOpen = new FileInfo(diagramPath.LocalPath);

            Diagram diagram;
            var     preview = PreviewDiagrams.SingleOrDefault(p => FileComparer.Equals(p.Diagram.File, fileToOpen));

            if (preview == null)
            {
                diagram = await _diagramIO.ReadAsync(fileToOpen);

                preview = _previewDiagramFactory(diagram);
            }
            else
            {
                diagram = preview.Diagram;
            }

            OnOpenPreviewRequested(preview);
            return(diagram);
        }