Exemple #1
0
        public static void Main(string[] args)
        {
            var action = DynamicSelectionActionWithCondition.CreateNew(ctx =>
            {
                if (Station.CheckFreeSlots(out var countFreeSlots))
                {
                    return(SelectionAction
                           .CreateNew($"Количество свободных мест для стоянки - {countFreeSlots}")
                           .AddAction("1", "Принять самолёт", DataInputAction.CreateNew("Укажите номер борта самолёта", "airNum")
                                      .SetDescendantAction(WorkAction.CreateNew(ctx1 =>
                    {
                        var id = ctx1["airNum"];
                        Console.WriteLine(Station.TryTakeAircraft(id)
                                                                        ? $"Самолёт с номером борта '{id}' принят"
                                                                        : $"Самолёт с номером борта '{id}' не удалось принять");
                    })))
                           .AddAction("2", "Отправить самолёт", SendAircraftAction()));
                }

                return(SelectionAction
                       .CreateNew("Свободных мест для самолётов нет")
                       .AddAction("1", "Отправить самолёт", SendAircraftAction()));
            });

            var worker = new ConsoleActionsWorker(action, new WorkerSettings
            {
                SelectDescription = "Введите номер действия",
                ReselectDescriptionIfUnknownAction = "Указанное действие не найдено. Повторите выбор"
            });

            worker.Start();
        }
Exemple #2
0
        public bool ModifySelection(Point controlPt, MapToolContext ctx, SelectionAction action)
        {
            bool selectionChanged;

            if (TryGetItemFromViewportPt(controlPt, ctx, out var item, out var itemTileBounds))
            {
                Item itemCopy = new Item(item.RawValue);
                Debug.Assert(itemCopy.IsRoot);
                SelectedItem selectedItem = new SelectedItem(itemCopy, itemTileBounds);

                switch (action)
                {
                case SelectionAction.Add:
                    selectionChanged = selectedItems.Add(selectedItem);
                    break;

                case SelectionAction.Remove:
                    selectionChanged = selectedItems.Remove(selectedItem);
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(action), action, null);
                }
                if (selectionChanged)
                {
                    OnSelectionChanged();
                }
            }
Exemple #3
0
        public static void Main(string[] args)
        {
            var action = DynamicSelectionActionWithCondition.CreateNew(ctx =>
            {
                if (Storage.CheckFreeSlots(out var countFreeSlots))
                {
                    return(SelectionAction
                           .CreateNew($"Количество свободных слотов - {countFreeSlots}")
                           .AddAction("1", "Создать заказ", SelectionAction.CreateNew()
                                      .AddAction("1", "Создать заказ со свободным номером", ActionsHelper.CreateOrderWithFreeNumberAction(Storage))
                                      .AddAction("2", "Создать заказ с номером", ActionsHelper.CreateOrderWithForceNumberAction(ctx, Storage)))
                           .AddAction("2", "Выполнить следующий заказ", ActionsHelper.ActionForExecutionOrder(Storage)));
                }

                return(SelectionAction
                       .CreateNew("Свободных слотов на заказы нет")
                       .AddAction("1", "Выполнить следующий заказ", ActionsHelper.ActionForExecutionOrder(Storage)));
            });

            var worker = new ConsoleActionsWorker(action, new WorkerSettings
            {
                SelectDescription = "Введите номер действия",
                ReselectDescriptionIfUnknownAction = "Указанное действие не найдено. Повторите выбор"
            });

            worker.Start();
        }
Exemple #4
0
        /// <summary>
        /// Вспомогательная функция для обработки действий при выборе элемента в режиме одиночного выделения элементов.
        /// </summary>
        /// <remarks>
        /// Helper function for handling actions when selecting an item in single item selection mode.
        /// </remarks>
        internal void SingleSelection(bool value, SelectionAction state)
        {
            if (ParentUIEnumSwitch != null)
            {
                IsSelected = value;

                switch (state)
                {
                case SelectionAction.FirstSelection:
                    if (IsSelected)
                    {
                        if (FirstTimeSelected)
                        {
                            FirstTimeSelected = false;
                        }
                        OnSelected(new RoutedEventArgs(Selector.SelectedEvent, this));
                    }
                    ParentUIEnumSwitch.HandleSingleSelection(DataContext, false);
                    break;

                case SelectionAction.Selection:
                    if (IsSelected)
                    {
                        OnSelected(new RoutedEventArgs(Selector.SelectedEvent, this));
                    }
                    ParentUIEnumSwitch.HandleSingleSelection(DataContext, true);
                    break;
                }
            }
        }
Exemple #5
0
 private void OnTapGestureRecognizerTapped(object sender, EventArgs e)
 {
     if (IsSelectable)
     {
         OnTapped();
         SelectionAction?.Invoke(this);
     }
 }
 private void OnSelectedColliderChanged(SelectionAction selectionAction, MobileTouchPickable mobileTouchPickable)
 {
     if (mobileTouchPickable != null)
     {
         if (selectionAction == SelectionAction.Select)
         {
             InvokeTransformActionSafe(OnPickableTransformSelected, mobileTouchPickable.PickableTransform);
         }
         else if (selectionAction == SelectionAction.Deselect)
         {
             InvokeTransformActionSafe(OnPickableTransformDeselected, mobileTouchPickable.PickableTransform);
         }
     }
 }
Exemple #7
0
        private void OnSelectedColliderChanged(SelectionAction selectionAction, Component selectionCollider)
        {
            var mobileTouchPickable = selectionCollider.GetComponent <MobileTouchPickable>();

            if (mobileTouchPickable != null)
            {
                if (selectionAction == SelectionAction.Select)
                {
                    InvokeSelectionSafe(OnPickableTransformSelected, mobileTouchPickable.PickableTransform);
                }
                else if (selectionAction == SelectionAction.Deselect)
                {
                    InvokeSelectionSafe(OnPickableTransformDeselected, mobileTouchPickable.PickableTransform);
                }
            }
        }
 private void OnSelectedColliderChangedExtended(SelectionAction selectionAction, MobileTouchPickable mobileTouchPickable, bool isDoubleClick, bool isLongTap)
 {
     if (mobileTouchPickable != null)
     {
         if (selectionAction == SelectionAction.Select)
         {
             PickableSelectedData pickableSelectedData = new PickableSelectedData()
             {
                 SelectedTransform = mobileTouchPickable.PickableTransform,
                 IsDoubleClick     = isDoubleClick,
                 IsLongTap         = isLongTap
             };
             InvokeGenericActionSafe(OnPickableTransformSelectedExtended, pickableSelectedData);
         }
     }
 }
        public static void Main(string[] args)
        {
            var enterAction = DataInputAction.CreateNew($"Введите логин:", "login")
                              .SetDescendantAction(DynamicSelectionActionWithCondition.CreateNew(ctx =>
            {
                var login = ctx["login"];
                if (RegistrationStorage.ContainsKey(login))
                {
                    Console.WriteLine($"Здравствуйте, {RegistrationStorage[login]}");
                    return(new WorkAction(ctx1 => { }));
                }

                Console.WriteLine("Пользователь не найден. Зарегистрируйтесь...");
                return(DataInputAction.CreateNew("Введите логин:", "newLogin")
                       .SetDescendantAction(DataInputAction.CreateNew("Введите имя:", "newName")
                                            .SetDescendantAction(new WorkAction(ctx1 =>
                {
                    var newLogin = ctx1["newLogin"];
                    if (RegistrationStorage.ContainsKey(newLogin))
                    {
                        Console.WriteLine($"Логин {newLogin} занят");
                        return;
                    }
                    var newName = ctx1["newName"];
                    RegistrationStorage.Add(newLogin, newName);
                    Console.WriteLine($"Прошла регистрация логин - {newLogin}, имя - {newName}");
                }))));
            }));

            var action = SelectionAction.CreateNew()
                         .AddAction("1", "Ввести учетную запись", enterAction)
                         .AddAction("2", "Показать имена всех пользователей", WorkAction.CreateNew(ctx =>
            {
                foreach (var name in RegistrationStorage.Values)
                {
                    Console.WriteLine(name);
                }
            }));

            var worker = new ConsoleActionsWorker(action, new WorkerSettings
            {
                SelectDescription = "Введите номер действия",
                ReselectDescriptionIfUnknownAction = "Указанное действие не найдено. Повторите выбор"
            });

            worker.Start();
        }
Exemple #10
0
        /// <summary>
        /// Вспомогательная функция для обработки действий при выборе элемента в режиме множественного выделения элементов с выбором элемента по умолчанию, если ничего не выбрано.
        /// </summary>
        /// <remarks>
        /// Helper function for handling actions when selecting an item in multiple selection mode with a default item selection if nothing is selected.
        /// </remarks>
        internal void MultipleSelectionWithDefault(bool value, SelectionAction state)
        {
            if (ParentUIEnumSwitch != null)
            {
                IsSelected = value;

                switch (state)
                {
                case SelectionAction.FirstSelection:
                    if (IsSelected)
                    {
                        if (FirstTimeSelected)
                        {
                            FirstTimeSelected = false;
                        }

                        OnSelected(new RoutedEventArgs(Selector.SelectedEvent, this));
                    }
                    else
                    {
                        if (FirstTimeSelected)
                        {
                            FirstTimeSelected = false;
                        }

                        OnUnselected(new RoutedEventArgs(Selector.UnselectedEvent, this));
                    }
                    ParentUIEnumSwitch.HandleMultipleSelectionWithDefault(DataContext);
                    break;

                case SelectionAction.Selection:
                    if (IsSelected)
                    {
                        OnSelected(new RoutedEventArgs(Selector.SelectedEvent, this));
                    }
                    else
                    {
                        OnUnselected(new RoutedEventArgs(Selector.UnselectedEvent, this));
                    }
                    ParentUIEnumSwitch.HandleMultipleSelectionWithDefault(DataContext);
                    break;
                }
            }
        }
    private void PlayerSelectionInputChecks(XboxController controller)
    {
        if (GameManager.S.State == GameState.PlayerSelection)
        {
            //Select a player with A/B/X/Y (does not confirm the selection)

            /*
             * if (XCI.GetButtonDown(XboxButton.A, controller)) {
             * Select(controller, SelectionAction.Small1);
             * }
             * if (XCI.GetButtonDown(XboxButton.B, controller)) {
             * Select(controller, SelectionAction.Tall1);
             * }
             * if (XCI.GetButtonDown(XboxButton.X, controller)) {
             * Select(controller, SelectionAction.Small2);
             * }
             * if (XCI.GetButtonDown(XboxButton.Y, controller)) {
             * Select(controller, SelectionAction.Tall2);
             * } */

            if (XCI.GetButtonDown(XboxButton.DPadUp, controller))
            {
                int             index     = (int)controller - 1;
                SelectionAction newAction = ShiftSelection(true, index);
                currentSelection[index] = newAction;
                Select(controller, newAction);
            }

            if (XCI.GetButtonDown(XboxButton.DPadDown, controller))
            {
                int             index     = (int)controller - 1;
                SelectionAction newAction = ShiftSelection(true, index);
                currentSelection[index] = newAction;
                Select(controller, newAction);
            }

            //If you've selected a player, press Start to confirm it
            if (XCI.GetButtonDown(XboxButton.Start, controller) || XCI.GetButtonDown(XboxButton.A, controller))
            {
                Select(controller, SelectionAction.Confirm);
            }
        }
    }
    private void Select(XboxController controller, SelectionAction action)
    {
        //Select a player with A/B/X/Y (does not confirm the selection)
        if (action == SelectionAction.Small1)
        {
            controllerMap[controller] = new PlayerSelectionInfo(GameManager.S.SmallPlayer1, false);
        }
        if (action == SelectionAction.Tall1)
        {
            controllerMap[controller] = new PlayerSelectionInfo(GameManager.S.TallPlayer1, false);
        }
        if (action == SelectionAction.Small2)
        {
            controllerMap[controller] = new PlayerSelectionInfo(GameManager.S.SmallPlayer2, false);
        }
        if (action == SelectionAction.Tall2)
        {
            controllerMap[controller] = new PlayerSelectionInfo(GameManager.S.TallPlayer2, false);
        }

        //If you've selected a player, press Start to confirm it
        if (action == SelectionAction.Confirm && controllerMap.ContainsKey(controller))
        {
            IPlayer selectedPlayer = controllerMap[controller].player;

            //Check if someone else is already using the player
            bool selectedPlayerIsAvailable = true;
            foreach (PlayerSelectionInfo info in controllerMap.Values)
            {
                if (info.isConfirmed && info.player == selectedPlayer)
                {
                    selectedPlayerIsAvailable = false;
                }
            }

            //If the player is available, lock in your selection.
            if (selectedPlayerIsAvailable)
            {
                controllerMap[controller] = new PlayerSelectionInfo(selectedPlayer, true);
            }
        }
    }
Exemple #13
0
        public bool ModifySelection(Rectangle marqueeBounds, MapToolContext ctx, SelectionAction action)
        {
            bool selectionChanged = false;
            var  tileBounds       = ctx.ToTiles(marqueeBounds);

            for (int tileX = tileBounds.Left; tileX < tileBounds.Right; tileX++)
            {
                for (int tileY = tileBounds.Top; tileY < tileBounds.Bottom; tileY++)
                {
                    if (TryGetItemFromItemPt(new Point(tileX, tileY), out var item, out var itemTileBounds))
                    {
                        Item itemCopy = new Item(item.RawValue);
                        Debug.Assert(itemCopy.IsRoot);
                        SelectedItem selectedItem = new SelectedItem(itemCopy, itemTileBounds);
                        switch (action)
                        {
                        case SelectionAction.Add:
                            selectionChanged |= selectedItems.Add(selectedItem);
                            break;

                        case SelectionAction.Remove:
                            selectionChanged |= selectedItems.Remove(selectedItem);
                            break;

                        default:
                            throw new ArgumentOutOfRangeException(nameof(action), action, null);
                        }
                    }
                }
            }

            if (selectionChanged)
            {
                OnSelectionChanged();
            }

            return(selectionChanged);
        }
 private void list_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     SelectionAction?.Invoke();
 }
Exemple #15
0
        /// <summary>
        /// Raises the <see cref="E:System.Web.UI.Control.Init" /> event.
        /// </summary>
        /// <param name="e">An <see cref="T:System.EventArgs" /> object that contains the event data.</param>
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            _blockTypeEntityId = EntityTypeCache.GetId <Block>().Value;
            _block             = new BlockService(new RockContext()).Get(this.BlockId);

            pnlHeading.Visible   = GetAttributeValue(AttributeKey.ShowBlockTitle).AsBoolean();
            lBlockTitle.Text     = GetAttributeValue(AttributeKey.BlockTitleText);
            lBlockTitleIcon.Text = "<i class='" + GetAttributeValue(AttributeKey.BlockTitleIconCssClass) + "'></i>";

            var filterButtonSize = GetAttributeValue(AttributeKey.FilterButtonSize).AsInteger();

            btnResetFilters.RemoveCssClass("btn-sm").RemoveCssClass("btn-xs");
            btnFilter.RemoveCssClass("btn-sm").RemoveCssClass("btn-xs");
            if (filterButtonSize == 2)
            {
                btnResetFilters.AddCssClass("btn-sm");
                btnFilter.AddCssClass("btn-sm");
            }
            else if (filterButtonSize == 3)
            {
                btnResetFilters.AddCssClass("btn-xs");
                btnFilter.AddCssClass("btn-xs");
            }

            int perRow = GetAttributeValue(AttributeKey.FiltersPerRow).AsInteger();

            if (perRow > 12)
            {
                perRow = 12;
            }

            _filtersPerRow = perRow;

            gFilters.DataKeyNames              = new string[] { "Id" };
            gFilters.Actions.ShowAdd           = true;
            gFilters.Actions.AddClick         += gFilters_Add;
            gFilters.Actions.ShowExcelExport   = false;
            gFilters.Actions.ShowMergeTemplate = false;

            edtFilter.IsActive              = true;
            edtFilter.IsAnalyticsVisible    = false;
            edtFilter.IsAnalyticHistory     = false;
            edtFilter.IsCategoriesVisible   = false;
            edtFilter.IsIndexingEnabled     = false;
            edtFilter.IsIconCssClassVisible = false;
            edtFilter.AllowSearchVisible    = false;
            edtFilter.IsShowInGridVisible   = false;

            // Hide these attribute settings manually since there isn't a property to do so.
            Control cbEnableHistory = edtFilter.FindControl("_cbEnableHistory");

            if (cbEnableHistory != null)
            {
                cbEnableHistory.Visible = false;
            }
            Control cbRequired = edtFilter.FindControl("cbRequired");

            if (cbRequired != null)
            {
                cbRequired.Visible = false;
            }

            var filterButtonText = GetAttributeValue(AttributeKey.FilterButtonText);

            btnFilter.Text = filterButtonText.IsNotNullOrWhiteSpace() ? filterButtonText : "Filter";

            btnResetFilters.Visible = GetAttributeValue(AttributeKey.ShowResetFiltersButton).AsBoolean();

            var securityField = gFilters.ColumnsOfType <SecurityField>().FirstOrDefault();

            if (securityField != null)
            {
                securityField.EntityTypeId = EntityTypeCache.Get(typeof(Rock.Model.Attribute)).Id;
            }

            mdFilter.SaveClick += mdFilter_SaveClick;

            // This event gets fired after block settings are updated.
            this.BlockUpdated += Block_BlockUpdated;
            this.AddConfigurationUpdateTrigger(upnlContent);

            _reloadOnSelection = GetSelectAction();

            // This is needed so that we can get the data from the controls after all control events
            // have run so that their values are updated.
            Page.LoadComplete += Page_LoadComplete;
        }
 private void Awake()
 {
     _mover           = new Mover(this);
     _selectionAction = new SelectionAction(_spriteRenderer);
     _targeter        = GetComponent <Targeter>();
 }