Exemple #1
0
        /// <summary>
        /// Creates HTML files foreach formset including all their forms
        /// </summary>
        /// <param name="Language">Primary language</param>
        /// <param name="bShowDetails">Printing details into HTML</param>
        private void CreateHTMLFiles(string Language, bool bShowDetails)
        {
            Cursor previousCursor = Cursor.Current;

            Cursor.Current = Cursors.WaitCursor;

            CreateLogEntryMain(LogSeverity.INFO, "Creating HTML output...");

            foreach (TreeNode node_files in tv_tree.Nodes)
            {
                List <HiiPackageBase> Packages = new List <HiiPackageBase>();

                // Collect all HII packages of the files that are building a logical package
                foreach (TreeNode node_pkg in node_files.Nodes)
                {
                    foreach (HiiPackageBase hpk in (node_pkg.Tag as HPKfile).Childs)
                    {
                        Packages.Add(hpk);
                    }
                }

                ParsedHpkStringContainer HpkStrings = new ParsedHpkStringContainer(Packages, Language);
                HtmlBuilder HtmlBuilder             = new HtmlBuilder(Packages, HpkStrings, bShowDetails, printCompactHtmlToolStripMenuItem.Checked);
            }

            // TODO!
            //if (0 == tv_logical.Nodes[0].Nodes.Count)
            //    CreateLogEntryMain(LogSeverity.ERROR, "Creating HTML output failed!\nNo parsed package available");
            //else
            CreateLogEntryMain(LogSeverity.SUCCESS, "Creating HTML output completed!");

            Cursor.Current = previousCursor;
        }
Exemple #2
0
        /// <summary>
        /// Parses a bunch of files which are referring the same "package" using a given default language
        /// </summary>
        /// <param name="Language">Primary language</param>
        private void ParseAllFiles(string Language)
        {
            Cursor previousCursor = Cursor.Current;

            Cursor.Current = Cursors.WaitCursor;

            CreateLogEntryMain(LogSeverity.INFO, "Parsing packages...");

            tv_logical.Parent.Text = "Logical Tree (\"" + Language + "\")";
            tv_logical.Nodes.Clear();

            foreach (TreeNode node_files in tv_tree.Nodes)
            {
                List <HiiPackageBase> Packages = new List <HiiPackageBase>();

                TreeNode PkgNodeLogical = tv_logical.Nodes.Add("Package");
                PkgNodeLogical.Tag = EmptyDetails;

                // Collect all HII packages of the files that are building a logical package
                foreach (TreeNode node_pkg in node_files.Nodes)
                {
                    foreach (HiiPackageBase hpk in (node_pkg.Tag as HPKfile).Childs)
                    {
                        Packages.Add(hpk);
                    }
                }

                ParsedHpkStringContainer HpkStrings         = new ParsedHpkStringContainer(Packages, Language);
                ParsedHpkContainer       ParsedHpkContainer = new ParsedHpkContainer(Packages, HpkStrings);

                // Since HPKs interact with each other, build logical tree after loading is completely done
                foreach (ParsedHpkNode pkg in ParsedHpkContainer.HpkPackages)
                {
                    CreateLogEntryMain(LogSeverity.INFO, "Parsing \"" + pkg.Name + "\" ...");

                    tv_logical.BeginUpdate();
                    TreeNode root = PkgNodeLogical.Nodes.Add(pkg.Name);
                    root.Tag = pkg.Origin;
                    ShowAtLogicalTree(pkg, root);
                    root.Expand();
                    tv_logical.EndUpdate();
                }

                PkgNodeLogical.Expand();
            }

            if (0 == tv_logical.Nodes.Count)
            {
                TreeNode EmptyTree = tv_logical.Nodes.Add("No parsed packages available");
                EmptyTree.Tag = EmptyDetails;
            }

            CreateLogEntryMain(LogSeverity.SUCCESS, "Parsing packages completed!");

            Cursor.Current = previousCursor;
        }
Exemple #3
0
        /// <summary>
        /// Parses a set of packages
        /// </summary>
        /// <param name="Packages">List of packages that will be parsed</param>
        /// <param name="HpkStrings">Parsed HPK strings used for translations</param>
        public ParsedHpkContainer(List <HiiPackageBase> Packages, ParsedHpkStringContainer HpkStrings)
        {
            this.HpkStrings = HpkStrings;
            HpkPackages     = new List <ParsedHpkNode>();

            // Copy HPK strings to HPK packages to be shown in logical view, too..
            foreach (ParsedHpkNode pkg in HpkStrings.HpkPackages)
            {
                HpkPackages.Add(pkg);
            }

            foreach (HiiPackageBase pkg in Packages)
            {
                try
                {
                    ParsedHpkNode root = new ParsedHpkNode(pkg, pkg.Name);
                    switch (pkg.PackageType)
                    {
                    case EFI_HII_PACKAGE_e.EFI_HII_PACKAGE_FORMS:
                        root.Name = "Form Package";
                        HpkPackages.Add(root);
                        foreach (HPKElement child in root.Origin.Childs)
                        {
                            ParsePackageIfr(child, root);
                        }
                        break;

                    case EFI_HII_PACKAGE_e.EFI_HII_PACKAGE_STRINGS: break;     // Already done

                    default:
                        CreateLogEntryParser(LogSeverity.UNIMPLEMENTED, root.Name);
                        break;
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    CreateLogEntryParser(LogSeverity.ERROR, "Parsing failed!" + Environment.NewLine + ex.ToString());
                }
            }
        }