public void LoadProjectLayout(string filePath) { if (dockManagerLoaded) { try { XDocument d = XDocument.Load(filePath); List <Guid> diagramIds = new List <Guid>(); ExtractDiagramIds((XElement)d.FirstNode, diagramIds); Diagram diagram = null; foreach (Guid diagramId in diagramIds) { diagram = (Diagram)Current.Project.TranslateComponent(diagramId); DiagramTabManager.ActivateDiagram(diagram, false); } dockManager.RestoreLayout(filePath); if (diagram != null) { DiagramTabManager.ActivateDiagram(diagram, true); } } catch { } } }
public void CurrentProjectChanged(object sender, CurrentProjectChangedEventArgs e) { CloseProject(); if (e.NewProject != null) { if (e.NewProject.UsesVersioning) { foreach (ProjectVersion projectVersion in e.NewProject.ProjectVersions) { projectVersion.CreateDiagramsForSchemas(); } } else { e.NewProject.SingleVersion.CreateDiagramsForSchemas(); } BindProject(e.NewProject); if (e.NewProject.ProjectFile != null && e.NewProject.ProjectFile.Exists && File.Exists(UserFileForProjectFile(e.NewProject.ProjectFile.FullName))) { LoadProjectLayout(UserFileForProjectFile(e.NewProject.ProjectFile.FullName)); } else { if (Current.Project.LatestVersion.PIMDiagrams.Count > 0) { DiagramTabManager.ActivateDiagram(Current.Project.LatestVersion.PIMDiagrams[0]); } if (Current.Project.LatestVersion != null) { DiagramTabManager.OpenTabsForProjectVersion(Current.Project.LatestVersion); } } } Current.ExecutedCommand += ReportDisplay.ExecutedCommand; }