protected virtual void OnExecuteActionPropertyChanged(ActionPropertyChangedArgs args)
 {
     lock (m_executeActionPropertyChangedLock)
     {
         if (m_executeActionPropertyChanged != null)
         {
             m_executeActionPropertyChanged(this, args);
         }
     }
 }
        /// <summary>
        /// Handles changes in ActionProperty Values
        /// If the ActionProperty is the EXECUTE property then it will call the content item's AddAction
        /// to potentially change the action icon.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        public virtual void ActionPropertyChangedHandler(object sender, ActionPropertyChangedArgs args)
        {
            string actionType = null;
            bool actionValue = false;
            if (args.PropertyName == PropertyNames.Execute)
            {
                actionType = args.ActionType;
                actionValue = (bool) args.Value;
            }

            foreach (SummaryContentControl contentControl in m_summaryContentControlList.FindAll(c => c.Selected))
            {
                UIContentItem contentItem;
                contentControl.ContentItems.TryGetValue(args.ActionType, out contentItem);
                if (contentItem == null)
                {
                    continue;
                }
                IActionProperty property = contentItem.GetClientActionProperty(args.PropertyName);
                if (property == null)
                {
                    continue;
                }
                property.Value = args.Value;

                if (actionType != null)     // we're handling the EXECUTE property
                {
                    contentControl.AddAction(actionType, actionValue);
                }
                contentItem.RefreshClientActionProperties();

				if (!selectAllCheckBox.Checked)
				{
					bool clean, pdf;
					CheckCleanOrPdfAction(contentControl, out clean, out pdf);
					OnSelectedContentHasCleanOrPDFAction(new SelectedContentHasCleanOrPDFActionArgs(clean, pdf));
				}
            }
        }
		private void ActionPropertyChanged(object sender, EventArgs args)
		{
			ActionPropertyChangedArgs apc;
			if (sender == convertToPDFCheckBox)
			{
				apc = new ActionPropertyChangedArgs((string) convertToPDFCheckBox.Tag, PropertyNames.Execute, convertToPDFCheckBox.Checked);
			}
			else if ((sender == masterSkipCleaningCheckBox) && (masterSkipCleaningCheckBox.CheckState != CheckState.Indeterminate))
			{
				apc = new ActionPropertyChangedArgs((string)skipOfficeCleaningCheckBox.Tag, PropertyNames.Execute, !masterSkipCleaningCheckBox.Checked);
				OnActionPropertyChangedClicked(apc);
				apc = new ActionPropertyChangedArgs((string)skipPdfCleaningCheckBox.Tag, PropertyNames.Execute, !masterSkipCleaningCheckBox.Checked);
				OnActionPropertyChangedClicked(apc);
				return;
			}
			else if (sender == skipOfficeCleaningCheckBox)
			{
				apc = new ActionPropertyChangedArgs((string) skipOfficeCleaningCheckBox.Tag, PropertyNames.Execute, !skipOfficeCleaningCheckBox.Checked);
			}
			else if (sender == skipPdfCleaningCheckBox)
			{
				apc = new ActionPropertyChangedArgs((string) skipPdfCleaningCheckBox.Tag, PropertyNames.Execute, !skipPdfCleaningCheckBox.Checked);
			}
			else if (sender == removeCommentsCheckBox)
			{
				apc = new ActionPropertyChangedArgs((string) removeCommentsCheckBox.Tag, PropertyNames.Comments, removeCommentsCheckBox.Checked);
			}
			else if (sender == removeTrackChangesCheckBox)
			{
				apc = new ActionPropertyChangedArgs((string) removeTrackChangesCheckBox.Tag, PropertyNames.TrackChanges, removeTrackChangesCheckBox.Checked);
			}
			else
			{
				apc = new ActionPropertyChangedArgs(string.Empty, string.Empty, null);
			}
			OnActionPropertyChangedClicked(apc);
		}
		protected virtual void OnActionPropertyChangedClicked(ActionPropertyChangedArgs args)
		{
			if (m_selectedContentItemsChanged)
			{
				return;
			}
			lock (m_actionPropertyChangedClickedLock)
			{
				if (m_actionPropertyChangedClicked != null)
				{
					m_actionPropertyChangedClicked(this, args);
				}
			}
		}