public void ItemViewButton_Tap(ItemType item = null) { if (actViewItem != null) { actViewItem(item); } }
private void UpdateItemGrid(ItemGrid itemGrid, ItemType item, int itemIndex) { var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return; } MainPage.SetTapHandler(itemGrid.container, (s, e) => Item_DoubleTap(item), 1); #if EXPAND_SELECTED if (itemGrid.selectedHandler != null) { itemGrid.selected.CheckedChanged -= itemGrid.selectedHandler; } itemGrid.selectedHandler = (s, e) => Item_CheckedChanged(item, e.Value); UpdateValue(itemGrid.selected, item.selected); itemGrid.selected.CheckedChanged += itemGrid.selectedHandler; #if EXPAND_WITH_TAP MainPage.AddTapHandler(itemGrid.container, (s, e) => Item_Tap(itemGrid.selected), 1); #endif #endif var name = item.AsString(sheet); UpdateValue(itemGrid.name, name); #if SHOW_VIEW_BUTTON if (itemGrid.viewButtonHandler != null) { itemGrid.viewButton.Clicked -= itemGrid.viewButtonHandler; } itemGrid.viewButtonHandler = (s, e) => ItemViewButton_Tap(item); itemGrid.viewButton.Clicked += itemGrid.viewButtonHandler; #endif }
public void Item_DoubleTap(ItemType item = null) { if (actEditItem != null) { actEditItem(item); } }
private void UpdateItemGrid(SelectedItemGrid itemGrid, ItemType item, int itemIndex) { var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return; } if (itemGrid.selectedHandler != null) { itemGrid.selected.CheckedChanged -= itemGrid.selectedHandler; } itemGrid.selectedHandler = (s, e) => Item_CheckedChanged(item, e.Value); UpdateValue(itemGrid.selected, item.selected); itemGrid.selected.CheckedChanged += itemGrid.selectedHandler; UpdateValue(itemGrid.name, item.name); UpdateValue(itemGrid.description, item.description); if (itemGrid.viewButtonHandler != null) { itemGrid.viewButton.Clicked -= itemGrid.viewButtonHandler; } itemGrid.viewButtonHandler = (s, e) => ItemViewButton_Tap(item); itemGrid.viewButton.Clicked += itemGrid.viewButtonHandler; MainPage.SetTapHandler(itemGrid.container, (s, e) => Item_DoubleTap(item), 2); #if EXPAND_WITH_TAP MainPage.AddTapHandler(itemGrid.container, (s, e) => Item_Tap(itemGrid.selected), 1); #endif }
private void AddItem(ItemType item) { if (item == null) { return; } var sl = new StackLayout() { Orientation = StackOrientation.Horizontal, }; var up = AddButton("Up"); var down = AddButton("Down"); var frame = MainPage.CreateFrame(string.Empty); sl.Children.Add(up); sl.Children.Add(frame); sl.Children.Add(down); Items.Children.Add(sl); var cntrls = new Controls() { up = up, text = frame.Content as Label, down = down, }; controls.Add(cntrls); UpdateItem(cntrls, item); }
private void EditItem(ItemType item = null) { if (pushedPage != null) { return; } var eit = new EditItemType(); eit.Init(sheet, item, rolls, false); pushedPage = eit; Navigation.PushAsync(pushedPage); }
public void Item_CheckedChanged(ItemType item, bool value) { if (item == null) { return; } if (item.selected == value) { return; } item.selected = value; CharacterSheetStorage.Instance.SaveCharacter(); UpdateItemsView(); }
private void UpdateItem(Controls controls, ItemType item) { var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return; } MainPage.SetTapHandler(controls.up, () => MoveItem(item, -1, true)); MainPage.AddTapHandler(controls.up, () => MoveItem(item, -1, false), 2); controls.text.Text = item.AsString(sheet); MainPage.SetTapHandler(controls.down, () => MoveItem(item, 1, true)); MainPage.AddTapHandler(controls.down, () => MoveItem(item, 1, false), 2); }
public void Init(CharacterSheet sheet, ItemType roll, List <ItemType> items, bool saveCharacter) { if (sheet == null) { return; } this.sheet = sheet; this.items = items; this.saveCharacter = saveCharacter; source = roll; if (roll == null) { this.roll = new ItemType(); } else { this.roll = roll.Clone as ItemType; } Delete.IsEnabled = items != null; UpdateView(); }
private void MoveItem(ItemType item, int dir, bool onePosition) { if (items == null) { return; } var index = items.IndexOf(item); if (index < 0) { return; } var newIndex = onePosition ? index + dir : (dir < 0 ? 0 : items.Count - 1); newIndex = Math.Min(Math.Max(0, newIndex), items.Count - 1); if (newIndex == index) { return; } items.Remove(item); items.Insert(newIndex, item); UpdateLabels(); }
private ItemGrid CreateItemGrid(ItemType item, int itemIndex) { if (item == null) { return(null); } var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return(null); } if (itemGridsPool.Count > 0) { var itemGrid = itemGridsPool[0]; itemGridsPool.RemoveAt(0); UpdateItemGrid(itemGrid, item, itemIndex); return(itemGrid); } #if EXPAND_SELECTED var selectedcb = new CheckBox() { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, IsChecked = item.selected, }; EventHandler <CheckedChangedEventArgs> selectedHandler = (s, e) => Item_CheckedChanged(item, e.Value); selectedcb.CheckedChanged += selectedHandler; #endif var itemNameFrame = CreateFrame(item.AsString(sheet)); var itemNameLabel = itemNameFrame.Content as Label; itemNameLabel.TextDecorations = TextDecorations.Underline; #if SHOW_VIEW_BUTTON var viewButton = new Button() { Text = "View", FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Button)), TextColor = Color.Black, VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center, }; EventHandler viewButtonHandler = (s, e) => ItemViewButton_Tap(item); viewButton.Clicked += viewButtonHandler; #endif #if USE_GRID var container = new Grid() { ColumnSpacing = 5, RowSpacing = 5, BackgroundColor = Color.LightGray, }; container.ColumnDefinitions = new ColumnDefinitionCollection() { #if EXPAND_SELECTED new ColumnDefinition() { Width = GridLength.Auto }, #endif new ColumnDefinition() { Width = GridLength.Star }, new ColumnDefinition() { Width = GridLength.Auto }, }; container.RowDefinitions = new RowDefinitionCollection() { new RowDefinition() { Height = GridLength.Auto }, }; var column = 0; #if EXPAND_SELECTED container.Children.Add(selectedcb, column++, 0); #endif container.Children.Add(itemNameFrame, column++, 0); container.Children.Add(viewButton, column++, 0); #else var container = new StackLayout() { BackgroundColor = Color.LightGray, Orientation = StackOrientation.Horizontal, }; #if EXPAND_SELECTED container.Children.Add(selectedcb); #endif container.Children.Add(itemNameFrame); #if SHOW_VIEW_BUTTON container.Children.Add(viewButton); #endif #endif MainPage.AddTapHandler(container, (s, e) => Item_DoubleTap(item), 1); #if EXPAND_SELECTED MainPage.AddTapHandler(container, (s, e) => Item_Tap(selectedcb), 1); #endif var newItemGrid = new ItemGrid() { container = container, #if EXPAND_SELECTED selectedHandler = selectedHandler, selected = selectedcb, #endif name = itemNameLabel, #if SHOW_VIEW_BUTTON viewButton = viewButton, viewButtonHandler = viewButtonHandler, #endif }; return(newItemGrid); }
private SelectedItemGrid CreateSelectedItemGrid(ItemType item, int itemIndex) { if (item == null) { return(null); } var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return(null); } if (selectedItemGridsPool.Count > 0) { var itemGrid = selectedItemGridsPool[0]; selectedItemGridsPool.RemoveAt(0); UpdateItemGrid(itemGrid, item, itemIndex); return(itemGrid); } var selectedcb = new CheckBox() { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, IsChecked = item.selected, }; EventHandler <CheckedChangedEventArgs> selectedHandler = (s, e) => Item_CheckedChanged(item, e.Value); selectedcb.CheckedChanged += selectedHandler; var nameTitle = CreateLabel("Name: "); var nameTitleStack = new StackLayout() { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, }; nameTitleStack.Children.Add(selectedcb); nameTitleStack.Children.Add(nameTitle); var nameValueStack = new StackLayout() { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, }; var nameValue = CreateFrame(item.name); var viewButton = new Button() { Text = "View", FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Button)), TextColor = Color.Black, VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center, }; EventHandler viewButtonHandler = (s, e) => ItemViewButton_Tap(item); viewButton.Clicked += viewButtonHandler; nameValueStack.Children.Add(nameValue); nameValueStack.Children.Add(viewButton); var descriptionTitle = CreateLabel("Description: "); var descriptionValue = CreateFrame(item.description); #if USE_GRID var container = new Grid() { ColumnSpacing = 5, RowSpacing = 5, BackgroundColor = Color.LightGray, }; container.ColumnDefinitions = new ColumnDefinitionCollection() { new ColumnDefinition() { Width = GridLength.Auto } , new ColumnDefinition() { Width = GridLength.Star }, }; const int count = 14; var rowDefinitions = new RowDefinitionCollection(); for (var i = 0; i < count; i++) { rowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto }); } container.RowDefinitions = rowDefinitions; var row = 0; container.Children.Add(nameTitleStack, 0, row); container.Children.Add(nameValueStack, 1, row); row += 1; container.Children.Add(descriptionTitle, 0, 2, row, row + 1); row += 1; container.Children.Add(descriptionValue, 0, 2, row, row + 1); row += 1; #else var container = new StackLayout() { BackgroundColor = Color.LightGray, }; var nameStack = new StackLayout() { Orientation = StackOrientation.Horizontal, }; nameStack.Children.Add(nameTitleStack); nameStack.Children.Add(nameValueStack); container.Children.Add(nameStack); container.Children.Add(descriptionTitle); container.Children.Add(descriptionValue); #endif MainPage.AddTapHandler(container, (s, e) => Item_DoubleTap(item), 2); #if EXPAND_WITH_TAP MainPage.AddTapHandler(container, (s, e) => Item_Tap(selectedcb), 1); #endif var newItemGrid = new SelectedItemGrid() { container = container, selectedHandler = selectedHandler, selected = selectedcb, viewButtonHandler = viewButtonHandler, viewButton = viewButton, nameTitle = nameTitle, name = nameValue.Content as Label, descriptionTitle = descriptionTitle, description = descriptionValue.Content as Label, }; return(newItemGrid); }