Esempio n. 1
0
        private string ApplyTransform(string sInputFile, XmlNode node, ProgressDialogWorkingOn dlg)
        {
            string sProgressPrompt = XmlUtils.GetManditoryAttributeValue(node, "progressPrompt");

            UpdateProgress(sProgressPrompt, dlg);
            string sXslt       = XmlUtils.GetManditoryAttributeValue(node, "file");
            string sOutputFile = Path.Combine(m_outputDirectory, Cache.DatabaseName + sXslt + "Result." + GetExtensionFromNode(node));

            XmlUtils.XSLParameter[] parameterList = CreateParameterList(node);
            if (parameterList != null)
            {
                foreach (XmlUtils.XSLParameter param in parameterList)
                {
                    if (param.Name == "prmVernacularFontSize")
                    {
                        param.Value = GetNormalStyleFontSize(Cache.LangProject.DefaultVernacularWritingSystem);
                    }
                    if (param.Name == "prmGlossFontSize")
                    {
                        param.Value = GetNormalStyleFontSize(Cache.LangProject.DefaultAnalysisWritingSystem);
                    }
                }
            }
            SIL.Utils.XmlUtils.TransformFileToFile(Path.Combine(TransformPath, sXslt), parameterList, sInputFile, sOutputFile);
            return(sOutputFile);
        }
Esempio n. 2
0
        /// <summary>
        /// Parse the given lists of files and create a wordset from them.
        /// </summary>
        /// <param name="paths"></param>
        /// <remarks>This is marked internal so that unit tests can call it</remarks>
        internal void CreateWordsetFromFiles(string[] paths)
        {
            CheckDisposed();

            using (ProgressDialogWorkingOn dlg = new ProgressDialogWorkingOn())
            {
                m_cache.DomainDataByFlid.BeginUndoTask("Import Word Set", "Import Word Set");
                string sWordSetName = GetWordSetName(paths);
                var    wordSet      = m_cache.ServiceLocator.GetInstance <IWfiWordSetFactory>().Create();
                m_cache.LangProject.MorphologicalDataOA.TestSetsOC.Add(wordSet);
                wordSet.Name.SetAnalysisDefaultWritingSystem(sWordSetName);
                wordSet.Description.SetAnalysisDefaultWritingSystem(GetWordSetDescription(paths));
                dlg.Owner   = FindForm();
                dlg.Icon    = dlg.Owner.Icon;
                dlg.Minimum = 0;
                dlg.Maximum = paths.Length;
                dlg.Text    = String.Format(ParserUIStrings.ksLoadingFilesForWordSetX, sWordSetName);
                dlg.Show();
                dlg.BringToFront();
                WordImporter importer = new WordImporter(m_cache);
                foreach (string path in paths)
                {
                    UpdateProgress(path, dlg);
                    importer.PopulateWordset(path, wordSet);
                }
                m_cache.DomainDataByFlid.EndUndoTask();
                dlg.Close();
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Parse the given lists of files and create a wordset from them.
        /// </summary>
        /// <param name="paths"></param>
        /// <remarks>This is marked internal so that unit tests can call it</remarks>
        internal void CreateWordsetFromFiles(string[] paths)
        {
            CheckDisposed();

            using (ProgressDialogWorkingOn dlg = new ProgressDialogWorkingOn())
            {
                string      sWordSetName = GetWordSetName(paths);
                IWfiWordSet wordSet      = WfiWordSet.Create(m_cache, sWordSetName, GetWordSetDescription(paths));
                dlg.Owner   = FindForm();
                dlg.Icon    = dlg.Owner.Icon;
                dlg.Minimum = 0;
                dlg.Maximum = paths.Length;
                dlg.Text    = String.Format(ParserUIStrings.ksLoadingFilesForWordSetX, sWordSetName);
                dlg.Show();
                dlg.BringToFront();
                using (WordImporter importer = new WordImporter(m_cache))
                {
                    foreach (string path in paths)
                    {
                        UpdateProgress(path, dlg);
                        importer.PopulateWordset(path, wordSet);
                    }
                }
                dlg.Close();
            }
        }
Esempio n. 4
0
        private string ApplyTransform(string inputFile, XmlNode node, ProgressDialogWorkingOn dlg)
        {
            string progressPrompt = XmlUtils.GetManditoryAttributeValue(node, "progressPrompt");

            UpdateProgress(progressPrompt, dlg);
            string stylesheetName     = XmlUtils.GetManditoryAttributeValue(node, "stylesheetName");
            string stylesheetAssembly = XmlUtils.GetManditoryAttributeValue(node, "stylesheetAssembly");
            string outputFile         = Path.Combine(m_outputDirectory, Cache.ProjectId.Name + stylesheetName + "Result." + GetExtensionFromNode(node));

            XsltArgumentList        argumentList = CreateParameterList(node);
            IWritingSystemContainer wsContainer  = Cache.ServiceLocator.WritingSystems;

            if (argumentList.GetParam("prmVernacularFontSize", "") != null)
            {
                argumentList.RemoveParam("prmVernacularFontSize", "");
                argumentList.AddParam("prmVernacularFontSize", "", GetNormalStyleFontSize(wsContainer.DefaultVernacularWritingSystem.Handle));
            }
            if (argumentList.GetParam("prmGlossFontSize", "") != null)
            {
                argumentList.RemoveParam("prmGlossFontSize", "");
                argumentList.AddParam("prmGlossFontSize", "", GetNormalStyleFontSize(wsContainer.DefaultAnalysisWritingSystem.Handle));
            }

            var xmlReaderSettings = new XmlReaderSettings {
                DtdProcessing = DtdProcessing.Parse
            };

            using (var writer = new StreamWriter(outputFile))
                using (var reader = XmlReader.Create(inputFile, xmlReaderSettings))
                    GetTransform(stylesheetName, stylesheetAssembly).Transform(reader, argumentList, writer);
            return(outputFile);
        }
Esempio n. 5
0
        private void ProduceSketch()
        {
            string sFxtOutputPath;
            ProgressDialogWorkingOn dlg = InitProgressDialog();

            ShowGeneratingPage();
            PerformRetrieval(out sFxtOutputPath, dlg);
            PerformTransformations(sFxtOutputPath, dlg);
            UpdateProgress(m_mediator.StringTbl.GetString("Complete", "DocumentGeneration"), dlg);            //m_stringResMan.GetString("stidCompleted"), dlg);
            dlg.Close();
        }
Esempio n. 6
0
 private void PerformTransformations(string sLastFile, ProgressDialogWorkingOn dlg)
 {
     foreach (XmlNode rNode in m_transformsNode.ChildNodes)
     {
         sLastFile = ApplyTransform(sLastFile, rNode, dlg);
         if (m_AlsoSaveTransformNode == rNode)
         {
             m_sAlsoSaveFileName = sLastFile;
         }
     }
     m_sHtmlFileName = sLastFile;
 }
Esempio n. 7
0
        private ProgressDialogWorkingOn InitProgressDialog()
        {
            ProgressDialogWorkingOn dlg = new ProgressDialogWorkingOn();

            dlg.Owner   = this.FindForm();
            dlg.Icon    = dlg.Owner.Icon;
            dlg.Minimum = 0;
            dlg.Maximum = m_cPrompts + m_cTransforms;
            dlg.Text    = m_sProgressDialogTitle;
            dlg.Show();
            return(dlg);
        }
Esempio n. 8
0
        private void ProduceSketch()
        {
            string sFxtOutputPath;

            using (ProgressDialogWorkingOn dlg = InitProgressDialog())
            {
                ShowGeneratingPage();
                PerformRetrieval(out sFxtOutputPath, dlg);
                PerformTransformations(sFxtOutputPath, dlg);
                UpdateProgress(StringTable.Table.GetString("Complete", "DocumentGeneration"), dlg);
                dlg.Close();
            }
        }
Esempio n. 9
0
        public void PerformRetrieval(out string outputPath, ProgressDialogWorkingOn dlg)
        {
            CheckDisposed();

            string sPrompt = XmlUtils.GetOptionalAttributeValue(m_retrieverNode, "progressPrompt");

            if (sPrompt != null)
            {
                UpdateProgress(sPrompt, dlg);
            }

            outputPath = Path.Combine(m_outputDirectory, Cache.ProjectId.Name + "RetrieverResult.xml");
            m_retriever.Retrieve(outputPath, Cache.LanguageProject);
        }
Esempio n. 10
0
        public void PerformRetrieval(out string sFxtOutputPath, ProgressDialogWorkingOn dlg)
        {
            CheckDisposed();

            string sPrompt = XmlUtils.GetOptionalAttributeValue(m_fxtNode, "progressPrompt");

            if (sPrompt != null)
            {
                UpdateProgress(sPrompt, dlg);
            }
            string sFxt     = XmlUtils.GetManditoryAttributeValue(m_fxtNode, "file");
            string sFxtPath = Path.Combine(DirectoryFinder.FWCodeDirectory, Path.Combine(@"Language Explorer\Configuration\Grammar\FXTs", sFxt));

            m_fxtDumper    = new XDumper(Cache);
            sFxtOutputPath = Path.Combine(m_outputDirectory, Cache.DatabaseName + sFxt + "Result.xml");
            m_fxtDumper.Go(Cache.LangProject as CmObject, sFxtPath, File.CreateText(sFxtOutputPath));
        }
Esempio n. 11
0
        private ProgressDialogWorkingOn InitProgressDialog()
        {
            Form owner = FindForm();
            Icon icon  = null;

            if (owner != null)
            {
                icon = owner.Icon;
            }
            var dlg = new ProgressDialogWorkingOn
            {
                Owner   = owner,
                Icon    = icon,
                Minimum = 0,
                Maximum = m_cPrompts + m_cTransforms,
                Text    = m_sProgressDialogTitle
            };

            dlg.Show();
            return(dlg);
        }
Esempio n. 12
0
 private void UpdateProgress(string sMessage, ProgressDialogWorkingOn dlg)
 {
     dlg.WorkingOnText = sMessage;
     dlg.PerformStep();
     dlg.Refresh();
 }