Esempio n. 1
0
        void InitializeExtensionChain()
        {
            // Create an initial empty extension chain. This avoid crashes in case a call to SupportsObject ends
            // calling methods from the extension

            var tempExtensions = new List <WorkspaceObjectExtension> ();

            tempExtensions.AddRange(CreateDefaultExtensions().Reverse());
            extensionChain = ExtensionChain.Create(tempExtensions.ToArray());
            foreach (var e in tempExtensions)
            {
                e.Init(this);
            }

            // Collect extensions that support this object

            var extensions = new List <WorkspaceObjectExtension> ();

            foreach (ProjectModelExtensionNode node in GetModelExtensions(extensionContext))
            {
                if (node.CanHandleObject(this))
                {
                    var ext = node.CreateExtension();
                    if (ext.SupportsObject(this))
                    {
                        ext.SourceExtensionNode = node;
                        extensions.Add(ext);
                    }
                }
            }

            foreach (var e in tempExtensions)
            {
                e.Dispose();
            }

            // Now create the final extension chain

            extensions.Reverse();
            var defaultExts = CreateDefaultExtensions().ToList();

            defaultExts.Reverse();
            extensions.AddRange(defaultExts);
            extensionChain = ExtensionChain.Create(extensions.ToArray());
            extensionChain.SetDefaultInsertionPosition(defaultExts.FirstOrDefault());

            foreach (var e in extensions)
            {
                e.Init(this);
            }

            itemExtension = ExtensionChain.GetExtension <WorkspaceObjectExtension> ();

            foreach (var e in extensions)
            {
                e.OnExtensionChainCreated();
            }
        }
Esempio n. 2
0
        protected override void OnExtensionChainInitialized()
        {
            itemExtension = ExtensionChain.GetExtension <SolutionExtension> ();
            base.OnExtensionChainInitialized();

            if (!loadingFromConstructor)
            {
                NotifyItemReady();
            }
        }
Esempio n. 3
0
 protected override void OnExtensionChainInitialized()
 {
     itemExtension = ExtensionChain.GetExtension <WorkspaceItemExtension> ();
     base.OnExtensionChainInitialized();
 }
Esempio n. 4
0
 protected override void OnExtensionChainInitialized()
 {
     itemExtension = ExtensionChain.GetExtension <WorkspaceItemExtension> ();
     base.OnExtensionChainInitialized();
     fileStatusTracker.TrackFileChanges();
 }