private static void ConvertLayoutTypes(TypeVisualiserLayoutFile oldDiagram, Persistence.CanvasLayoutData canvasLayoutv105) { foreach (TypeLayoutData oldType in oldDiagram.ViewportSaveData.CanvasLayout.Types) { TypeLayoutData copyOfOldType = oldType; AssociationData association = oldDiagram.ViewportSaveData.Subject.Associations.FirstOrDefault(x => x.AssociatedTo.Id == copyOfOldType.Id); if (association == null) { if (oldDiagram.ViewportSaveData.Subject.Implements != null) { association = oldDiagram.ViewportSaveData.Subject.Implements.FirstOrDefault(x => x.AssociatedTo.Id == oldType.Id); } if (association == null && oldDiagram.ViewportSaveData.Subject.Parent != null) { association = oldDiagram.ViewportSaveData.Subject.Parent.AssociatedTo.Id == oldType.Id ? oldDiagram.ViewportSaveData.Subject.Parent : null; } } if (association == null) { throw new NotSupportedException("Association Id " + oldType.Id + " not found in the Subject's data. Cannot deserialise from this data."); } var newType = new Persistence.TypeLayoutData { Id = oldType.Id.ToString(), TopLeft = oldType.TopLeft, Visible = oldType.Visible, ContentType = association.GetType().FullName, }; canvasLayoutv105.Types.Add(newType); } }
public static Persistence.TypeVisualiserLayoutFile Adapt(TypeVisualiserLayoutFile oldDiagram) { if (oldDiagram == null) { throw new ArgumentNullResourceException("oldDiagram", Resources.General_Given_Parameter_Cannot_Be_Null); } var diagramv105 = new Persistence.TypeVisualiserLayoutFile { AssemblyFileName = oldDiagram.AssemblyFileName, AssemblyFullName = oldDiagram.AssemblyFullName, FileVersion = oldDiagram.FileVersion, HideParents = oldDiagram.HideParents, HideTrivialTypes = oldDiagram.HideTrivialTypes, }; var subjectv105 = new Persistence.VisualisableTypeSubjectData(); CloningTools.ReflectionCopy(oldDiagram.ViewportSaveData.Subject, subjectv105); diagramv105.Subject = subjectv105; var canvasLayoutv105 = new Persistence.CanvasLayoutData(); canvasLayoutv105.Types.Add(new Persistence.TypeLayoutData { ContentType = typeof(SubjectAssociation).FullName, Id = oldDiagram.ViewportSaveData.Subject.Id.ToString(), TopLeft = oldDiagram.ViewportSaveData.CanvasLayout.Subject.TopLeft, Visible = oldDiagram.ViewportSaveData.CanvasLayout.Subject.Visible, }); ConvertLayoutTypes(oldDiagram, canvasLayoutv105); ConvertLayoutAnnotations(oldDiagram, canvasLayoutv105); diagramv105.CanvasLayout = canvasLayoutv105; return diagramv105; }
private static void ConvertLayoutAnnotations(TypeVisualiserLayoutFile oldDiagram, Persistence.CanvasLayoutData canvasLayoutv105) { foreach (AnnotationData oldAnnotation in oldDiagram.ViewportSaveData.CanvasLayout.Annotations) { canvasLayoutv105.Types.Add(new Persistence.TypeLayoutData { ContentType = typeof(Persistence.AnnotationData).FullName, Id = oldAnnotation.Id.ToString(), TopLeft = oldAnnotation.TopLeft, Visible = oldAnnotation.Show, Data = oldAnnotation.Text, }); } }