Beispiel #1
0
 public DataTypeViewModel(DocumentIdViewModel id,
                          DocumentUriViewModel uri,
                          TitlesViewModel titlesViewModel,
                          SyntaxViewModel syntaxViewModel,
                          DocumentReferenceViewModel @base,
                          LocationViewModel location,
                          InheritanceViewModel inheritance,
                          ParametersViewModel parameters,
                          ReturnsViewModel returns,
                          UxClassPropertiesViewModel uxProperties,
                          ValuesViewModel values,
                          CommentViewModel comment,
                          DocumentReferenceViewModel declaredIn,
                          ImplementedInterfacesViewModel implementedInterfaces,
                          AttributesViewModel attributes,
                          IEntity underlyingEntity)
     : base(id, uri, titlesViewModel, syntaxViewModel, comment, declaredIn, underlyingEntity)
 {
     Base                  = @base;
     Location              = location;
     Inheritance           = inheritance;
     Parameters            = parameters;
     Returns               = returns;
     UxProperties          = uxProperties;
     Values                = values;
     ImplementedInterfaces = implementedInterfaces;
     Attributes            = attributes;
 }
Beispiel #2
0
 public NamespaceViewModel(DocumentIdViewModel id,
                           DocumentUriViewModel uri,
                           TitlesViewModel titles,
                           SyntaxViewModel syntax,
                           CommentViewModel comment)
     : base(id, uri, titles, syntax, comment, null, null)
 {
 }
Beispiel #3
0
        void AddMemberToTarget(Member member, DataType parentDataType, HashSet <DocumentViewModel> target)
        {
            // If this is some kind of overridden member, try to resolve the original declaration as it's the one that's
            // interesting to us
            member = ResolveOriginalDeclaration(member);

            // NOTE: Instead of just using GetUri and GetId directly on the entity to generate the ID, we use the
            // signature variants of the uri/id methods instead and prefix it with the uri and id of the containing
            // data type.
            //
            // This is done to properly support flattening inherited members into the data exchange format used by the
            // compiler backend; while the ToString() method on a type that inherits from Uno.Object without overriding
            // ToString() directly will have the ToString() method listed when using the EnumerateFlattenedMethods()
            // extension method, that method will still belong to Uno.Object and not the type that inherited the method.
            //
            // The data structure requires the type to own its own inherited methods, hence we do it like this.
            var id  = parentDataType.GetUri() + "/" + member.GetUriSignature();
            var uri = GetMemberUri(member, parentDataType);

            var comment = _commentParser.Read(member);
            var ns      = parentDataType.FindNamespace();
            var titles  = new TitlesViewModel(Naming.GetPageTitle(member),
                                              Naming.GetIndexTitle(member),
                                              Naming.GetFullIndexTitle(member),
                                              Naming.GetNavigationTitle(member),
                                              member.FullName);
            var syntax       = new SyntaxViewModel(Syntax.BuildUnoSyntax(member, parentDataType), Syntax.BuildUxSyntax(member));
            var location     = new LocationViewModel(ns.FullName, ns.GetUri(), member.Source.Package.Name, member.Source.Package.Version);
            var declaredIn   = new DataTypeBuilder(Naming, Syntax, Exportable, AttachedMembers, _commentParser).BuildReference(member.DeclaringType);
            var parameters   = GetParameters(member);
            var returns      = GetReturns(member);
            var uxProperties = GetUxProperties(member);
            var values       = BuildValues(member);
            var flags        = BuildFlags(member);
            var attributes   = BuildAttributes(member);

            var type      = GetTypeName(member, comment, uxProperties);
            var isVirtual = uri == null;

            var viewModel = new MemberViewModel(new DocumentIdViewModel(id, parentDataType.GetUri(), type, member.GetModifierNames()),
                                                new DocumentUriViewModel(id, member.GetUri(), isVirtual),
                                                titles,
                                                syntax,
                                                location,
                                                declaredIn,
                                                parameters,
                                                returns,
                                                uxProperties,
                                                values,
                                                flags,
                                                new CommentViewModel(comment),
                                                attributes,
                                                member);

            target.AddIfNotExists(viewModel);
        }
Beispiel #4
0
        private void AddDataTypeToTarget(DataType dataType, DataType swizzlerParent, HashSet <DocumentViewModel> target)
        {
            var ns                    = dataType.FindNamespace();
            var titles                = BuildDataTypeTitles(dataType);
            var syntax                = new SyntaxViewModel(Syntax.BuildUnoSyntax(dataType), Syntax.BuildUxSyntax(dataType));
            var baseType              = BuildBaseType(dataType);
            var location              = new LocationViewModel(ns.FullName, ns.GetUri(), dataType.Source.Package.Name, dataType.Source.Package.Version);
            var uxProperties          = BuildUxProperties(dataType);
            var inheritance           = GetInheritance(dataType);
            var parameters            = GetParameters(dataType);
            var returns               = BuildReturns(dataType);
            var values                = BuildValues(dataType);
            var implementedInterfaces = BuildImplementedInterfaces(dataType);
            var attributes            = BuildAttributes(dataType);

            DocumentViewModel viewModel;

            if (swizzlerParent == null)
            {
                var comment = _commentParser.Read(dataType);
                var type    = GetTypeName(dataType, comment);

                var nsRef = new NamespaceBuilder(Naming, Syntax, Exportable, AttachedMembers, _commentParser).BuildReference(ns);
                viewModel = new DataTypeViewModel(new DocumentIdViewModel(dataType.GetUri(),
                                                                          dataType.Parent.GetUri(),
                                                                          type,
                                                                          dataType.GetModifierNames()),
                                                  new DocumentUriViewModel(dataType.GetUri(), dataType.GetUri(), false),
                                                  titles,
                                                  syntax,
                                                  baseType,
                                                  location,
                                                  inheritance,
                                                  parameters,
                                                  returns,
                                                  uxProperties,
                                                  values,
                                                  new CommentViewModel(comment),
                                                  nsRef,
                                                  implementedInterfaces,
                                                  attributes,
                                                  dataType);
            }
            else
            {
                var uri = swizzlerParent.GetUri() + "/" + dataType.GetUri().Replace("/", "_");
                viewModel = new SwizzlerTypeViewModel(new DocumentIdViewModel(uri, swizzlerParent.GetUri(), "SwizzlerType", dataType.GetModifierNames()),
                                                      new DocumentUriViewModel(uri, dataType.GetUri(), false),
                                                      titles,
                                                      null);
            }
            target.AddIfNotExists(viewModel);
        }
Beispiel #5
0
        void AddNamespaceToTarget(Namespace ns, HashSet <DocumentViewModel> target)
        {
            var titles = new TitlesViewModel(Naming.GetPageTitle(ns),
                                             Naming.GetIndexTitle(ns),
                                             Naming.GetFullIndexTitle(ns),
                                             Naming.GetNavigationTitle(ns),
                                             ns.QualifiedName);
            var syntax    = new SyntaxViewModel(Syntax.BuildUnoSyntax(ns), Syntax.BuildUxSyntax(ns));
            var parentUri = ns.ParentNamespace == null || ns.ParentNamespace.Name == ExportConstants.RootNamespaceName ? null : ns.ParentNamespace.GetUri();

            target.AddIfNotExists(new NamespaceViewModel(new DocumentIdViewModel(ns.GetUri(), parentUri, "Namespace", new List <string>()),
                                                         new DocumentUriViewModel(ns.GetUri(), ns.GetUri(), false),
                                                         titles,
                                                         syntax,
                                                         null));
        }
Beispiel #6
0
 protected DocumentViewModel(DocumentIdViewModel id,
                             DocumentUriViewModel uri,
                             TitlesViewModel titles,
                             SyntaxViewModel syntax,
                             CommentViewModel comment,
                             DocumentReferenceViewModel declaredIn,
                             IEntity underlyingEntity)
 {
     Id               = id;
     Uri              = uri;
     Titles           = titles;
     Syntax           = syntax;
     Comment          = comment;
     Reference        = new DocumentReferenceViewModel(id, uri, titles);
     DeclaredIn       = declaredIn;
     UnderlyingEntity = underlyingEntity;
 }
Beispiel #7
0
    private void SelectedItemChanged()
    {
        GeneratorDrawers.Clear();
        fileGenerators = null;

        SelectedNode = InvertGraphEditor.CurrentDiagramViewModel.SelectedGraphItem;

        if (SelectedNode == null)
        {
            return;
        }
        //Issues = SelectedNode.Issues.Any(p => p.Siverity == ValidatorType.Error);
        //if (Issues) return;
        var item = SelectedNode == null ? null : SelectedNode.DataObject;

        fileGenerators = InvertGraphEditor.GetAllFileGenerators(InvertApplication.Container.Resolve <IGraphConfiguration>(), new [] { item as IDataRecord }, true).ToArray();

        foreach (var fileGenerator in fileGenerators)
        {
            var list = fileGenerator.Generators.ToList();
            if (item != null)
            {
                list.RemoveAll(p => p.ObjectData != item);
            }
            fileGenerator.Generators = list.ToArray();
            if (fileGenerator.Generators.Length < 1)
            {
                continue;
            }

            var syntaxViewModel = new SyntaxViewModel(fileGenerator.ToString(), fileGenerator.Generators[0].Filename, 0);
            var syntaxDrawer    = new SyntaxDrawer(syntaxViewModel);

            GeneratorDrawers.Add(syntaxDrawer);
        }
    }
Beispiel #8
0
 public MemberViewModel(DocumentIdViewModel id,
                        DocumentUriViewModel uri,
                        TitlesViewModel titles,
                        SyntaxViewModel syntax,
                        LocationViewModel location,
                        DocumentReferenceViewModel declaredIn,
                        ParametersViewModel parameters,
                        ReturnsViewModel returns,
                        UxMemberPropertiesViewModel uxProperties,
                        ValuesViewModel values,
                        MemberFlagsViewModel flags,
                        CommentViewModel comment,
                        AttributesViewModel attributes,
                        IEntity underlyingEntity)
     : base(id, uri, titles, syntax, comment, declaredIn, underlyingEntity)
 {
     Location     = location;
     Parameters   = parameters;
     Returns      = returns;
     UxProperties = uxProperties;
     Flags        = flags;
     Values       = values;
     Attributes   = attributes;
 }