Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
 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,
                                        });
     }
 }