XCore.RecordFilterListProvider.OnAdjustFilterSelection C# (CSharp) Method

OnAdjustFilterSelection() public method

May want to update / reload the list based on user selection.
public OnAdjustFilterSelection ( object argument ) : bool
argument object
return bool
		public virtual bool OnAdjustFilterSelection(object argument)
		{
			return false;
		}
	}

Usage Example

示例#1
0
		/// <summary>
		/// Initialize the IxCoreColleague
		/// </summary>
		/// <param name="mediator"></param>
		/// <param name="viewConfiguration"></param>
		public virtual void Init(Mediator mediator, XmlNode viewConfiguration)
		{
			CheckDisposed();

			XmlNode clerkConfiguration = ToolConfiguration.GetClerkNodeFromToolParamsNode(viewConfiguration);
			m_mediator = mediator;
			m_clerkConfiguration = clerkConfiguration;
			m_id = XmlUtils.GetOptionalAttributeValue(clerkConfiguration, "id", "missingId");
			m_clerkProvidingRootObject = XmlUtils.GetOptionalAttributeValue(clerkConfiguration,"clerkProvidingOwner");
			m_shouldHandleDeletion = XmlUtils.GetOptionalBooleanAttributeValue(clerkConfiguration, "shouldHandleDeletion", true);
			m_fAllowDeletions = XmlUtils.GetOptionalBooleanAttributeValue(clerkConfiguration, "allowDeletions", true);
			var cache = (FdoCache)m_mediator.PropertyTable.GetValue("cache");
			m_list = RecordList.Create(cache, mediator, clerkConfiguration.SelectSingleNode("recordList"));
			m_list.Clerk = this;
			m_relatedClerk = XmlUtils.GetOptionalAttributeValue(clerkConfiguration, "relatedClerk");
			m_relationToRelatedClerk = XmlUtils.GetOptionalAttributeValue(clerkConfiguration, "relationToRelatedClerk");

			TryRestoreSorter(mediator, clerkConfiguration, cache);
			TryRestoreFilter(mediator, clerkConfiguration, cache);
			m_list.ListChanged += OnListChanged;
			m_list.AboutToReload += m_list_AboutToReload;
			m_list.DoneReload += m_list_DoneReload;

			XmlNode recordFilterListProviderNode = ToolConfiguration.GetDefaultRecordFilterListProvider(clerkConfiguration);
			bool fSetFilterMenu = false;
			if (recordFilterListProviderNode != null)
			{
				m_filterProvider = RecordFilterListProvider.Create(m_mediator, recordFilterListProviderNode);
				if (m_filterProvider != null && m_list.Filter != null)
				{
					// find any matching persisted menubar filter
					// NOTE: for now assume we can only set/persist one such menubar filter at a time.
					foreach (RecordFilter menuBarFilterOption in m_filterProvider.Filters)
					{
						if (m_list.Filter.Contains(menuBarFilterOption))
						{
							m_activeMenuBarFilter = menuBarFilterOption;
							m_filterProvider.OnAdjustFilterSelection(m_activeMenuBarFilter);
							m_mediator.PropertyTable.SetDefault(CurrentFilterPropertyTableId, m_activeMenuBarFilter.id, false, PropertyTable.SettingsGroup.LocalSettings);
							fSetFilterMenu = true;
							break;
						}
					}
				}
			}
			if (!fSetFilterMenu)
			{
				OnAdjustFilterSelection(null);
			}

			// we never want to persist this value, since it is dependent upon the filter property.
			m_mediator.PropertyTable.SetPropertyPersistence(CurrentFilterPropertyTableId, false, PropertyTable.SettingsGroup.LocalSettings);

			//we handled the tree bar only if we are the root clerk
			if (m_clerkProvidingRootObject == null)
			{
				m_recordBarHandler = RecordBarHandler.Create(m_mediator, clerkConfiguration);//,m_flid);
			}
			else
			{
				RecordClerk clerkProvidingRootObject;
				Debug.Assert(TryClerkProvidingRootObject(out clerkProvidingRootObject),
					"We expected to find clerkProvidingOwner '" + m_clerkProvidingRootObject +  "'. Possibly misspelled.");
			}

			//mediator. TraceLevel = TraceLevel.Info;

			//we do not want to be a top-level colleague, because
			//if we were, we would always receive events, for example navigation events
			//which might be intended for another RecordClerk, specifically the RecordClerk
			//being used by the currently active vector editor, browse view, etc.

			//so, instead, we let the currently active view include us as a "child" colleague.
			//NO! mediator.AddColleague(this);



			// Install this object in the PropertyTable so that others can find it.
			// NB: This *must* be done before the call to SetupDataContext,
			// or we are asking for an infinite loop, has SetupDataContext()
			// causes user interface widgets to wake up and look for this object.
			// If we have not registered the existence of this object yet in the property table,
			// those widgets will be inclined to try to create us.  Hence, the infinite loop.

			//Note that, on the downside, this means that we need to be careful
			//not to broadcast any record changes until we are actually initialize enough
			//to deal with the resulting request that will come from those widgets.

			StoreClerkInPropertyTable(clerkConfiguration);

			SetupDataContext(false);

		}