Exemplo n.º 1
0
        private void RemoveEditor(IDiagramEditor editor)
        {
            var diagram = editor.Diagram;

            editor.Closing -= diagramEditor_Closing;
            editor.Closed  -= diagramEditor_Closed;
            editor.Saved   -= diagramEditor_Saved;
            OpenDiagrams.Remove(editor);
            editor.Dispose();

            OnDiagramClosed(diagram);
        }
Exemplo n.º 2
0
        /// <see cref="IDiagramManager.Close"/>
        public void Close()
        {
            OnClosing();

            var unsavedOpenDiagrams = OpenDiagrams.Where(od => od.CodeEditor.IsModified).ToList();

            foreach (var openDiagram in unsavedOpenDiagrams)
            {
                openDiagram.Close();
            }

            Task.WaitAll(_editorSaveTasks.ToArray());
        }
Exemplo n.º 3
0
        /// <see cref="IDiagramManager.OpenDiagramForEdit"/>
        public void OpenDiagramForEdit(PreviewDiagramViewModel diagram)
        {
            if (diagram == null)
            {
                throw new ArgumentNullException(nameof(diagram));
            }

            OpenDiagram = OpenDiagrams.FirstOrNone(d => d.Diagram.Equals(diagram.Diagram)).GetOrElse(() =>
            {
                var newEditor          = _editorFactory(diagram.Diagram);
                newEditor.DiagramImage = diagram.ImagePreview;
                newEditor.Closing     += diagramEditor_Closing;
                newEditor.Closed      += diagramEditor_Closed;
                newEditor.Saved       += diagramEditor_Saved;
                OpenDiagrams.Add(newEditor);
                OnDiagramOpened(diagram.Diagram);
                return(newEditor);
            });
        }
Exemplo n.º 4
0
 /// <see cref="IDiagramManager.SaveAllAsync"/>
 public async Task SaveAllAsync()
 {
     await OpenDiagrams.Where(d => d.CanSave).Select(d => d.SaveAsync());
 }