示例#1
0
    private UIComponentNode AddDefinition(IUIComponentDefinition definition)
    {
        var node = GetOrAddNode(definition.Name);

        node.SetDefinition(definition);
        return(node);
    }
示例#2
0
    public IDisposable Add(IUIComponentDefinition definition)
    {
        var node = AddDefinition(definition);

        return(Disposable.Create(() =>
        {
            node.definition?.Dispose();
            node.definition = default;
        }));
    }
示例#3
0
    public IDisposable Add(UIComponentLocation location, IUIComponentDefinition definition)
    {
        var node = GetNode(location);

        node.AddDefinition(definition);

        return(Disposable.Create(() =>
        {
            node.definition?.Dispose();
            node.definition = default;
        }));
    }
示例#4
0
    private void SetDefinition(IUIComponentDefinition definition)
    {
        if (this.definition is null)
        {
            this.definition = definition;
            if (children is not null)
            {
                foreach (var item in children.Values.Where(n => n.definition is not null))
                {
                    item.definition !.OnParentDefined(definition);
                }
            }

            options?.ForEach(o => o(definition));

            definition.UpdateBindings(graph.ComponentContext);
        }

        foreach (var item in definition.Items)
        {
            GetOrAddNode(item.Name).SetDefinition(item);
        }
    }
示例#5
0
 void IUIComponentDefinition.OnParentDefined(IUIComponentDefinition parent)
 {
 }
示例#6
0
 void IUIComponentDefinition.OnParentDefined(IUIComponentDefinition parent)
 => ((ToolBarDefinition)parent).Add(this);
示例#7
0
 void IUIComponentDefinition.OnParentDefined(IUIComponentDefinition parent)
 => ((IUIComponentDefinition <MenuItemDefinition>)parent).Add(this);