예제 #1
0
        /// <summary>The run template.</summary>
        public void RunTemplate()
        {
            TemplateModel  templateModel  = _services.Resolve <TemplateModel>();
            TemplateResult templateResult = null;

            txtErrors.Clear();

            try
            {
                string[] lines = AllText.Replace("\r", string.Empty).Split('\n');
                string   text;
                Dictionary <string, object> items = new Dictionary <string, object>();
                items[TemplateModel.Extension] = templateModel.InferExtensionFromFilename(FileName, items);
                text           = templateModel.PreProcessTemplate(lines, GetValue, items);
                templateResult = templateModel.ProcessTemplate(text, items);
            }
            catch (TemplateException exp)
            {
                _hostWindow.DisplaySimpleMessageBox(this, exp.Message, "Template Error");

// todo - try to get the line number and move cursor?...
                txtErrors.Text = exp.Message;
            }

            if (templateResult != null)
            {
                // display in new window
                IFileEditorResolver resolver = _services.Resolve <IFileEditorResolver>();
                IEditor             editor   = _services.Resolve <IEditor>(resolver.ResolveEditorNameByExtension(templateResult.Extension));
                editor.AllText = templateResult.Text;
                editor.SetSyntax(templateResult.SyntaxName);
                _hostWindow.DisplayDockedForm(editor as DockContent);
            }
        }
 private static void WriteStatsProperty(AllText allText)
 {
     foreach (UnitStatsProperty property in System.Enum.GetValues(typeof(UnitStatsProperty)))
     {
         allText.AddText(property.ToString(), property.ToString());
     }
 }
 private static void WriteSpiritType(AllText allText)
 {
     foreach (SpiritType property in System.Enum.GetValues(typeof(SpiritType)))
     {
         allText.AddText(property.ToString(), property.ToString());
     }
 }
예제 #4
0
        public static string GetText(string key)
        {
            var languageIndex = LanguageMap.ContainsKey(CurrentCulture.LCID) ? LanguageMap[CurrentCulture.LCID] : LanguageMap.First().Value;

            if (AllText.ContainsKey(key))
            {
                return(AllText[key].Texts[languageIndex]);
            }

            //TODO: maybe remove, throw exception
            return($"##{key}##");
        }
예제 #5
0
    public override string ToString()
    {
        AllText all = AllText.Instance;

        if (all == null)
        {
            return(text);
        }
        else
        {
            return(all.GetText(name));
        }
    }
    public void Write()
    {
        AllText allText = AllText.Instance;

        if (allText == null)
        {
            return;
        }

        WriteStatsProperty(allText);

        WriteSpiritType(allText);
    }
    public string GetText(SpiritType property)
    {
        AllText allText = AllText.Instance;

        if (allText != null)
        {
            return(allText.GetText(property.ToString()));
        }
        else
        {
            return(property.ToString());
        }
    }
    public string GetText(UnitStatsProperty property)
    {
        AllText allText = AllText.Instance;

        if (allText != null)
        {
            return(allText.GetText(property.ToString()));
        }
        else
        {
            return(property.ToString());
        }
    }
예제 #9
0
        public void Start()
        {
            m_Reference = AllText.Instance;

            m_Dropdown.ClearOptions();

            List <string> list = new List <string>();

            foreach (AllText.Language language in System.Enum.GetValues(typeof(AllText.Language)))
            {
                list.Add(language.ToString());
            }

            m_Dropdown.AddOptions(list);

            m_Dropdown.value = PlayerPrefs.GetInt(AllText.PrefLanguageKey, 0);
        }
예제 #10
0
        void FindWord()
        {
            //try
            //{
            //    this.txNote.BeginUpdate();
            txNote.Select(0, 0); // если не сделать так то будет влиять на выделение слов в startedPoints, выделяемое будет смещатся на -1
            this.txNote.Clear();
            if (string.IsNullOrEmpty(this.Word))
            {
                return;
            }
            if (string.IsNullOrEmpty(AllText))
            {
                return;
            }
            this.Text = string.Format("Citations for '{0}'", this.Word);
            string word      = this.Word.ToLower();
            string lowerText = AllText.ToLower();

            DateTime   timeMarker    = DateTime.Now;
            int        start         = 0;
            int        lenght        = 170;
            List <int> startedPoints = new List <int>();

            //                StringBuilder sb = new StringBuilder();
            while (start < AllText.Length && lowerText.IndexOf(word, start) != -1)
            {
                if (D.IsLetter(AllText[lowerText.IndexOf(word, start) - 1])) // т.е. предыдущий символ начало слова
                {
                    start = AllText.IndexOf(word, start) + word.Length;
                    continue; // т.е. избежим выделения таких слов как This для his, будут выделятся только совпадающее начало
                }
                int marker = lowerText.IndexOf(word, start);
                if (marker < lenght / 2)
                {
                    marker = 0;
                }
                else
                {
                    marker -= lenght / 2;
                }
                string elementName = AllText.Substring(marker, marker + lenght < AllText.Length ? lenght : lowerText.Length - marker);
                elementName = elementName.Replace('\r', ' ').Replace('\n', ' ');
                while (elementName.IndexOf("  ") != -1)
                {
                    elementName = elementName.Replace("  ", " ");
                }
                int    i      = elementName.IndexOf(' ');
                int    length = elementName.LastIndexOf(' ');
                string line   = "..." + elementName.Substring(i, length - i) + "...\r\n"; // this.tx1.Text.Substring(i, length) + "\r\n";
                // для выделения слова
                //TODO: а если  .... his ... This .... тогда выделится This
                startedPoints.Add(txNote.Text.Length + line.ToLower().IndexOf(word.ToLower())); // - startedPoints.Count); чтоб так не делать сделаем вначале txNote.Select(0, 0)
                txNote.Text += line;
                start        = marker + lenght;                                                 //TODO: не учитываются отрезанные конец и начало
            }
            // подсветим слова
            foreach (int startWord in startedPoints)
            {
                if (startWord == -1)
                {
                    continue;
                }
                txNote.Select(startWord, this.Word.Length);
                txNote.SelectionBackColor = Color.Gainsboro;
            }
            txNote.Select(0, 0); // possible textBox.SelectionStart = 0;
        }