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; }
public NamespaceViewModel(DocumentIdViewModel id, DocumentUriViewModel uri, TitlesViewModel titles, SyntaxViewModel syntax, CommentViewModel comment) : base(id, uri, titles, syntax, comment, null, null) { }
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); }
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); }
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)); }
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; }
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); } }
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; }