/// ------------------------------------------------------------------------------------ /// <summary> /// Handles the Click event of the m_btnOk control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> /// ------------------------------------------------------------------------------------ private void btnOk_Click(object sender, EventArgs e) { CmCell cell; string fmtClassFlid = ScrScriptureNote.kClassId + ",{0}|"; StringBuilder bldr = new StringBuilder(); m_filter.RowsOS[0].CellsOS.RemoveAll(); if (chkStatus.Checked) { bldr.AppendFormat(fmtClassFlid, (int)ScrScriptureNote.ScrScriptureNoteTags.kflidResolutionStatus); cell = new CmCell(); m_filter.RowsOS[0].CellsOS.Append(cell); int value = (rbResolved.Checked ? 1 : 0); cell.BuildIntegerMatchCriteria(CmCell.ComparisionTypes.kEquals, value, value); } if (chkType.Checked) { bldr.AppendFormat(fmtClassFlid, (int)CmAnnotation.CmAnnotationTags.kflidAnnotationType); cell = new CmCell(); m_filter.RowsOS[0].CellsOS.Append(cell); cell.BuildObjectMatchCriteria(rbConsultant.Checked ? LangProject.kguidAnnConsultantNote : LangProject.kguidAnnTranslatorNote, false, false); } if (chkScrRange.Checked) { bldr.AppendFormat(fmtClassFlid, (int)CmBaseAnnotation.CmBaseAnnotationTags.kflidBeginRef); bldr.AppendFormat(fmtClassFlid, (int)CmBaseAnnotation.CmBaseAnnotationTags.kflidBeginRef); ScrReference startRef = (scrBookFrom.ScReference.Chapter == 1 && scrBookFrom.ScReference.Verse == 1) ? new ScrReference(scrBookFrom.ScReference.Book, 0, 0, m_scr.Versification) : scrBookFrom.ScReference; cell = new CmCell(); m_filter.RowsOS[0].CellsOS.Append(cell); cell.BuildIntegerMatchCriteria(CmCell.ComparisionTypes.kGreaterThanEqual, startRef, 0); cell = new CmCell(); m_filter.RowsOS[0].CellsOS.Append(cell); cell.BuildIntegerMatchCriteria(CmCell.ComparisionTypes.kLessThanEqual, scrBookTo.ScReference, 0); } m_filter.ColumnInfo = bldr.ToString().TrimEnd('|'); if (chkCategory.Checked) tvCatagories.UpdateFilter(m_filter); }
/// ------------------------------------------------------------------------------------ /// <summary> /// Updates the specified filter with the selected category hvos. /// </summary> /// ------------------------------------------------------------------------------------ public void UpdateFilter(ICmFilter filter) { CmCell cell; string catColInfo = ScrScriptureNote.kClassId + "," + (int)ScrScriptureNote.ScrScriptureNoteTags.kflidCategories + "|"; StringBuilder bldr = new StringBuilder(); if (SelectedHvos.Count == 0) { bldr.Append(catColInfo); cell = new CmCell(); filter.RowsOS[0].CellsOS.Append(cell); cell.BuildObjectMatchCriteria(); } else { foreach (int matchVal in SelectedHvos) { bldr.Append(catColInfo); cell = new CmCell(); filter.RowsOS[0].CellsOS.Append(cell); cell.BuildObjectMatchCriteria(matchVal, true, false); } } if (bldr.Length > 0) { catColInfo = "|" + bldr.ToString().TrimEnd('|'); if (filter.ColumnInfo == null) filter.ColumnInfo = catColInfo; else filter.ColumnInfo += catColInfo; filter.ColumnInfo = filter.ColumnInfo.TrimStart('|'); } }