Example #1
0
        /// <summary>
        /// Tells the instance that the <see cref="IContentAssistTextBox.ContentAssistModel"/> property has been changed.
        /// </summary>
        /// <param name="contentAssistModel">New model value</param>
        protected virtual void OnContentAssistModelChanged(IContentAssistModel contentAssistModel)
        {
            if (contentAssistModel == null)
            {
                return;
            }

            // No provider -> no box
            IContentAssistItemProvider itemProvider = contentAssistModel.ItemProvider;

            if (itemProvider == null)
            {
                return;
            }

            // Set up auto complete menu
            AutocompleteMenu autocompleteMenu = new AutocompleteMenu(this);

            autocompleteMenu.SearchPattern     = contentAssistModel.SearchPattern;
            autocompleteMenu.MinFragmentLength = contentAssistModel.MinFragmentLength;
            autocompleteMenu.AppearInterval    = contentAssistModel.AppearInterval;
            autocompleteMenu.AllowTabKey       = contentAssistModel.AllowTab;
            autocompleteMenu.AlwaysShowTooltip = contentAssistModel.AlwaysShowInfotip;
            autocompleteMenu.ToolTipDuration   = contentAssistModel.InfotipDuration;

            autocompleteMenu.Items.SetAutocompleteItems(new ContentAssistItemProjection(autocompleteMenu, itemProvider));
            autocompleteMenu.Selected += (sender, args) => contentAssistModel.OnItemInserted((ContentAssistItem)args.Item.Tag, SelectionStart - args.Item.Text.Length);  // TODO Unregister event
        }
Example #2
0
 /// <summary>
 /// Creates a new instance that projects each <see cref="ContentAssistItem"/>
 /// provided by the given <paramref name="contentAssistItemProvider"/> as
 /// <see cref="AutocompleteItem"/> into the given <paramref name="autocompleteMenu"/>.
 /// </summary>
 /// <param name="autocompleteMenu">Autocomplete menu</param>
 /// <param name="contentAssistItemProvider">Item provider</param>
 /// <exception cref="ArgumentNullException">If any argument is NULL</exception>
 public ContentAssistItemProjection(AutocompleteMenu autocompleteMenu,
                                    IContentAssistItemProvider contentAssistItemProvider)
 {
     fAutocompleteMenu          = autocompleteMenu ?? throw new ArgumentNullException(nameof(autocompleteMenu));
     fContentAssistItemProvider = contentAssistItemProvider ?? throw new ArgumentNullException(nameof(contentAssistItemProvider));
 }