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
        }
Example #5
0
        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();
 }
Example #8
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);
        }
Example #9
0
 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();
 }
Example #10
0
        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);
        }