Exemple #1
0
        /// <summary>Adds an enumeration of containable editor or container to existing editors and to a container.</summary>
        /// <param name="containables">The editables to add.</param>
        public void AddRange(IEnumerable <IUniquelyNamed> containables)
        {
            foreach (var containable in containables)
            {
                if (containable is IEditable)
                {
                    Editables.AddOrReplace(containable as IEditable);
                }
                if (containable is IEditableContainer)
                {
                    Containers.AddOrReplace(containable as IEditableContainer);
                }
                if (containable is EditorModifierAttribute)
                {
                    EditableModifiers.Add(containable as EditorModifierAttribute);
                }
                if (containable is IDisplayable)
                {
                    Displayables.AddOrReplace(containable as IDisplayable);
                }
                if (containable is IContentTransformer)
                {
                    ContentTransformers.Add(containable as IContentTransformer);
                }

                NamedOperators.Add(containable);
            }
        }
Exemple #2
0
        private void AddRangeInternal(IEnumerable <IUniquelyNamed> containables)
        {
            var list = new List <IUniquelyNamed>(containables);

            list.Sort((f, s) =>
            {
                if (f is IComparable <IUniquelyNamed> )
                {
                    return((f as IComparable <IUniquelyNamed>).CompareTo(s));
                }
                if (s is IComparable <IUniquelyNamed> )
                {
                    return(-(s as IComparable <IUniquelyNamed>).CompareTo(f));
                }
                return(0);
            });

            foreach (var containable in list)
            {
                if (containable is IEditable)
                {
                    Editables.AddOrReplace(containable as IEditable);
                }
                if (containable is IEditableContainer)
                {
                    Containers.AddOrReplace(containable as IEditableContainer);
                }
                if (containable is EditorModifierAttribute)
                {
                    EditableModifiers.Add(containable as EditorModifierAttribute);
                }
                if (containable is IDisplayable)
                {
                    Displayables.AddOrReplace(containable as IDisplayable);
                }
                if (containable is IContentTransformer)
                {
                    ContentTransformers.Add(containable as IContentTransformer);
                }

                NamedOperators.Add(containable);
            }
        }
Exemple #3
0
        public void RemoveRange(IEnumerable <IUniquelyNamed> containables)
        {
            foreach (var containable in containables)
            {
                if (containable is IEditable)
                {
                    Editables.Remove(containable as IEditable);
                }
                if (containable is IEditableContainer)
                {
                    Containers.Remove(containable as IEditableContainer);
                }
                if (containable is IDisplayable)
                {
                    Displayables.Remove(containable as IDisplayable);
                }
                if (containable is IContentTransformer)
                {
                    ContentTransformers.Remove(containable as IContentTransformer);
                }

                NamedOperators.Remove(containable);
            }
        }
Exemple #4
0
 public IEnumerable <IUniquelyNamed> GetNamed(string name)
 {
     return(NamedOperators.Where(o => o.Name == name).ToList());
 }