A collection of node types.
Inheritance: ObjectDescriptionCollection
Exemplo n.º 1
0
        void InitCollections()
        {
            nodeTypes = new ExtensionNodeTypeCollection(this);
            nodeSets  = new NodeSetIdCollection();

            foreach (XmlNode n in Element.ChildNodes)
            {
                XmlElement nt = n as XmlElement;
                if (nt == null)
                {
                    continue;
                }
                if (nt.LocalName == "ExtensionNode")
                {
                    ExtensionNodeType etype = new ExtensionNodeType(nt);
                    nodeTypes.Add(etype);
                }
                else if (nt.LocalName == "ExtensionNodeSet")
                {
                    string id = nt.GetAttribute("id");
                    if (id.Length > 0)
                    {
                        nodeSets.Add(id);
                    }
                    else
                    {
                        missingNodeSetId = true;
                    }
                }
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Gets all the allowed node types.
 /// </summary>
 /// <returns>
 /// The allowed node types.
 /// </returns>
 /// <remarks>
 /// Gets all allowed node types, including those defined in included node sets.
 /// This method only works for descriptions loaded from a registry.
 /// </remarks>
 public ExtensionNodeTypeCollection GetAllowedNodeTypes()
 {
     if (cachedAllowedTypes == null)
     {
         cachedAllowedTypes = new ExtensionNodeTypeCollection();
         GetAllowedNodeTypes(new Hashtable(), cachedAllowedTypes);
     }
     return(cachedAllowedTypes);
 }
Exemplo n.º 3
0
        public ExtensionNodeTypeCollection GetAllowedNodeTypes()
        {
            // Gets all allowed node types, including those defined in node sets
            // It only works for descriptions generated from a registry

            if (cachedAllowedTypes == null)
            {
                cachedAllowedTypes = new ExtensionNodeTypeCollection();
                GetAllowedNodeTypes(new Hashtable(), cachedAllowedTypes);
            }
            return(cachedAllowedTypes);
        }
Exemplo n.º 4
0
        void GetAllowedNodeTypes(Hashtable visitedSets, ExtensionNodeTypeCollection col)
        {
            if (Id.Length > 0)
            {
                if (visitedSets.Contains(Id))
                {
                    return;
                }
                visitedSets [Id] = Id;
            }

            // Gets all allowed node types, including those defined in node sets
            // It only works for descriptions generated from a registry

            foreach (ExtensionNodeType nt in NodeTypes)
            {
                col.Add(nt);
            }

            AddinDescription desc = ParentAddinDescription;

            if (desc == null || desc.OwnerDatabase == null)
            {
                return;
            }

            foreach (string[] ns in NodeSets.InternalList)
            {
                string startAddin = ns [1];
                if (startAddin == null || startAddin.Length == 0)
                {
                    startAddin = desc.AddinId;
                }
                ExtensionNodeSet nset = desc.OwnerDatabase.FindNodeSet(ParentAddinDescription.Domain, startAddin, ns[0]);
                if (nset != null)
                {
                    nset.GetAllowedNodeTypes(visitedSets, col);
                }
            }
        }
		internal override void Read (BinaryXmlReader reader)
		{
			id = reader.ReadStringValue ("Id");
			nodeTypes = (ExtensionNodeTypeCollection) reader.ReadValue ("NodeTypes", new ExtensionNodeTypeCollection (this));
			reader.ReadValue ("NodeSets", NodeSets.InternalList);
		}
		void InitCollections ()
		{
			nodeTypes = new ExtensionNodeTypeCollection (this);
			nodeSets = new NodeSetIdCollection ();
			
			foreach (XmlNode n in Element.ChildNodes) {
				XmlElement nt = n as XmlElement;
				if (nt == null)
					continue;
				if (nt.LocalName == "ExtensionNode") {
					ExtensionNodeType etype = new ExtensionNodeType (nt);
					nodeTypes.Add (etype);
				}
				else if (nt.LocalName == "ExtensionNodeSet") {
					string id = nt.GetAttribute ("id");
					if (id.Length > 0)
						nodeSets.Add (id);
					else
						missingNodeSetId = true;
				}
			}
		}
		internal void Clear ()
		{
			Element = null;
			nodeSets = null;
			nodeTypes = null;
		}
		void GetAllowedNodeTypes (Hashtable visitedSets, ExtensionNodeTypeCollection col)
		{
			if (Id.Length > 0) {
				if (visitedSets.Contains (Id))
					return;
				visitedSets [Id] = Id;
			}
			
			// Gets all allowed node types, including those defined in node sets
			// It only works for descriptions generated from a registry
			
			foreach (ExtensionNodeType nt in NodeTypes)
				col.Add (nt);
			
			AddinDescription desc = ParentAddinDescription;
			if (desc == null || desc.OwnerDatabase == null)
			    return;
			
			foreach (string[] ns in NodeSets.InternalList) {
				string startAddin = ns [1];
				if (startAddin == null || startAddin.Length == 0)
					startAddin = desc.AddinId;
				ExtensionNodeSet nset = desc.OwnerDatabase.FindNodeSet (startAddin, ns[0]);
				if (nset != null)
					nset.GetAllowedNodeTypes (visitedSets, col);
			}
		}
		public ExtensionNodeTypeCollection GetAllowedNodeTypes ()
		{
			// Gets all allowed node types, including those defined in node sets
			// It only works for descriptions generated from a registry
			
			if (cachedAllowedTypes == null) {
				cachedAllowedTypes = new ExtensionNodeTypeCollection ();
				GetAllowedNodeTypes (new Hashtable (), cachedAllowedTypes);
			}
		    return cachedAllowedTypes;
		}
Exemplo n.º 10
0
 internal override void Read(BinaryXmlReader reader)
 {
     id        = reader.ReadStringValue("Id");
     nodeTypes = (ExtensionNodeTypeCollection)reader.ReadValue("NodeTypes", new ExtensionNodeTypeCollection(this));
     reader.ReadValue("NodeSets", NodeSets.InternalList);
 }
Exemplo n.º 11
0
 internal void Clear()
 {
     Element   = null;
     nodeSets  = null;
     nodeTypes = null;
 }
Exemplo n.º 12
0
		/// <summary>
		/// Gets all the allowed node types.
		/// </summary>
		/// <returns>
		/// The allowed node types.
		/// </returns>
		/// <remarks>
		/// Gets all allowed node types, including those defined in included node sets.
		/// This method only works for descriptions loaded from a registry.
		/// </remarks>
		public ExtensionNodeTypeCollection GetAllowedNodeTypes ()
		{
			if (cachedAllowedTypes == null) {
				cachedAllowedTypes = new ExtensionNodeTypeCollection ();
				GetAllowedNodeTypes (new Hashtable (), cachedAllowedTypes);
			}
		    return cachedAllowedTypes;
		}