internal void UpdateMenuItems(FilterMenuActions actions)
        {
            UpdateIgnoredMenuItems(actions);
            UpdateHiddenChangesMenuItems(actions);

            HandleMenuItem.UpdateAllMenus();
        }
        void UpdateIgnoredMenuItems(FilterMenuActions actions)
        {
            RemoveIgnoredMenuItems();

            if (!actions.Operations.HasFlag(FilterMenuOperations.Ignore))
            {
                HandleMenuItem.AddMenuItem(
                    mIgnoredSubmenuItem,
                    mIgnoredMenuItemsPriority,
                    DisabledMenuItem_Click, ValidateDisabledMenuItem);
                return;
            }

            mIgnoredByNameMenuItem      = GetIgnoredMenuItemName(actions.FilterByName);
            mIgnoredByExtensionMenuItem = GetIgnoredMenuItemName(actions.FilterByExtension);
            mIgnoredByFullPathMenuItem  = GetIgnoredMenuItemName(actions.FilterByFullPath);

            HandleMenuItem.AddMenuItem(
                mIgnoredByNameMenuItem,
                mIgnoredMenuItemsPriority,
                IgnoredByName_Click, ValidateEnabledMenuItem);

            if (!actions.Operations.HasFlag(FilterMenuOperations.IgnoreByExtension))
            {
                HandleMenuItem.AddMenuItem(
                    mIgnoredByExtensionMenuItem,
                    mIgnoredMenuItemsPriority,
                    IgnoredByExtension_Click, ValidateEnabledMenuItem);
            }

            HandleMenuItem.AddMenuItem(
                mIgnoredByFullPathMenuItem,
                mIgnoredMenuItemsPriority,
                IgnoredByFullPath_Click, ValidateEnabledMenuItem);
        }
        void UpdateHiddenChangesMenuItems(FilterMenuActions actions)
        {
            RemoveHiddenChangesMenuItems();

            if (!actions.Operations.HasFlag(FilterMenuOperations.HideChanged))
            {
                HandleMenuItem.AddMenuItem(
                    mHiddenChangesSubmenuItem,
                    mHiddenChangesMenuItemsPriority,
                    DisabledMenuItem_Click, ValidateDisabledMenuItem);
                return;
            }

            mHiddenChangesByNameMenuItem      = GetHiddenChangesMenuItemName(actions.FilterByName);
            mHiddenChangesByExtensionMenuItem = GetHiddenChangesMenuItemName(actions.FilterByExtension);
            mHiddenChangesByFullPathMenuItem  = GetHiddenChangesMenuItemName(actions.FilterByFullPath);

            HandleMenuItem.AddMenuItem(
                mHiddenChangesByNameMenuItem,
                mIgnoredMenuItemsPriority,
                HiddenChangesByName_Click, ValidateEnabledMenuItem);

            if (actions.Operations.HasFlag(FilterMenuOperations.HideChangedByExtension))
            {
                HandleMenuItem.AddMenuItem(
                    mHiddenChangesByExtensionMenuItem,
                    mIgnoredMenuItemsPriority,
                    HiddenChangesByExtension_Click, ValidateEnabledMenuItem);
            }

            HandleMenuItem.AddMenuItem(
                mHiddenChangesByFullPathMenuItem,
                mIgnoredMenuItemsPriority,
                HiddenChangesByFullPath_Click, ValidateEnabledMenuItem);
        }
        internal void UpdateMenuItems(GenericMenu menu, FilterMenuActions actions)
        {
            if (mIgnoredSubmenuItem != null)
            {
                UpdateIgnoredMenuItems(menu, actions.Operations);
            }

            if (mHiddenChangesSubmenuItem != null)
            {
                UpdateHiddenChangesMenuItems(menu, actions.Operations);
            }

            SetFilterMenuItemsLabels(actions);
        }
        void SetFilterMenuItemsLabels(FilterMenuActions actions)
        {
            if (mIgnoredSubmenuItem != null)
            {
                mIgnoredSubmenuItem.text           = actions.IgnoredTitle;
                mIgnoredByNameMenuItemContent.text = GetSubMenuText(
                    actions.IgnoredTitle, actions.FilterByName);
                mIgnoredByExtensionMenuItemContent.text = GetSubMenuText(
                    actions.IgnoredTitle, actions.FilterByExtension);
                mIgnoredByFullPathMenuItemContent.text = GetSubMenuText(
                    actions.IgnoredTitle, actions.FilterByFullPath);
            }

            if (mHiddenChangesSubmenuItem != null)
            {
                mHiddenChangesSubmenuItem.text           = actions.HiddenChangesTitle;
                mHiddenChangesByNameMenuItemContent.text = GetSubMenuText(
                    actions.HiddenChangesTitle, actions.FilterByName);
                mHiddenChangesByExtensionMenuItemContent.text = GetSubMenuText(
                    actions.HiddenChangesTitle, actions.FilterByExtension);
                mHiddenChangesByFullPathMenuItemContent.text = GetSubMenuText(
                    actions.HiddenChangesTitle, actions.FilterByFullPath);
            }
        }