// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="e"></param> /// <returns></returns> /// <created>UPh,22.11.2015</created> /// <changed>UPh,22.11.2015</changed> // ******************************************************************************** protected override void OnDrawSubItem(DrawListViewSubItemEventArgs e) { if (e.Item.Selected) { e.Graphics.FillRectangle(_SelectedItemBrush, e.Bounds); //e.DrawFocusRectangle(); } else { e.DrawBackground(); } if (e.ColumnIndex == 3) { Color tbcolor = Color.Empty; if (TermBaseSet != null) { TerminologyResultArgs item = GetItemAt(e.ItemIndex); if (item != null) { tbcolor = TermBaseSet.GetDisplayColor(item.TermBaseID); } } if (tbcolor != Color.Empty && tbcolor.ToArgb() != Color.White.ToArgb()) { SolidBrush brush = new SolidBrush(tbcolor); Rectangle rcBar = e.Bounds; rcBar.Width = 4; e.Graphics.FillRectangle(brush, rcBar); } } e.Graphics.DrawString(e.SubItem.Text, Font, _TextBrush, e.Bounds.Left + 4.0f, e.Bounds.Top + 2.0f); }
// ******************************************************************************** /// <summary> /// /// </summary> /// <returns></returns> /// <created>UPh,31.10.2015</created> /// <changed>UPh,31.10.2015</changed> // ******************************************************************************** private void DisplaySelectedTerm() { if (FindType == FindTypes.Text) { TermListItem item = lstTerms.GetSelectedItem(); if (item == null) { return; } _TermBaseQuery.RequestTermInfo(item, 0); } else if (FindType == FindTypes.Terminology) { TerminologyResultArgs tra = lstTerminology.GetSelectedItem(); if (tra == null) { return; } TermListItem item = new TermListItem(tra); _TermBaseQuery.RequestTermInfo(item, 0); } }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="e"></param> /// <returns></returns> /// <created>UPh,20.11.2015</created> /// <changed>UPh,20.11.2015</changed> // ******************************************************************************** void OnTerminologyResult(TerminologyResultArgs e) { if (FindType != FindTypes.Terminology || _FindTermRequestID != e.RequestID) { return; } lstTerminology.AddItem(e); }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="item"></param> /// <returns></returns> /// <created>UPh,20.11.2015</created> /// <changed>UPh,20.11.2015</changed> // ******************************************************************************** internal void AddItem(TerminologyResultArgs item) { if (_Items == null) { _Items = new List <TerminologyResultArgs>(); } _Items.Add(item); UpdateDisplay(); }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <returns></returns> /// <created>UPh,31.10.2015</created> /// <changed>UPh,31.10.2015</changed> // ******************************************************************************** void TermBaseQuery_TerminologyResult(object sender, TerminologyResultArgs e) { if (InvokeRequired) { Invoke(_TerminologyResult, e); return; } else { OnTerminologyResult(e); } }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <returns></returns> /// <created>UPh,14.11.2015</created> /// <changed>UPh,14.11.2015</changed> // ******************************************************************************** void Query_TerminologyResult(object sender, TerminologyResultArgs e) { string origin = string.Concat("EasyTerm:", e.Origin); if (e.Status == TermStatus.prohibited) { _AddInComponent.ApplicationTools.SendTerminology(PAIAddIn, (int)e.RequestID, e.FindFrom, e.FindLen, e.Term1, "[" + e.Term2 + "]", origin, "[prohibited] " + e.Description); } else { _AddInComponent.ApplicationTools.SendTerminology(PAIAddIn, (int)e.RequestID, e.FindFrom, e.FindLen, e.Term1, e.Term2, origin, e.Description); } }
// ******************************************************************************** /// <summary> /// Creates a ListViewItem at a position /// </summary> /// <param name="inx"></param> /// <returns></returns> /// <created>UPh,25.10.2015</created> /// <changed>UPh,25.10.2015</changed> // ******************************************************************************** ListViewItem CreateLVItemAt(int inx) { ListViewItem item = new ListViewItem(""); TerminologyResultArgs termitem = GetItemAt(inx); if (termitem != null) { item.SubItems[0].Text = string.Format("{0} - {1}", termitem.FindFrom, termitem.FindFrom + termitem.FindLen); item.SubItems.Add(termitem.Term1); item.SubItems.Add(termitem.Term2); item.SubItems.Add(termitem.Origin); item.SubItems.Add(termitem.Description); } return(item); }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="item"></param> /// <returns></returns> /// <created>UPh,20.11.2015</created> /// <changed>UPh,20.11.2015</changed> // ******************************************************************************** internal void AddItem(TerminologyResultArgs item) { if (_Items == null) _Items = new List<TerminologyResultArgs>(); _Items.Add(item); UpdateDisplay(); }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="e"></param> /// <returns></returns> /// <created>UPh,20.11.2015</created> /// <changed>UPh,20.11.2015</changed> // ******************************************************************************** void OnTerminologyResult(TerminologyResultArgs e) { if (FindType != FindTypes.Terminology || _FindTermRequestID != e.RequestID) return; lstTerminology.AddItem(e); }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <returns></returns> /// <created>UPh,14.11.2015</created> /// <changed>UPh,14.11.2015</changed> // ******************************************************************************** void Query_TerminologyResult(object sender, TerminologyResultArgs e) { string origin = string.Concat("EasyTerm:", e.Origin); if (e.Status == TermStatus.prohibited) { _AddInComponent.ApplicationTools.SendTerminology(PAIAddIn, (int) e.RequestID, e.FindFrom, e.FindLen, e.Term1, "[" + e.Term2 + "]", origin, "[prohibited] " + e.Description); } else { _AddInComponent.ApplicationTools.SendTerminology(PAIAddIn, (int) e.RequestID, e.FindFrom, e.FindLen, e.Term1, e.Term2, origin, e.Description); } }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="match"></param> /// <returns></returns> /// <created>UPh,14.11.2015</created> /// <changed>UPh,14.11.2015</changed> // ******************************************************************************** private void HandleTerminologyMatch(long requestid, IndexItem match, int from, int len, List<TerminologyResultArgs> result = null) { // Get TermInfo TermBase termbase = _TermBases.FindTermBase(match.TermBaseID); if (termbase == null) return; TermInfo terminfo = null; if (!termbase.GetTermInfo(match.TermID, out terminfo, this)) return; if (terminfo.LanguageSets.Count != 2) return; TermInfo.Term srcterm = null; foreach (TermInfo.Term term in terminfo.LanguageSets[0].Terms) { ulong hash = TermIndex.MakeGlossaryHashCode(term.Text); if (match.Hash != hash) continue; srcterm = term; break; } if (srcterm == null) return; string definition = terminfo.Definition; foreach (TermInfo.Term term in terminfo.LanguageSets[1].Terms) { TerminologyResultArgs args = new TerminologyResultArgs(); if (term.Props != null) args.Status = term.Props.Status; else args.Status = TermStatus.none; args.RequestID = requestid; args.TermBaseID = match.TermBaseID; args.TermID = match.TermID; args.FindFrom = from; args.FindLen = len; args.Term1 = srcterm.Text; args.Term2 = term.Text; args.Origin = termbase.File.DisplayName; args.Description = definition; if (result != null) { result.Add(args); } else { _TermbaseQuery.FireTerminologyResult(args); } } }
// ******************************************************************************** /// <summary> /// /// </summary> /// <param name="requestid"></param> /// <param name="match"></param> /// <param name="from"></param> /// <param name="len"></param> /// <param name="result"></param> /// <created>UPh,20.03.2016</created> /// <changed>UPh,20.03.2016</changed> // ******************************************************************************** private void HandleProhibitedTerminologyMatch(bool bTargetLanguage, long requestid, IndexItem match, int from, int len, List<TerminologyResultArgs> result = null) { // Get TermInfo TermBase termbase = _TermBases.FindTermBase(match.TermBaseID); if (termbase == null) return; TermInfo terminfo = null; if (!termbase.GetTermInfo(match.TermID, out terminfo, this)) return; int langset = -1; if (bTargetLanguage) { if (terminfo.LanguageSets.Count < 2) return; langset = 1; } else { if (terminfo.LanguageSets.Count < 1) return; langset = 0; } foreach (TermInfo.Term term in terminfo.LanguageSets[langset].Terms) { if (term.Props == null || term.Props.Status != TermStatus.prohibited) continue; ulong hash = TermIndex.MakeGlossaryHashCode(term.Text); if (match.Hash != hash) continue; TerminologyResultArgs args = new TerminologyResultArgs(); args.Status = term.Props.Status; args.RequestID = requestid; args.TermBaseID = match.TermBaseID; args.TermID = match.TermID; args.FindFrom = from; args.FindLen = len; args.Term1 = term.Text; args.Term2 = term.Text; args.Origin = termbase.File.DisplayName; args.Description = ""; if (result != null) { result.Add(args); } else { _TermbaseQuery.FireTerminologyResult(args); } } }