Exemple #1
0
        public override void FocusOutHandler(Event e)
        {
            FocusEvent fe = (FocusEvent)e;

            if (IsOurFocus((DisplayObject)e.Target))
            {
                DropDownController.ProcessFocusOut(e);
            }

            base.FocusOutHandler(e);
        }
        /// <summary>using eDriven.Gui.Components;

        /// 
        /// </summary>
        public DropDownListBase()
        {
            AllowMultipleSelection = false;

            DropDownController = new DropDownController();
        }
Exemple #3
0
        protected override void KeyDownHandler(Event e)
        {
            if (!Enabled)
            {
                return;
            }

            KeyboardEvent ke = (KeyboardEvent)e;

            if (!DropDownController.ProcessKeyDown(e))
            {
                var navigationKey  = ke.KeyCode;
                var navigationUnit = NavigationUnitUtil.GetNavigationUnit(navigationKey);

                /*if (findKey(ke.charCode))
                 * {
                 *  event.preventDefault();
                 *  return;
                 * }*/

                if (!NavigationUnitUtil.IsNavigationUnit(navigationKey))
                {
                    return;
                }

                var proposedNewIndex = NO_SELECTION;
                int currentIndex;

                if (IsDropDownOpen)
                {
                    // Normalize the proposed index for getNavigationDestinationIndex
                    currentIndex     = UserProposedSelectedIndex < NO_SELECTION ? NO_SELECTION : UserProposedSelectedIndex;
                    proposedNewIndex = Layout.GetNavigationDestinationIndex(currentIndex, navigationUnit, ArrowKeysWrapFocus);

                    if (proposedNewIndex != NO_SELECTION)
                    {
                        ChangeHighlightedSelection(proposedNewIndex);
                        e.PreventDefault();
                    }
                }
                else if (null != DataProvider)
                {
                    var maxIndex = DataProvider.Length - 1;

                    // Normalize the proposed index for getNavigationDestinationIndex
                    currentIndex = CaretIndex < NO_SELECTION ? NO_SELECTION : CaretIndex;

                    switch (navigationUnit)
                    {
                    case NavigationUnit.Up:
                    {
                        if (ArrowKeysWrapFocus &&
                            (currentIndex == 0 ||
                             currentIndex == NO_SELECTION ||
                             currentIndex == CUSTOM_SELECTED_ITEM))
                        {
                            proposedNewIndex = maxIndex;
                        }
                        else
                        {
                            proposedNewIndex = currentIndex - 1;
                        }
                        e.PreventDefault();
                        break;
                    }

                    case NavigationUnit.Down:
                    {
                        if (ArrowKeysWrapFocus &&
                            (currentIndex == maxIndex ||
                             currentIndex == NO_SELECTION ||
                             currentIndex == CUSTOM_SELECTED_ITEM))
                        {
                            proposedNewIndex = 0;
                        }
                        else
                        {
                            proposedNewIndex = currentIndex + 1;
                        }
                        e.PreventDefault();
                        break;
                    }

                    case NavigationUnit.PageUp:
                    {
                        proposedNewIndex = currentIndex == NO_SELECTION ?
                                           NO_SELECTION : Math.Max(currentIndex - PAGE_SIZE, 0);
                        e.PreventDefault();
                        break;
                    }

                    case NavigationUnit.PageDown:
                    {
                        proposedNewIndex = currentIndex == NO_SELECTION ?
                                           PAGE_SIZE : (currentIndex + PAGE_SIZE);
                        e.PreventDefault();
                        break;
                    }

                    case NavigationUnit.Home:
                    {
                        proposedNewIndex = 0;
                        e.PreventDefault();
                        break;
                    }

                    case NavigationUnit.End:
                    {
                        proposedNewIndex = maxIndex;
                        e.PreventDefault();
                        break;
                    }
                    }

                    proposedNewIndex = Math.Min(proposedNewIndex, maxIndex);

                    if (proposedNewIndex >= 0)
                    {
                        SetSelectedIndex(proposedNewIndex, true);
                    }
                }
            }
            else
            {
                e.PreventDefault();
            }
        }
Exemple #4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="commit"></param>
 public void CloseDropDown(bool commit)
 {
     DropDownController.CloseDropDown(commit);
 }
Exemple #5
0
        //--------------------------------------------------------------------------
        //
        //  Methods
        //
        //--------------------------------------------------------------------------

        /// <summary>
        /// Opens drop down
        /// </summary>
        public void OpenDropDown()
        {
            DropDownController.OpenDropDown();
        }
Exemple #6
0
        /// <summary>using eDriven.Gui.Components;

        ///
        /// </summary>
        public DropDownListBase()
        {
            AllowMultipleSelection = false;

            DropDownController = new DropDownController();
        }