private void UpdateGearItemGrid(GearItemGrid gearItemGrid, CharacterSheet.GearItem item, int itemIndex) { var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return; } MainPage.SetTapHandler(gearItemGrid.grid, (s, e) => GearItem_DoubleTap(item), 2); #if EXPAND_SELECTED if (gearItemGrid.selectedHandler != null) { gearItemGrid.selected.CheckedChanged -= gearItemGrid.selectedHandler; } gearItemGrid.selectedHandler = (s, e) => GearItem_CheckedChanged(item, e.Value); gearItemGrid.selected.IsChecked = item.selected; gearItemGrid.selected.CheckedChanged += gearItemGrid.selectedHandler; #if EXPAND_WITH_TAP MainPage.AddTapHandler(gearItemGrid.grid, (s, e) => GearItem_Tap(gearItemGrid.selected), 1); #endif #endif gearItemGrid.name.Text = item.AsString(sheet); if (gearItemGrid.viewButtonHandler != null) { gearItemGrid.viewButton.Clicked -= gearItemGrid.viewButtonHandler; } gearItemGrid.viewButtonHandler = (s, e) => GearItemViewButton_Tap(item); gearItemGrid.viewButton.Clicked += gearItemGrid.viewButtonHandler; gearItemGrid.name.FontAttributes = item.active ? FontAttributes.Bold : FontAttributes.None; }
private void UpdateGearItemGrid(SelectedGearItemGrid gearItemGrid, CharacterSheet.GearItem item, int itemIndex) { var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return; } if (gearItemGrid.selectedHandler != null) { gearItemGrid.selected.CheckedChanged -= gearItemGrid.selectedHandler; } gearItemGrid.selectedHandler = (s, e) => GearItem_CheckedChanged(item, e.Value); gearItemGrid.selected.IsChecked = item.selected; gearItemGrid.selected.CheckedChanged += gearItemGrid.selectedHandler; gearItemGrid.name.Text = item.name; gearItemGrid.amount.Text = item.amount.GetTotal(sheet).ToString(); gearItemGrid.weight.Text = item.weight.GetTotal(sheet).ToString(); gearItemGrid.description.Text = item.description; if (gearItemGrid.viewButtonHandler != null) { gearItemGrid.viewButton.Clicked -= gearItemGrid.viewButtonHandler; } gearItemGrid.viewButtonHandler = (s, e) => GearItemViewButton_Tap(item, itemIndex); gearItemGrid.viewButton.Clicked += gearItemGrid.viewButtonHandler; MainPage.SetTapHandler(gearItemGrid.grid, (s, e) => GearItem_DoubleTap(item, itemIndex), 2); #if EXPAND_WITH_TAP MainPage.AddTapHandler(gearItemGrid.grid, (s, e) => GearItem_Tap(gearItemGrid.selected), 1); #endif }
public void GearItem_DoubleTap(CharacterSheet.GearItem gearItem = null) { if (pushedPage != null) { return; } var egi = new EditGearItem(); egi.InitEditor(gearItem); pushedPage = egi; Navigation.PushAsync(pushedPage); }
public void GearItemViewButton_Tap(CharacterSheet.GearItem gearItem = null) { if (pushedPage != null) { return; } var vgi = new ViewGearItem(); vgi.InitView(gearItem); pushedPage = vgi; Navigation.PushAsync(pushedPage); }
public void GearItem_CheckedChanged(CharacterSheet.GearItem gearItem, bool value) { if (gearItem == null) { return; } if (gearItem.selected == value) { return; } gearItem.selected = value; CharacterSheetStorage.Instance.SaveCharacter(); UpdateView(); }
private void SelectItem(CharacterSheet.GearItem item) { if (pushedPage != null) { return; } var sgi = new SelectGearItem(); sgi.InitSelection((selected) => { modifier.sourceItemUID = selected == null ? CharacterSheet.InvalidUID : selected.uid; }, item); pushedPage = sgi; Navigation.PushAsync(pushedPage); }
private GearItemGrid CreateGearItemGrid(CharacterSheet.GearItem item, int itemIndex) { if (item == null) { return(null); } var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return(null); } if (gearItemGridsPool.Count > 0) { var gearItemGrid = gearItemGridsPool[0]; gearItemGridsPool.RemoveAt(0); UpdateGearItemGrid(gearItemGrid, item, itemIndex); return(gearItemGrid); } var grid = new Grid() { ColumnSpacing = 5, RowSpacing = 5, BackgroundColor = Color.LightGray, }; grid.ColumnDefinitions = new ColumnDefinitionCollection() { #if EXPAND_SELECTED new ColumnDefinition() { Width = GridLength.Auto }, #endif new ColumnDefinition() { Width = GridLength.Star }, new ColumnDefinition() { Width = GridLength.Auto }, }; grid.RowDefinitions = new RowDefinitionCollection() { new RowDefinition() { Height = GridLength.Auto }, }; MainPage.AddTapHandler(grid, (s, e) => GearItem_DoubleTap(item), 2); #if EXPAND_SELECTED var selectedcb = new CheckBox() { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, IsChecked = item.selected, }; EventHandler <CheckedChangedEventArgs> selectedHandler = (s, e) => GearItem_CheckedChanged(item, e.Value); selectedcb.CheckedChanged += selectedHandler; #if EXPAND_WITH_TAP MainPage.AddTapHandler(grid, (s, e) => GearItem_Tap(selectedcb), 1); #endif #endif var gearItemNameFrame = CreateFrame(item.AsString(sheet)); var gearItemName = gearItemNameFrame.Content as Label; gearItemName.FontAttributes = item.active ? FontAttributes.Bold : FontAttributes.None; 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) => GearItemViewButton_Tap(item); viewButton.Clicked += viewButtonHandler; var column = 0; #if EXPAND_SELECTED grid.Children.Add(selectedcb, column++, 0); #endif grid.Children.Add(gearItemNameFrame, column++, 0); grid.Children.Add(viewButton, column++, 0); var newGearItemGrid = new GearItemGrid() { grid = grid, #if EXPAND_SELECTED selectedHandler = selectedHandler, selected = selectedcb, #endif name = gearItemName, viewButton = viewButton, viewButtonHandler = viewButtonHandler, }; return(newGearItemGrid); }
private SelectedGearItemGrid CreateSelectedGearItemGrid(CharacterSheet.GearItem item, int itemIndex) { if (item == null) { return(null); } var sheet = CharacterSheetStorage.Instance.selectedCharacter; if (sheet == null) { return(null); } if (selectedGearItemGridsPool.Count > 0) { var gearItemGrid = selectedGearItemGridsPool[0]; selectedGearItemGridsPool.RemoveAt(0); UpdateGearItemGrid(gearItemGrid, item, itemIndex); return(gearItemGrid); } var grid = new Grid() { ColumnSpacing = 5, RowSpacing = 5, BackgroundColor = Color.LightGray, }; grid.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 }); } grid.RowDefinitions = rowDefinitions; var selectedcb = new CheckBox() { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, IsChecked = item.selected, }; EventHandler <CheckedChangedEventArgs> selectedHandler = (s, e) => GearItem_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) => GearItemViewButton_Tap(item, itemIndex); viewButton.Clicked += viewButtonHandler; nameValueStack.Children.Add(nameValue); nameValueStack.Children.Add(viewButton); var row = 0; grid.Children.Add(nameTitleStack, 0, row); grid.Children.Add(nameValueStack, 1, row); row += 1; var amountTitle = CreateLabel("Amount: "); var amountValue = CreateFrame(item.amount.GetTotal(sheet).ToString()); grid.Children.Add(amountTitle, 0, row); grid.Children.Add(amountValue, 1, row); row += 1; var weightTitle = CreateLabel("Weight: "); var weightValue = CreateFrame(item.weight.GetTotal(sheet).ToString()); grid.Children.Add(weightTitle, 0, row); grid.Children.Add(weightValue, 1, row); row += 1; var descriptionTitle = CreateLabel("Description: "); grid.Children.Add(descriptionTitle, 0, 2, row, row + 1); row += 1; var descriptionValue = CreateFrame(item.description); grid.Children.Add(descriptionValue, 0, 2, row, row + 1); row += 1; MainPage.AddTapHandler(grid, (s, e) => GearItem_DoubleTap(item, itemIndex), 2); #if EXPAND_WITH_TAP MainPage.AddTapHandler(grid, (s, e) => GearItem_Tap(selectedcb), 1); #endif var newGearItemGrid = new SelectedGearItemGrid() { grid = grid, selectedHandler = selectedHandler, selected = selectedcb, viewButtonHandler = viewButtonHandler, viewButton = viewButton, nameTitle = nameTitle, name = nameValue.Content as Label, amountTitle = amountTitle, amount = amountValue.Content as Label, weightTitle = weightTitle, weight = weightValue.Content as Label, descriptionTitle = descriptionTitle, description = descriptionValue.Content as Label, }; return(newGearItemGrid); }
public void UpdateView() { pushedPage = null; if (sheet == null) { return; } UpdateValue(); if (modifier == null) { return; } CharacterSheet.GearItem item = null; if (modifier.sourceItemUID == CharacterSheet.InvalidUID) { LinkedItem.Text = string.Empty; } else { item = sheet.GetItemByUID(modifier.sourceItemUID); if (item != null) { LinkedItem.Text = item.AsString(sheet); LinkedItem.FontAttributes = item.active ? FontAttributes.Bold : FontAttributes.None; LinkedItem.TextColor = (item.active || !modifier.mustBeActive) ? Color.Green : Color.Red; } else { LinkedItem.Text = "Item not found"; LinkedItem.TextColor = Color.Red; } } MainPage.SetTapHandler(LinkedItemFrame, (s, e) => SelectItem(item)); var loc = sheet.GetLevelOfClass(modifier.className); if (!modifier.multiplyToLevel) { ClassName.Text = string.Empty; } else { if (string.IsNullOrWhiteSpace(modifier.className) || (loc != null)) { ClassName.Text = loc == null ? "Total Level" : modifier.className; ClassName.TextColor = Color.Green; } else { ClassName.Text = "Class \"" + modifier.className + "\" not found"; ClassName.TextColor = Color.Red; } } var lms = loc == null ? "Total Level" : "Level Of " + modifier.className; var lm = modifier.levelMultiplier.AsString(lms); if (lm == lms) { lm = string.Empty; } LevelMultiplier.Text = !modifier.multiplyToLevel ? string.Empty : lm; LevelMultiplierFrame.BackgroundColor = modifier.multiplyToLevel ? Color.White : Color.LightGray; LevelMultiplierFrame.InputTransparent = !modifier.multiplyToLevel; MainPage.SetTapHandler(ClassNameFrame, (s, e) => SelectClass(modifier.className)); AutoNaming.IsChecked = modifier.autoNaming; }