Example #1
0
		/// ------------------------------------------------------------------------------------
		/// <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('|');
			}
		}