예제 #1
0
        private void ProcessDocument(FileSystemWatcher fileWatcher,
                                     BuildContext context, ReferenceDocument document,
                                     IList <BuildConfiguration> configurations)
        {
            try
            {
                if (!document.BeginEdit(fileWatcher))
                {
                    return;
                }

                // For each configuration, retrieve the processor (visitor) and
                // process the document...
                int itemCount = configurations.Count;
                for (int i = 0; i < itemCount; i++)
                {
                    BuildConfiguration configuration = configurations[i];

                    string configName = configuration.Name;
                    if (_dictVisitors.ContainsKey(configName))
                    {
                        ReferenceTocVisitor visitor = _dictVisitors[configName];
                        if (visitor != null && visitor.IsInitialized)
                        {
                            visitor.Visit(document);
                        }
                    }
                }
            }
            finally
            {
                document.EndEdit();
            }
        }
예제 #2
0
        private void PrepareVisitors(BuildContext context)
        {
            if (_dictVisitors == null)
            {
                _dictVisitors = new Dictionary <string, ReferenceTocVisitor>();
            }

            _listConfigurations = new List <ReferenceConfiguration>();

            // List out enabled Sandcastle Assist and the Plugin configurations...
            IBuildNamedList <BuildConfiguration> dicAssistConfigs
                = _engineSettings.Configurations;

            if (dicAssistConfigs != null && dicAssistConfigs.Count != 0)
            {
                foreach (ReferenceConfiguration config in dicAssistConfigs)
                {
                    // It must be both enabled to be used and active/valid...
                    if (config.Enabled && config.IsActive &&
                        String.Equals(config.Category, "ReferenceTocVisitor",
                                      StringComparison.OrdinalIgnoreCase))
                    {
                        // Make sure there is a handler of this configuration...
                        ReferenceTocVisitor visitor = config.CreateVisitor() as ReferenceTocVisitor;
                        if (visitor != null)
                        {
                            _listConfigurations.Add(config);

                            if (!_dictVisitors.ContainsKey(config.Name))
                            {
                                _dictVisitors.Add(config.Name, visitor);
                            }
                        }
                    }
                }
            }

            IBuildNamedList <BuildConfiguration> dicPluginConfigs
                = _engineSettings.PluginConfigurations;

            if (dicPluginConfigs != null && dicPluginConfigs.Count != 0)
            {
                foreach (ReferenceConfiguration config in dicPluginConfigs)
                {
                    // It must be both enabled to be used and active/valid...
                    if (config.Enabled && config.IsActive &&
                        String.Equals(config.Category, "ReferenceTocVisitor",
                                      StringComparison.OrdinalIgnoreCase))
                    {
                        // Make sure there is a handler of this configuration...
                        ReferenceTocVisitor visitor = config.CreateVisitor() as ReferenceTocVisitor;
                        if (visitor != null)
                        {
                            _listConfigurations.Add(config);

                            if (!_dictVisitors.ContainsKey(config.Name))
                            {
                                _dictVisitors.Add(config.Name, visitor);
                            }
                        }
                    }
                }
            }
        }