Example #1
0
        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);
        }
Example #2
0
 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()));
     }
 }
Example #4
0
 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());
     }
 }
Example #5
0
 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);
     }
 }
Example #6
0
        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);
            }
        }
Example #7
0
 IMetadataTreeElement IMetadataTreeElement.CreateCopy(ReadOnlyStateTag readOnlyState)
 => CreateCopy(null, readOnlyState: readOnlyState);
Example #8
0
 public new MetadataTreeNodeInclusionBase CreateCopy(ReadOnlyStateTag readOnlyState = null)
 => (MetadataTreeNodeInclusionBase)base.CreateCopy(readOnlyState: readOnlyState);
Example #9
0
 IMetadata IMetadata.CreateCopy(ReadOnlyStateTag readOnlyState)
 => CreateCopy(element: null, readOnlyState: readOnlyState);
Example #10
0
 IMetadata IMetadata.CreateCopy(IMetadataTreeElement element, ReadOnlyStateTag readOnlyState)
 => CreateCopy(element: element, readOnlyState: readOnlyState);
Example #11
0
 public CopyArgs(IMetadataTreeElement element, ReadOnlyStateTag readOnlyState)
     : base(readOnlyState: readOnlyState)
 {
     Element = element;
 }
Example #12
0
 public MetadataFileInclusionTreeElement(IMetadataTreeNode node, ReadOnlyStateTag readOnlyState = default)
     : base(node: node, readOnlyState: readOnlyState)
 {
 }
Example #13
0
 protected MetadataTreeStructureComponentBase(string caption = default(string), ReadOnlyStateTag readOnlyState = null)
     : base(readOnlyState: readOnlyState)
 {
     _caption    = caption;
     _parentLink = null;
 }
Example #14
0
 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);
     }
 }
Example #15
0
 public MetadataTreeNode(string caption = null, IMetadataTreeElement metadataElement = null, ReadOnlyStateTag readOnlyState = null)
     : this(parent : null, caption : caption, metadataElement : metadataElement, readOnlyState : readOnlyState)
 {
 }
Example #16
0
 IMetadataTreeNode IMetadataTreeNode.CreateCopy(ReadOnlyStateTag readOnlyState)
 => CreateCopy(readOnlyState: readOnlyState);
Example #17
0
 public new MetadataTreeNode CreateCopy(ReadOnlyStateTag readOnlyState = null)
 => (MetadataTreeNode)CreateCopy(new CopyArgs(readOnlyState));
Example #18
0
 protected MetadataTreeElementBase(ReadOnlyStateTag readOnlyState = default(ReadOnlyStateTag))
     : this(node : null, readOnlyState : readOnlyState)
 {
 }
Example #19
0
 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()));
     }
 }
Example #20
0
 public MetadataFileInclusionTreeElement(ReadOnlyStateTag readOnlyState = default)
     : this(node : null, readOnlyState : readOnlyState)
 {
 }
Example #21
0
 public EmbeddedMetadataTreeElement(IMetadata embeddedMetadata, bool ownsEmbeddedMetadata, bool linkEmbeddedMetadata = default, ReadOnlyStateTag readOnlyState = default)
     : this(node : null, embeddedMetadata : embeddedMetadata, ownsEmbeddedMetadata : ownsEmbeddedMetadata, linkEmbeddedMetadata : linkEmbeddedMetadata, readOnlyState : readOnlyState)
 {
 }
Example #22
0
 public MetadataBase CreateCopy(IMetadataTreeElement element, ReadOnlyStateTag readOnlyState = default)
 => (MetadataBase)CreateCopy(copyArgs: new CopyArgs(element: element, readOnlyState: readOnlyState));
Example #23
0
 public CopyArgs(IMetadataTreeNode node, ReadOnlyStateTag readOnlyState)
     : base(readOnlyState)
 {
     Node = node;
 }
Example #24
0
 public new MetadataBase CreateCopy(ReadOnlyStateTag readOnlyState = default)
 => CreateCopy(element: null, readOnlyState: readOnlyState);
Example #25
0
 /// <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));
Example #26
0
 IMetadataTreeElement IMetadataTreeElement.CreateCopy(IMetadataTreeNode node, ReadOnlyStateTag readOnlyState)
 => CreateCopy(node, readOnlyState: readOnlyState);
Example #27
0
 /// <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);
Example #28
0
 IMetadataTreeNodeInclusion IMetadataTreeNodeInclusion.CreateCopy(ReadOnlyStateTag readOnlyState)
 => CreateCopy(readOnlyState: readOnlyState);
Example #29
0
 protected MetadataInclusionTreeElementBase(IMetadataTreeNode node, ReadOnlyStateTag readOnlyState = default(ReadOnlyStateTag))
     : base(node: node, readOnlyState: readOnlyState)
 {
 }