protected override void OnSetReadOnly(ReadOnlyStateTag previousState, ReadOnlyStateTag newState) { this.EnsureChangeToPermanentReadOnly(newState: newState); // base.OnSetReadOnly(previousState: previousState, newState: newState); // IReadOnlyScope metadataAsReadOnlyScope = ReadDA(ref _metadataLink, considerDisposeRequest: true)?.Target.Value; metadataAsReadOnlyScope?.SetReadOnly(isReadOnly: newState.IsReadOnly, isPermanent: newState.IsPermanent); }
protected override void OnSetReadOnly(ReadOnlyStateTag previousState, ReadOnlyStateTag newState) { this.EnsureChangeToPermanentReadOnly(newState: newState); // base.OnSetReadOnly(previousState, newState); // if (newState.IsReadOnly) { WriteDA(location: ref _dependencyTarget, value: ReadDA(ref _dependencyTarget)?.AsReadOnly()); } }
protected override void OnSetReadOnly(ReadOnlyStateTag previousState, ReadOnlyStateTag newState) { this.EnsureChangeToPermanentReadOnly(newState); // base.OnSetReadOnly(previousState, newState); // if (newState.IsReadOnly) { ReadDA(ref _bindings).Update((bindings, i) => WriteDA(ref bindings[i], bindings[i]?.AsReadOnly())); } }
protected override void OnSetReadOnly(ReadOnlyStateTag previousState, ReadOnlyStateTag newState) { this.EnsureChangeToPermanentReadOnly(newState: newState); // base.OnSetReadOnly(previousState, newState); // if (newState.IsReadOnly) { WriteDA(ref _settings, ReadDA(ref _settings)?.AsReadOnly()); } }
protected MetadataTreeElementBase(IMetadataTreeNode node, ReadOnlyStateTag readOnlyState = default(ReadOnlyStateTag)) : base(readOnlyState: readOnlyState) { // if (node is null) { _nodeLink = null; } else { var nodeLink = _nodeLink = new Link <IMetadataTreeNode, IMetadataTreeElement>(source: node, target: this); node.SetMetadataElement(nodeLink); } }
protected override void OnSetReadOnly(ReadOnlyStateTag previousState, ReadOnlyStateTag newState) { this.EnsureChangeToPermanentReadOnly(newState: newState); // base.OnSetReadOnly(previousState, newState); // IReadOnlyScope metadataElementAsReadOnlyScope = ReadDA(ref _metadataElement, considerDisposeRequest: true); metadataElementAsReadOnlyScope?.SetReadOnly(isReadOnly: newState.IsReadOnly, isPermanent: newState.IsPermanent); // foreach (var childNode in EnumerateDA(ReadDA(ref _children, considerDisposeRequest: true), considerDisposeRequest: true).OfType <IReadOnlyScope>()) { childNode.SetReadOnly(isReadOnly: newState.IsReadOnly, isPermanent: newState.IsPermanent); } // foreach (var inclusion in EnumerateDA(ReadDA(ref _inclusions, considerDisposeRequest: true), considerDisposeRequest: true).OfType <IReadOnlyScope>()) { inclusion.SetReadOnly(isReadOnly: newState.IsReadOnly, isPermanent: newState.IsPermanent); } }
IMetadataTreeElement IMetadataTreeElement.CreateCopy(ReadOnlyStateTag readOnlyState) => CreateCopy(null, readOnlyState: readOnlyState);
public new MetadataTreeNodeInclusionBase CreateCopy(ReadOnlyStateTag readOnlyState = null) => (MetadataTreeNodeInclusionBase)base.CreateCopy(readOnlyState: readOnlyState);
IMetadata IMetadata.CreateCopy(ReadOnlyStateTag readOnlyState) => CreateCopy(element: null, readOnlyState: readOnlyState);
IMetadata IMetadata.CreateCopy(IMetadataTreeElement element, ReadOnlyStateTag readOnlyState) => CreateCopy(element: element, readOnlyState: readOnlyState);
public CopyArgs(IMetadataTreeElement element, ReadOnlyStateTag readOnlyState) : base(readOnlyState: readOnlyState) { Element = element; }
public MetadataFileInclusionTreeElement(IMetadataTreeNode node, ReadOnlyStateTag readOnlyState = default) : base(node: node, readOnlyState: readOnlyState) { }
protected MetadataTreeStructureComponentBase(string caption = default(string), ReadOnlyStateTag readOnlyState = null) : base(readOnlyState: readOnlyState) { _caption = caption; _parentLink = null; }
public MetadataTreeNode(IMetadataTreeNode parent, string caption = null, IMetadataTreeElement metadataElement = default, ReadOnlyStateTag readOnlyState = default) : base(caption : caption, readOnlyState : readOnlyState) { // _children = new MetadataTreeNodeContainer(this); _inclusions = new MetadataTreeNodeInclusionContainer(this); // if (metadataElement != null) { SetMetadataElement(link: new Link <MetadataTreeNode, IMetadataTreeElement>(this, metadataElement)); } if (parent != null) { parent.Children.AddComponent(this); } }
public MetadataTreeNode(string caption = null, IMetadataTreeElement metadataElement = null, ReadOnlyStateTag readOnlyState = null) : this(parent : null, caption : caption, metadataElement : metadataElement, readOnlyState : readOnlyState) { }
IMetadataTreeNode IMetadataTreeNode.CreateCopy(ReadOnlyStateTag readOnlyState) => CreateCopy(readOnlyState: readOnlyState);
public new MetadataTreeNode CreateCopy(ReadOnlyStateTag readOnlyState = null) => (MetadataTreeNode)CreateCopy(new CopyArgs(readOnlyState));
protected MetadataTreeElementBase(ReadOnlyStateTag readOnlyState = default(ReadOnlyStateTag)) : this(node : null, readOnlyState : readOnlyState) { }
public EmbeddedMetadataTreeElement(IMetadataTreeNode node, IMetadata embeddedMetadata, bool ownsEmbeddedMetadata, bool linkEmbeddedMetadata = false, ReadOnlyStateTag readOnlyState = null) : base(node: node, readOnlyState: readOnlyState) { // embeddedMetadata.EnsureNotNull(nameof(embeddedMetadata)); // _embeddedMetadata = embeddedMetadata.ToValueHolder(ownsEmbeddedMetadata); // if (linkEmbeddedMetadata) { SetMetadata(new Link <IMetadataTreeElement, IVh <IMetadata> >(this, embeddedMetadata.ToValueHolder())); } }
public MetadataFileInclusionTreeElement(ReadOnlyStateTag readOnlyState = default) : this(node : null, readOnlyState : readOnlyState) { }
public EmbeddedMetadataTreeElement(IMetadata embeddedMetadata, bool ownsEmbeddedMetadata, bool linkEmbeddedMetadata = default, ReadOnlyStateTag readOnlyState = default) : this(node : null, embeddedMetadata : embeddedMetadata, ownsEmbeddedMetadata : ownsEmbeddedMetadata, linkEmbeddedMetadata : linkEmbeddedMetadata, readOnlyState : readOnlyState) { }
public MetadataBase CreateCopy(IMetadataTreeElement element, ReadOnlyStateTag readOnlyState = default) => (MetadataBase)CreateCopy(copyArgs: new CopyArgs(element: element, readOnlyState: readOnlyState));
public CopyArgs(IMetadataTreeNode node, ReadOnlyStateTag readOnlyState) : base(readOnlyState) { Node = node; }
public new MetadataBase CreateCopy(ReadOnlyStateTag readOnlyState = default) => CreateCopy(element: null, readOnlyState: readOnlyState);
/// <summary> /// Создает копию данного элемента, связывая копию с указанным узлом дерева метаданных. /// <para>Связь данного элемента с объектом метаданных (<seealso cref="MetadataLink"/>) не копируется.</para> /// </summary> /// <param name="node">Узел дерева метаданных, с которым в копии будет установлена связь.</param> /// <param name="readOnlyState">Состояние доступности редактировании копии.</param> /// <returns>Объект <see cref="MetadataTreeElementBase"/>.</returns> public MetadataTreeElementBase CreateCopy(IMetadataTreeNode node, ReadOnlyStateTag readOnlyState = null) => (MetadataTreeElementBase)CreateCopy(new CopyArgs(node, readOnlyState));
IMetadataTreeElement IMetadataTreeElement.CreateCopy(IMetadataTreeNode node, ReadOnlyStateTag readOnlyState) => CreateCopy(node, readOnlyState: readOnlyState);
/// <summary> /// Создает копию данного элемента. /// <para>Связь данного элемента с объектом метаданных (<seealso cref="MetadataLink"/>) не копируется.</para> /// </summary> /// <param name="readOnlyState">Состояние доступности редактировании копии.</param> /// <returns>Объект <see cref="MetadataTreeElementBase"/>.</returns> public new MetadataTreeElementBase CreateCopy(ReadOnlyStateTag readOnlyState = default(ReadOnlyStateTag)) => CreateCopy(null, readOnlyState: readOnlyState);
IMetadataTreeNodeInclusion IMetadataTreeNodeInclusion.CreateCopy(ReadOnlyStateTag readOnlyState) => CreateCopy(readOnlyState: readOnlyState);
protected MetadataInclusionTreeElementBase(IMetadataTreeNode node, ReadOnlyStateTag readOnlyState = default(ReadOnlyStateTag)) : base(node: node, readOnlyState: readOnlyState) { }