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(); }
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(); } }
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(); }
/// <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; } } }
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); } } }
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(); }
/// <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); } } }
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(); }
/// <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>(); }