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
        }
Beispiel #2
0
        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);
        }
        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);
        }