Beispiel #1
0
        /// <summary>
        /// When the item changes, show its summary in the text box and set the Appears In list box data source
        /// </summary>
        /// <param name="sender">The sender of the event</param>
        /// <param name="e">The event arguments</param>
        private void lbNamespaces_SelectedIndexChanged(object sender, EventArgs e)
        {
            List <string> assemblies;
            string        name;

            if (lbNamespaces.SelectedIndex != -1)
            {
                NamespaceSummaryItem nsi = (NamespaceSummaryItem)lbNamespaces.SelectedItem;
                txtSummary.Text = nsi.Summary;
                name            = nsi.Name;

                if (name[0] == '(')
                {
                    name = String.Empty;
                }

                if (namespaceInfo.TryGetValue(name, out assemblies))
                {
                    lbAppearsIn.DataSource = assemblies;
                }
                else
                {
                    lbAppearsIn.DataSource = null;
                }
            }
            else
            {
                txtSummary.Text        = null;
                lbAppearsIn.DataSource = null;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Store changes to the summary when the textbox loses focus
        /// </summary>
        /// <param name="sender">The sender of the event</param>
        /// <param name="e">The event arguments</param>
        private void txtSummary_Leave(object sender, EventArgs e)
        {
            NamespaceSummaryItem nsi = (NamespaceSummaryItem)lbNamespaces.SelectedItem;

            if (nsi != null && nsi.Summary != txtSummary.Text)
            {
                nsi.Summary = txtSummary.Text;
            }
        }
Beispiel #3
0
        /// <summary>
        /// Mark the summary item as documented or not when the check state changes
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lbNamespaces_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            NamespaceSummaryItem nsi = (NamespaceSummaryItem)lbNamespaces.Items[e.Index];

            bool isChecked = (e.NewValue == CheckState.Checked);

            if (nsi.IsDocumented != isChecked)
            {
                nsi.IsDocumented = isChecked;
            }
        }
Beispiel #4
0
        /// <summary>
        /// Mark the summary item as documented or not when the check state
        /// changes.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lbNamespaces_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            NamespaceSummaryItem nsi = (NamespaceSummaryItem)lbNamespaces.SelectedItem;

            bool isChecked = (e.NewValue == CheckState.Checked);

            if (nsi != null && nsi.IsDocumented != isChecked)
            {
                nsi.IsDocumented = isChecked;
                wasChanged       = true;
            }
        }
Beispiel #5
0
 /// <summary>
 /// When the item changes, show its summary in the text box.
 /// </summary>
 /// <param name="sender">The sender of the event</param>
 /// <param name="e">The event arguments</param>
 private void lbNamespaces_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (lbNamespaces.SelectedIndex != -1)
     {
         NamespaceSummaryItem nsi =
             (NamespaceSummaryItem)lbNamespaces.SelectedItem;
         txtSummary.Text = nsi.Summary;
     }
     else
     {
         txtSummary.Text = null;
     }
 }
Beispiel #6
0
        /// <summary>
        /// Apply the namespace filter to the namespace list
        /// </summary>
        /// <param name="sender">The sender of the event</param>
        /// <param name="e">The event arguments</param>
        private void btnApplyFilter_Click(object sender, RoutedEventArgs e)
        {
            Regex reFilter = null;

            lbNamespaces.Items.Clear();

            txtSearchText.Text = txtSearchText.Text.Trim();

            if (txtSearchText.Text.Length != 0)
            {
                try
                {
                    reFilter = new Regex(txtSearchText.Text, RegexOptions.IgnoreCase);
                }
                catch (ArgumentException ex)
                {
                    MessageBox.Show("The search regular expression is not valid: " + ex.Message, Constants.AppName,
                                    MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }
            }

            // Add the items to the list box in sorted order by name
            foreach (string key in namespaceItems.Keys)
            {
                NamespaceSummaryItem nsi = namespaceItems[key];

                // Always show groups
                if (!nsi.IsGroup)
                {
                    // Filter by assembly?
                    if (cboAssembly.SelectedIndex != 0)
                    {
                        string name = nsi.Name;

                        if (name[0] == '(')
                        {
                            name = String.Empty;
                        }

                        if (namespaceInfo.TryGetValue(name, out List <string> assemblies))
                        {
                            if (!assemblies.Contains(cboAssembly.Text))
                            {
                                continue;
                            }
                        }
                    }

                    // Filter by search text?
                    if (reFilter != null && !reFilter.IsMatch(nsi.Name))
                    {
                        continue;
                    }
                }

                lbNamespaces.Items.Add(nsi);
            }

            if (lbNamespaces.Items.Count != 0)
            {
                btnDelete.IsEnabled        = txtSummary.IsEnabled = true;
                lbNamespaces.SelectedIndex = 0;
            }
            else
            {
                btnDelete.IsEnabled = txtSummary.IsEnabled = false;
            }
        }
Beispiel #7
0
        /// <summary>
        /// This is called to import settings from an NDoc project into
        /// a new Sandcastle Help File Builder project.
        /// </summary>
        /// <param name="ndocProject">The NDoc project file from which to
        /// import the settings.</param>
        private void ImportFromNDoc(string ndocProject)
        {
            StreamReader         sr         = null;
            XmlDocument          sourceFile = new XmlDocument();
            XmlNodeList          elements;
            XmlNode              node;
            DocumentAssembly     da;
            ContentItem          ci, rootPage = null;
            DependencyItem       di;
            NamespaceSummaryItem nsi;
            string folderName;

            try
            {
                this.Cursor = Cursors.WaitCursor;

                sr = new StreamReader(ndocProject);
                sourceFile.Load(sr);

                // Add the assemblies
                elements = sourceFile.SelectNodes("//assemblies/*");

                foreach (XmlNode assembly in elements)
                {
                    da = new DocumentAssembly();
                    da.AssemblyPath = new FilePath(
                        assembly.Attributes["location"].Value);
                    da.XmlCommentsPath = new FilePath(
                        assembly.Attributes["documentation"].Value);
                    project.Assemblies.Add(da);
                }

                // Add the namespace summaries
                elements = sourceFile.SelectNodes("//namespaces/*");

                foreach (XmlNode ns in elements)
                {
                    nsi         = new NamespaceSummaryItem(ns.Attributes["name"].Value);
                    nsi.Summary = ns.InnerXml;
                    project.NamespaceSummaries.Add(nsi);
                }

                // Add one for the global namespace if it isn't there
                if (!project.NamespaceSummaries.Contains(String.Empty))
                {
                    project.NamespaceSummaries.Add(new NamespaceSummaryItem());
                }

                project.NamespaceSummaries.Sort();

                // Add reference paths
                elements = sourceFile.SelectNodes("//referencePaths/*");

                foreach (XmlNode reference in elements)
                {
                    di = new DependencyItem();

                    di.DependencyPath = new FileFolderGacPath(
                        reference.Attributes["path"].Value + "\\*.dll");

                    project.Dependencies.Add(di);
                }

                // Add options from the MSDN documenter
                node = sourceFile.SelectSingleNode("//documenters/documenter" +
                                                   "[@name=\"MSDN\" or @name=\"MSDN-CHM\"]");

                if (node != null)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        switch (child.Attributes["name"].Value)
                        {
                        case "AdditionalContentResourceDirectory":
                            ci            = new ContentItem();
                            ci.SourcePath = new FilePath(
                                child.Attributes["value"].Value);
                            folderName         = Path.GetDirectoryName(ci.SourcePath);
                            ci.DestinationPath = folderName.Substring(
                                folderName.LastIndexOf('\\') + 1);
                            project.AdditionalContent.Add(ci);
                            break;

                        case "CopyrightHref":
                            project.CopyrightHref =
                                child.Attributes["value"].Value;
                            break;

                        case "CopyrightText":
                            project.CopyrightText =
                                child.Attributes["value"].Value;
                            break;

                        case "DocumentAttributes":
                            project.DocumentAttributes = Convert.ToBoolean(
                                child.Attributes["value"].Value,
                                CultureInfo.InvariantCulture);
                            break;

                        case "DocumentExplicitInterfaceImplementations":
                            project.DocumentExplicitInterfaceImplementations =
                                Convert.ToBoolean(
                                    child.Attributes["value"].Value,
                                    CultureInfo.InvariantCulture);
                            break;

                        case "DocumentInheritedMembers":
                            project.DocumentInheritedMembers =
                                Convert.ToBoolean(
                                    child.Attributes["value"].Value,
                                    CultureInfo.InvariantCulture);
                            break;

                        case "DocumentInheritedFrameworkMembers":
                            project.DocumentInheritedFrameworkMembers =
                                Convert.ToBoolean(
                                    child.Attributes["value"].Value,
                                    CultureInfo.InvariantCulture);
                            break;

                        case "DocumentInternals":
                            project.DocumentInternals = Convert.ToBoolean(
                                child.Attributes["value"].Value,
                                CultureInfo.InvariantCulture);
                            break;

                        case "DocumentPrivates":
                            project.DocumentPrivates = Convert.ToBoolean(
                                child.Attributes["value"].Value,
                                CultureInfo.InvariantCulture);
                            break;

                        case "DocumentProtected":
                            project.DocumentProtected = Convert.ToBoolean(
                                child.Attributes["value"].Value,
                                CultureInfo.InvariantCulture);
                            break;

                        case "DocumentProtectedInternalAsProtected":
                            project.DocumentProtectedInternalAsProtected =
                                Convert.ToBoolean(
                                    child.Attributes["value"].Value,
                                    CultureInfo.InvariantCulture);
                            break;

                        case "DocumentSealedProtected":
                            project.DocumentSealedProtected =
                                Convert.ToBoolean(
                                    child.Attributes["value"].Value,
                                    CultureInfo.InvariantCulture);
                            break;

                        case "FeedbackEmailAddress":
                            project.FeedbackEMailAddress =
                                child.Attributes["value"].Value;
                            break;

                        case "HtmlHelpName":
                            project.HtmlHelpName =
                                child.Attributes["value"].Value;
                            break;

                        case "OutputDirectory":
                            project.OutputPath = new FolderPath(
                                child.Attributes["value"].Value);
                            break;

                        case "Title":
                            project.HelpTitle =
                                child.Attributes["value"].Value;
                            break;

                        case "RootPageContainsNamespaces":
                            project.RootNamespaceContainer =
                                Convert.ToBoolean(
                                    child.Attributes["value"].Value,
                                    CultureInfo.InvariantCulture);
                            break;

                        case "RootPageFileName":
                            if (rootPage == null)
                            {
                                rootPage            = new ContentItem();
                                rootPage.SourcePath = new FilePath(
                                    child.Attributes["value"].Value);
                                project.AdditionalContent.Insert(0, rootPage);
                            }
                            else
                            {
                                rootPage.SourcePath = new FilePath(
                                    child.Attributes["value"].Value);
                            }
                            break;

                        case "RootPageTOCName":
                            if (rootPage == null)
                            {
                                rootPage            = new ContentItem();
                                rootPage.SourcePath = new FilePath(
                                    @".\Unknown");
                                project.AdditionalContent.Insert(0, rootPage);
                            }
                            break;

                        case "FilesToInclude":
                            foreach (string filename in child.Attributes[
                                         "value"].Value.Split(new char[] { '|' }))
                            {
                                ci            = new ContentItem();
                                ci.SourcePath = new FilePath(filename);
                                project.AdditionalContent.Add(ci);
                            }
                            break;

                        case "AutoDocumentConstructors":
                            project.AutoDocumentConstructors =
                                Convert.ToBoolean(
                                    child.Attributes["value"].Value,
                                    CultureInfo.InvariantCulture);
                            break;

                        case "ShowMissingSummaries":
                            project.ShowMissingSummaries =
                                Convert.ToBoolean(
                                    child.Attributes["value"].Value,
                                    CultureInfo.InvariantCulture);
                            break;

                        case "ShowMissingRemarks":
                            project.ShowMissingRemarks =
                                Convert.ToBoolean(
                                    child.Attributes["value"].Value,
                                    CultureInfo.InvariantCulture);
                            break;

                        case "ShowMissingParams":
                            project.ShowMissingParams =
                                Convert.ToBoolean(
                                    child.Attributes["value"].Value,
                                    CultureInfo.InvariantCulture);
                            break;

                        case "ShowMissingReturns":
                            project.ShowMissingReturns =
                                Convert.ToBoolean(
                                    child.Attributes["value"].Value,
                                    CultureInfo.InvariantCulture);
                            break;

                        case "ShowMissingValues":
                            project.ShowMissingValues =
                                Convert.ToBoolean(
                                    child.Attributes["value"].Value,
                                    CultureInfo.InvariantCulture);
                            break;

                        default:
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Write(ex);
                MessageBox.Show(ex.Message, Constants.AppName,
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (sr != null)
                {
                    sr.Close();
                }

                this.Cursor = Cursors.Default;
            }
        }