コード例 #1
0
        public void RegisterNodeSet(AddinDescription description, ExtensionNodeSet nset)
        {
            List <RootExtensionPoint> extensions;

            if (nodeSetHash.TryGetValue(nset.Id, out extensions))
            {
                // Extension point already registered
                List <ExtensionPoint> compatExtensions = GetCompatibleExtensionPoints(nset.Id, description, description.MainModule, extensions);
                if (compatExtensions.Count > 0)
                {
                    foreach (ExtensionPoint einfo in compatExtensions)
                    {
                        einfo.NodeSet.MergeWith(null, nset);
                    }
                    return;
                }
            }
            // Create a new extension set
            RootExtensionPoint rep = new RootExtensionPoint();

            rep.ExtensionPoint = new ExtensionPoint();
            rep.ExtensionPoint.SetNodeSet(nset);
            rep.ExtensionPoint.RootAddin = description.AddinId;
            rep.ExtensionPoint.Path      = nset.Id;
            rep.Description = description;
            if (extensions == null)
            {
                extensions            = new List <RootExtensionPoint> ();
                nodeSetHash [nset.Id] = extensions;
            }
            extensions.Add(rep);
        }
コード例 #2
0
        public void RegisterExtensionPoint(AddinDescription description, ExtensionPoint ep)
        {
            List <RootExtensionPoint> extensions;

            if (pathHash.TryGetValue(ep.Path, out extensions))
            {
                // Extension point already registered
                List <ExtensionPoint> compatExtensions = GetCompatibleExtensionPoints(ep.Path, description, description.MainModule, extensions);
                if (compatExtensions.Count > 0)
                {
                    foreach (ExtensionPoint einfo in compatExtensions)
                    {
                        einfo.MergeWith(null, ep);
                    }
                    RegisterObjectTypes(ep);
                    return;
                }
            }
            // Create a new extension
            RootExtensionPoint rep = new RootExtensionPoint();

            rep.ExtensionPoint           = ep;
            rep.ExtensionPoint.RootAddin = description.AddinId;
            rep.Description = description;
            if (extensions == null)
            {
                extensions         = new List <RootExtensionPoint> ();
                pathHash [ep.Path] = extensions;
            }
            extensions.Add(rep);
            RegisterObjectTypes(ep);
        }
コード例 #3
0
		public void RegisterNodeSet (AddinDescription description, ExtensionNodeSet nset)
		{
			List<RootExtensionPoint> extensions;
			if (nodeSetHash.TryGetValue (nset.Id, out extensions)) {
				// Extension point already registered
				List<ExtensionPoint> compatExtensions = GetCompatibleExtensionPoints (nset.Id, description, description.MainModule, extensions);
				if (compatExtensions.Count > 0) {
					foreach (ExtensionPoint einfo in compatExtensions)
						einfo.NodeSet.MergeWith (null, nset);
					return;
				}
			}
			// Create a new extension set
			RootExtensionPoint rep = new RootExtensionPoint ();
			rep.ExtensionPoint = new ExtensionPoint ();
			rep.ExtensionPoint.SetNodeSet (nset);
			rep.ExtensionPoint.RootAddin = description.AddinId;
			rep.ExtensionPoint.Path = nset.Id;
			rep.Description = description;
			if (extensions == null) {
				extensions = new List<RootExtensionPoint> ();
				nodeSetHash [nset.Id] = extensions;
			}
			extensions.Add (rep);
		}
コード例 #4
0
		public void RegisterAddinRootExtensionPoint (AddinDescription description, ExtensionPoint ep)
		{
			ArrayList list = (ArrayList) pathHash [ep.Path];
			if (list == null) {
				list = new ArrayList ();
				pathHash [ep.Path] = list;
			}
			
			RootExtensionPoint rep = new RootExtensionPoint ();
			rep.Description = description;
			rep.ExtensionPoint = ep;
			ep.RootAddin = description.AddinId;
			list.Add (rep);
		}
コード例 #5
0
		public void RegisterAddinRootNodeSet (AddinDescription description, ExtensionNodeSet nodeSet)
		{
			ArrayList list = (ArrayList) nodeSetHash [nodeSet.Id];
			if (list == null) {
				list = new ArrayList ();
				nodeSetHash [nodeSet.Id] = list;
			}
			
			RootExtensionPoint rep = new RootExtensionPoint ();
			rep.Description = description;
			ExtensionPoint ep = new ExtensionPoint ();
			ep.RootAddin = description.AddinId;
			ep.SetNodeSet (nodeSet);
			rep.ExtensionPoint = ep;
			list.Add (rep);
		}
コード例 #6
0
        public void RegisterAddinRootExtensionPoint(AddinDescription description, ExtensionPoint ep)
        {
            ArrayList list = (ArrayList)pathHash [ep.Path];

            if (list == null)
            {
                list = new ArrayList();
                pathHash [ep.Path] = list;
            }

            RootExtensionPoint rep = new RootExtensionPoint();

            rep.Description    = description;
            rep.ExtensionPoint = ep;
            ep.RootAddin       = description.AddinId;
            list.Add(rep);
        }
コード例 #7
0
        public void RegisterAddinRootNodeSet(AddinDescription description, ExtensionNodeSet nodeSet)
        {
            ArrayList list = (ArrayList)nodeSetHash [nodeSet.Id];

            if (list == null)
            {
                list = new ArrayList();
                nodeSetHash [nodeSet.Id] = list;
            }

            RootExtensionPoint rep = new RootExtensionPoint();

            rep.Description = description;
            ExtensionPoint ep = new ExtensionPoint();

            ep.RootAddin = description.AddinId;
            ep.SetNodeSet(nodeSet);
            rep.ExtensionPoint = ep;
            list.Add(rep);
        }
コード例 #8
0
		public void RegisterExtensionPoint (AddinDescription description, ExtensionPoint ep)
		{
			List<RootExtensionPoint> extensions;
			if (pathHash.TryGetValue (ep.Path, out extensions)) {
				// Extension point already registered
				List<ExtensionPoint> compatExtensions = GetCompatibleExtensionPoints (ep.Path, description, description.MainModule, extensions);
				if (compatExtensions.Count > 0) {
					foreach (ExtensionPoint einfo in compatExtensions)
						einfo.MergeWith (null, ep);
					RegisterObjectTypes (ep);
					return;
				}
			}
			// Create a new extension
			RootExtensionPoint rep = new RootExtensionPoint ();
			rep.ExtensionPoint = ep;
			rep.ExtensionPoint.RootAddin = description.AddinId;
			rep.Description = description;
			if (extensions == null) {
				extensions = new List<RootExtensionPoint> ();
				pathHash [ep.Path] = extensions;
			}
			extensions.Add (rep);
			RegisterObjectTypes (ep);
		}